System and method for utilizing non-volatile memory in a cache

US9495301B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9495301-B2
Application numberUS-201213568921-A
CountryUS
Kind codeB2
Filing dateAug 7, 2012
Priority dateAug 7, 2012
Publication dateNov 15, 2016
Grant dateNov 15, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

In one embodiment, a computing system includes a cache having one or more memories, a cache journal operable to store data associated with one or more portions of the cache, and a configuration manager operable to access the cache and the cache journal. The configuration manager is operable to determine whether the cache journal includes data associated with a first portion of the cache, and to create, in the cache journal, data associated with the first portion of the cache if the cache journal does not yet comprise data associated with the first portion of the cache. The configuration manager is also operable to determine whether the first portion of the cache is valid for use, and to communicate with a memory manager associated with the first portion of the cache regarding whether the first portion of the cache is valid for use.

First claim

Opening claim text (preview).

The invention claimed is: 1. A method comprising: receiving, by a configuration manager from a memory manager, a communication that a memory has been detected; receiving, at the configuration manager, data from the memory manager associated with the memory comprising a portion of a clustered memory cache, the configuration manager including a journal maintained in a persistent memory, the journal including data associated with the portion of the clustered memory cache, wherein data of the journal comprises a memory state and an identifier of a local memory manager associated with the portion of the clustered memory cache, at least one of a manufacture identification, a memory size, one or more replica store identifiers, and one or more metadata services that are part of the clustered memory cache; coordinating by the configuration manager one or more startup events, wherein the one or more startup events comprise at least one of a registration of one or more clients as the one or more clients come on-line and distribution of one or more policies, and wherein the coordinating comprises initialization of the one or more clients and at least one of providing the one or more clients with one or more addresses of a metadata service, retrieving the one or more policies from a policy manager, and distributing the one or more policies to the one or more clients; determining, with the configuration manager, whether the journal includes data associated with the memory; creating, in the journal, data associated with the memory if the journal does not include data associated with the memory; approving, by the configuration manager, the memory for access by the memory manager, wherein the approving comprises determining that the memory is not obsolete; communicating the approval to the memory manager associated with the memory; dynamically adjusting by the configuration manager the memory; determining if any of the one or more metadata services have been expelled from the portion of the clustered memory cache; creating in the journal an entry for each of the one or more metadata services expelled from the portion of the clustered memory cache; obtaining information to update the journal from at least one of the one or more metadata service and the memory manager; updating the journal to record a new memory state of the memory based on at least the obtained information; and mirroring the journal to a second clustered memory cache. 2. The method of claim 1 , wherein the data received from the memory manager associated with the memory is an identifier of the memory. 3. The method of claim 2 , wherein determining whether the journal includes data associated with the memory includes determining whether the journal includes the identifier of the memory. 4. The method of claim 2 , wherein creating, in the journal, data associated with the memory includes creating an entry in the journal for the identifier of the memory and associating the identifier with a state of the memory. 5. The method of claim 4 , wherein communicating to the memory manager associated with the memory whether the memory is approved for access includes communicating to the memory manager the state of the memory. 6. The method of claim 1 , wherein determining whether the persistent memory is approved for access includes: if the journal includes data associated with the memory, determining if the data indicates a state of the memory. 7. A computing system comprising: a clustered memory cache comprising one or more memories; a configuration manager communicatively coupled to a memory manager, wherein the configuration manager receives a communication from the memory manager when a memory has been detected, wherein the configuration manager is operable to access the clustered memory cache; a cache journal maintained in persistent memory of the configuration manager, wherein the configuration manager including the cache journal is operable to store data associated with one or more portions of the clustered memory cache, wherein data of the cache journal comprises a memory state and an identifier of a local memory manager associated with the one or more portions of the clustered memory cache, at least one of a manufacture identification, a memory size, one or more replica store identifiers, and one or more metadata services that are part of the clustered memory cache; one or more startup events, wherein the one or more startup events are coordinated by the configuration manager, wherein the one or more startup events comprise at least one of a registration of one or more clients as the one or more clients come on-line and distribution of one or more policies, and wherein the coordination comprises initialization of the one or more clients and at least one of providing the one or more clients with one or more addresses of a metadata service, retrieving the one or more policies from a policy manager, and distributing the one or more policies to the one or more clients; an approval for access by the memory manager to the clustered memory cache if the clustered memory is not obsolete, wherein the configuration manager provides the approval; wherein the configuration manager is operable to determine whether the cache journal comprises data associated with a first portion of the clustered memory cache, and to create, in the cache journal, data associated with the first portion of the clustered memory cache if the cache journal does not yet comprise data associated with the first portion of the clustered memory cache; wherein the configuration manager is operable to determine whether the first portion of the clustered memory cache is valid for use, to communicate with a memory manager associated with the first portion of the clustered memory cache regarding the approval, and to dynamically adjust the clustered memory cache; one or more expelled metadata services from the one or more portions of the clustered memory cache; an entry in the cache journal for each of the one or more expelled metadata services; a new record in the cache journal, wherein the new record is an update that records a new memory state of the memory based on at least information obtained from at least one of the one or more metadata services; and a second clustered memory cache, wherein the cache journal is mirrored at the second clustered memory cache. 8. The system of claim 7 , wherein the configuration manager is further operable to receive a memory identifier from the memory manager associated with the first portion of the clustered memory cache. 9. The system of claim 8 , wherein determining whether the cache journal comprises data associated with the first portion of the clustered memory cache includes determining whether the cache journal comprises the memory identifier. 10. The system of claim 8 , wherein creating, in the cache journal, data associated with the first portion of the clustered memory cache if the cache journal does not yet comprise data associated with the first portion of the clustered memory cache includes creating an entry in the cache journal for the memory identifier and associating the memory identifier with a state of the first portion of the clustered memory cache. 11. The system of claim 10 , wherein communicating with the memory manager associated with the first portion of the clustered memory cache regarding whether the first portion of the clustered memory cache is valid for use includes communicating to the memory manager the state of the first portion of the clustered memory cache. 12. The system of claim 7 , wherein the journal is maintained locally in a persistent memory of the configuration manager.

Assignees

Inventors

Classifications

  • in a memory management context, e.g. virtual memory or cache management (memory management G06F12/00; testing of static memory units G11C29/00) · CPC title

  • Caches characterised by their organisation or structure · CPC title

  • Remedial or corrective actions (recovery from an exception in an instruction pipeline G06F9/3861; by retry G06F11/1402; for recovering from a failure of a protocol instance or entity H04L69/40) · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9495301B2 cover?
In one embodiment, a computing system includes a cache having one or more memories, a cache journal operable to store data associated with one or more portions of the cache, and a configuration manager operable to access the cache and the cache journal. The configuration manager is operable to determine whether the cache journal includes data associated with a first portion of the cache, and to…
Who is the assignee on this patent?
Gross Jason Philip, Pandit Ranjit, Peterson Scott David, and 3 more
What technology area does this patent fall under?
Primary CPC classification G06F12/0893. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Nov 15 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).