Writing pages to a storage system

US9727486B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-9727486-B1
Application numberUS-201514849763-A
CountryUS
Kind codeB1
Filing dateSep 10, 2015
Priority dateSep 10, 2015
Publication dateAug 8, 2017
Grant dateAug 8, 2017

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.

A method for writing data objects, the method may include accumulating, in a first memory module, multiple new data entities in one or more dirty pages of a data layer; wherein each new data entity and a corresponding older data entity are associated with a same application object; wherein the accumulating comprises storing each new data entity in a page that differs from a page that stores the corresponding older data entity; calculating multiple new sets of descriptors by generating to each new data entity, a new set of descriptors; wherein each set of descriptors comprises descriptors that belong to multiple descriptors layers; wherein the multiple descriptors layers and the data layer belong to an hierarchical data structure; accumulating the multiple new sets of descriptors in one or more dirty pages of one or more descriptors layers; wherein each corresponding older data entity is associated with a corresponding set of descriptors; wherein the accumulating comprises storing each new set of descriptor in a page that differs from a page that stores a corresponding set of descriptors; and writing the multiple new data entities and the multiple new sets of descriptors to a second memory module.

First claim

Opening claim text (preview).

I claim: 1. A method for writing data objects, the method comprises: accumulating, in a first memory module, multiple new data entities in one or more dirty pages of a data layer; wherein each new data entity and a corresponding older data entity are associated with a same application object; wherein the accumulating comprises storing each new data entity in a page that differs from a page that stores the corresponding older data entity; calculating multiple new sets of descriptors by generating to each new data entity, a new set of descriptors; wherein each set of descriptors comprises descriptors that belong to multiple descriptors layers; wherein the multiple descriptors layers and the data layer belong to an hierarchical data structure; accumulating the multiple new sets of descriptors in one or more dirty pages of one or more descriptors layers; wherein each corresponding older data entity is associated with a corresponding set of descriptors; wherein the accumulating comprises storing each new set of descriptors in a page that differs from a page that stores a corresponding set of descriptors; wherein the data layer and all of the multiple descriptors layers except of a root layer are dynamic layers in which new content of a given layer that replaces an older content of the given layer, is stored within the given layer at a different location from a location of the older content; and writing the multiple new data entities and the multiple new sets of descriptors to a second memory module. 2. The method according to claim 1 , comprising dynamically allocating in each descriptor layer of the multiple descriptors layers except the root layer, a dirty page for accumulating new descriptors of the new sets of descriptors that belong to the descriptor layer. 3. The method according to claim 1 , comprising dynamically allocating in each descriptor layer of the multiple descriptors layers a dirty page for accumulating new descriptors of the new sets of descriptors that belong to the descriptor layer. 4. The method according to claim 1 , wherein each layer of the hierarchical data structure is smaller than another layer of a lower level in the hierarchical data structure. 5. The method according to claim 1 , wherein the multiple descriptors layers comprise a lowest descriptors layer and one or more higher descriptors layers; wherein the lowest descriptors layer stores lowest descriptors, each lowest descriptor is indicative of a status of a page of the data layer; and wherein each higher descriptors layer of the one or more higher descriptors layers stores higher descriptors, each higher descriptor is indicative of a status of a page of a lower descriptors layer of the multiple descriptors layers. 6. The method according to claim 1 , wherein the multiple descriptors layers comprise a lowest descriptors layer and one or more higher descriptors layers; wherein a given lowest descriptor comprises status information about a given page of the data layer, wherein the status information is indicative of status of slots of the given page of the data layer, and wherein the status of the slots indicates which slots of the given page of the data layer are occupied and which slots of the given page of the data layer are free. 7. The method according to claim 1 , further comprises storing a persistent copy of the hierarchical data structure in the second memory module. 8. The method according to claim 1 , comprising maintaining a list of dirty pages of the data layer. 9. The method according to claim 1 , comprising maintaining a list of dirty pages of the hierarchical data structure. 10. The method according to claim 1 , comprising loading to the first memory module and from a second memory module, during an initialization procedure, only a portion of the hierarchical data structure while starting the loading from the multiple descriptors layers. 11. The method according to claim 1 , comprising loading to the first memory module and from a second memory module, during an initialization procedure, only non-swappable pages of the hierarchical data structure. 12. The method according to claim 1 , comprising loading to the first memory module and from a second memory module, during an initialization procedure, only the multiple descriptors layers. 13. The method according to claim 1 , further comprising determining a structure of the hierarchical data structure in response to a predefined size ratio between adjacent layers of the hierarchical data structure. 14. The method according to claim 1 , wherein the writing of the multiple new data entities and the multiple new sets of descriptors to the second memory module comprises freezing all dirty pages that store the multiple new data entities and the multiple new sets of descriptors. 15. The method according to claim 1 , wherein the multiple new sets of descriptors comprise multiple root layer descriptors of the root layer and multiple other descriptors; wherein the writing of the multiple new data entities and the multiple new sets of descriptors to the second memory module comprises: writing all dirty pages that store the multiple data entities and the multiple other descriptors to the second memory module; writing the root layer to the second memory module; and aggregating, during the writing to the second memory module of the root layer and all the dirty pages that store the multiple data entities and the multiple other descriptors, content related to any new data entity of the multiple new data entities, in one or more new dirty page of the first memory module. 16. The method according to claim 1 comprising marking a space occupied by an older data entity as irrelevant. 17. The method according to claim 1 comprising generating, for each older data entity, an updated set of descriptors that indicates that at least one lowest descriptor of a corresponding set of descriptors is irrelevant thereby generating multiple updated sets of descriptors. 18. The method according to claim 17 wherein the generating of the multiple updated sets of descriptors comprises accumulating, in the first memory module, the multiple updated sets of descriptors in one or more dirty pages of the data layer. 19. A non-transitory computer readable medium that stores instructions that once executed by a storage system will cause the storage system to: accumulate, in a first memory module, multiple new data entities in one or more dirty pages of a data layer; wherein each new data entity and a corresponding older data entity are associated with a same application object; wherein the new data entity and the corresponding older data entity are stored in different pages of the first memory module; calculate multiple new sets of descriptors by generating to each new data entity, a new set of descriptors; wherein each set of descriptors comprises descriptors that belong to multiple descriptors layers; wherein the multiple descriptors layers and the data layer belong to an hierarchical data structure; wherein each corresponding older data entity is associated with a corresponding set of descriptors; wherein a new set of descriptors and a corresponding set of descriptors are stored in different pages of the first memory module; accumulate the multiple new sets of descriptors in one or more dirty pages of one or more descriptors layers; wherein the data layer and all of the multiple descriptors layers except of a root layer are dynamic layers in which new content of a given layer that replaces an older content of the given layer, is stored within t

Assignees

Inventors

Classifications

  • G06F12/123Primary

    with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list · CPC title

  • in combination with broadcast means (e.g. for invalidation or updating) · CPC title

  • Details of cache specific to multiprocessor cache arrangements · CPC title

  • Physics · mapped topic

  • with main memory updating (G06F12/0806 takes precedence) · 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 US9727486B1 cover?
A method for writing data objects, the method may include accumulating, in a first memory module, multiple new data entities in one or more dirty pages of a data layer; wherein each new data entity and a corresponding older data entity are associated with a same application object; wherein the accumulating comprises storing each new data entity in a page that differs from a page that stores the…
Who is the assignee on this patent?
Yochai Yechiel, Infinidat Ltd
What technology area does this patent fall under?
Primary CPC classification G06F12/123. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 08 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). 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).