IP Library › Granted Patent US 10,489,310
Granted Patent B2
US 10,489,310 · App. 15/789,431 · Granted Nov 26, 2019

Determining cache value currency using persistent markers

Inventors: Kimberly Keeton (San Francisco, CA); Yupu Zhang (Palo Alto, CA); Haris Volos (Palo Alto, CA); Ram Swaminathan (Cupertino, CA); Evan R. Kirshenbaum (Mountain View, CA)
Assignee: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
G06F12/1466G06F12/128G06F2212/1052G06F2212/621
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,489,310
App. No.
15/789,431
Granted
Nov 26, 2019
Kind
B2
Abstract

Determining cache value currency using persistent markers is disclosed herein. In one example, a cache entry is retrieved from a local cache memory device. The cache entry includes a key, a value to be used by the computing device, and a marker flag to determine whether the cache entry is current. The local cache memory device also includes a marker location that indicates a location of a marker in a shared persistent fabric-attached memory (FAM). Using a marker location, the marker is retrieved from the shared persistent FAM. From the marker and the marker flag, it is determined whether the cache entry is current. The shared FAM pool is connected to the local cache memory devices of multiple computing devices.

Claims (59)

1. A method, comprising:

retrieving, from a local cache memory device paired with a computing device, a cache entry containing:

a key;

a value; and

a marker flag to determine whether the cache entry is current;

retrieving, using a marker location from the local cache memory device, which indicates a location of a marker in a shared persistent fabric-attached memory (FAM), the marker from the shared persistent FAM;

determining, from the marker and the marker flag, whether the cache entry is current;

wherein the shared persistent FAM is connected to the local cache memory devices of multiple computing devices,

wherein:

the marker comprises a series of epoch identifiers sequentially numbered and corresponding epoch signatures, wherein each epoch identifier corresponds to an epoch signature that identifies keys updated during a corresponding epoch, and the epoch signatures comprise an open epoch signature that is active, and a number of closed epoch signatures that are inactive and not-writeable;

the marker flag comprises a valid epoch identifier indicating the epoch during which the key and the value in the local memory cache device are guaranteed to be up-to-date;

the marker location points to a location in the shared persistent FAM where a series of epoch signatures and epoch identifiers are stored; and

wherein determining whether the cache entry is current comprises:

identifying a most recent epoch identifier from the series of epoch identifiers corresponding to a most recent epoch signature where the key is indicated; and

comparing the valid epoch identifier in the marker flag with the most recent epoch identifier; and

copying closed epoch signatures to the local cache memory device.

2. The method of claim 1 , further comprising:

when the most recent epoch identifier has a number less than or equal to the valid epoch identifier in the marker flag, returning at least one of the value from the local cache memory device and a status; and

when the most recent epoch identifier has a number greater than the valid epoch identifier in the marker flag:

overwriting the key and associated value in the cache entry with a key and associated value from the shared persistent FAM; and

overwriting the valid epoch identifier in the cache entry with the most recent epoch identifier.

3. The method of claim 1 , further comprising closing the open epoch signature and initializing a new open epoch signature when a second update to an associated key from the shared persistent FAM is made.

4. The method of claim 1 , wherein:

closed epoch signatures are searched at the same time as searching the open epoch signature; and

comparing the valid epoch identifier in the marker flag with the most recent epoch identifier occurs at the same time the value is retrieved from the shared persistent FAM.

5. A system, comprising:

a shared persistent fabric-attached memory (FAM) shared by and connected to multiple computing devices, the shared persistent FAM comprising:

a number of entries, each entry comprising a key and a value paired with the key; and

a marker for each key-value pair indicating that each key and value are up-to-date; and

a local cache memory device paired with a computing device, the local cache memory device comprising cache entries and a marker location, wherein each cache entry comprises:

the key;

a value paired with the key; and

a marker flag to determine whether the key and value in the cache entry are current,

wherein:

the marker comprises a series of epoch identifiers sequentially numbered and corresponding epoch signatures, wherein each epoch identifier corresponds to an epoch signature that identifies keys updated during a corresponding epoch, and the epoch signatures comprise an open epoch signature that is active and a number of closed epoch signatures that are inactive and non-writeable, the closed epoch signatures being copied to the local cache memory device;

the marker flag comprises a valid epoch identifier indicating an epoch during which the key and the value in the local memory cache device are guaranteed to be up-to-date;

the marker location points to a location in the shared persistent FAM where a series of epoch signatures and epoch identifiers are stored; and

the cache entry is determined to be current by:

identifying a most recent epoch identifier from the series of epoch identifiers corresponding to a most recent epoch signature where the key is indicated; and

comparing the valid epoch identifier in the marker flag with the most recent epoch identifier.

6. The system of claim 5 , wherein:

the keys and values in the shared persistent FAM are stored in an index structure; and

the marker location refers to a fixed location in the shared persistent FAM.

7. A non-transitory machine-readable storage medium encoded with instructions executable by a processor, the machine-readable storage medium comprising instructions to:

retrieve, from a local cache memory device paired with a computing device, a marker location indicating a location of a marker in a shared persistent fabric-attached memory (FAM) and a cache entry containing:

a key;

a value to be used by the computing device; and

a marker flag to determine whether the key and value in the cache entry are current;

retrieve the marker from the shared persistent FAM using the marker location; and

determine, from the marker and the marker flag, whether a cache copy of the value is current,

wherein the shared persistent FAM is connected to the local cache memory devices of multiple computing devices,

wherein:

the marker comprises a series of epoch identifiers sequentially numbered and corresponding epoch signatures, wherein each epoch identifier corresponds to an epoch signature that identifies keys updated during a corresponding epoch, and the epoch signatures comprise an open epoch signature that is active, and a number of closed epoch signatures that are inactive and not-writeable;

the marker flag comprises a valid epoch identifier indicating the epoch during which the key and the value in the local memory cache device are guaranteed to be up-to-date;

the marker location points to a location in the shared persistent FAM where a series of epoch signatures and epoch identifiers are stored; and

wherein determining whether the cache entry is current comprises:

identifying a most recent epoch identifier from the series of epoch identifiers corresponding to a most recent epoch signature where the key is indicated; and

comparing the valid epoch identifier in the marker flag with the most recent epoch identifier; and

copying closed epoch signatures to the local cache memory device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 20, 2017
From: KEETON, KIMBERLY; ZHANG, YUPU; VOLOS, HARIS; SWAMINATHAN, RAM; KIRSHENBAUM, EVAN R.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 043914/0800 →
Continuity (1)
Related Publication 20190121750A1 · Apr 25, 2019
Cited By (1)
US 12,445,394