Memory allocation buffer for reduction of heap fragmentation

US10613762B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10613762-B2
Application numberUS-201715411634-A
CountryUS
Kind codeB2
Filing dateJan 20, 2017
Priority dateJan 18, 2012
Publication dateApr 7, 2020
Grant dateApr 7, 2020

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.

Systems and methods of a memory allocation buffer to reduce heap fragmentation. In one embodiment, the memory allocation buffer structures a memory arena dedicated to a target region that is one of a plurality of regions in a server in a database cluster such as an HBase cluster. The memory area has a chunk size (e.g., 2 MB) and an offset pointer. Data objects in write requests targeted to the region are received and inserted to the memory arena at a location specified by the offset pointer. When the memory arena is filled, a new one is allocated. When a MemStore of the target region is flushed, the entire memory arenas for the target region are freed up. This reduces heap fragmentation that is responsible for long and/or frequent garbage collection pauses.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for operating a region server of a distributed computing system, the method comprising: for each region, holding, in a memory on the region server, data to be written to a storage until flushing the data to the storage, depending on whether the data reaches a predetermined size; receiving a write request from a client, wherein the write request includes a target region and a data object; and storing the data object in a memory arena dedicated to the target region at a location that is continued from a previous location such that, when said flushing occurs for the target region, space freed from the memory arena dedicated to the target region is contiguous. 2. The method of claim 1 , wherein the memory arena dedicated to the target region is a space dedicated to the target region in a heap in the region server. 3. The method of claim 1 , wherein said storing the data object step is performed based on an availability of the memory arena dedicated to the target region. 4. The method of claim 1 , further comprising: determining that the memory arena dedicated to the target region is unavailable; and creating the memory arena dedicated to the target region by allocating one space of a select size in a heap in the region server. 5. The method of claim 4 , wherein the memory arena dedicated to the target region is determined unavailable when the memory arena dedicated to the target region does not exist in the heap. 6. The method of claim 4 , wherein the memory arena dedicated to the target region is determined unavailable when the memory arena dedicated to the target region does not have enough space for the data object. 7. The method of claim 1 , further comprising: locating, in a heap in the region server, the memory arena dedicated to the target region; and determining that the memory arena has enough space for the data object. 8. The method of claim 1 , further comprising: locating, in a heap in the region server, the memory arena dedicated to the target region; determining that the memory arena has not enough space for the data object; and creating, in the heap, a new memory arena in the heap as the memory arena dedicated to the target region. 9. The method of claim 1 , wherein the distributed computing system is implemented as a non-relational, distributed database. 10. A server hosting a plurality of regions for a distributed computing system, the server's memory including instructions which, upon executed by one or more processors of the server, cause the server to perform operations comprising: for each region, holding, in a memory on the server, data to be written to a storage until flushing the data to the storage, depending on whether the data reaches a predetermined size; receiving a write request from a client, wherein the write request includes a target region and a data object; and storing the data object in a memory arena dedicated to the target region at a location that is continued from a previous location such that, when said flushing occurs for the target region, space freed from the memory arena dedicated to the target region is contiguous. 11. The server of claim 10 , wherein the memory arena dedicated to the target region is a space dedicated to the target region in a heap in the region server. 12. The server of claim 10 , wherein said storing the data object step is performed based on an availability of the memory arena dedicated to the target region. 13. The server of claim 10 , the method the server caused to perform further comprising: determining that the memory arena dedicated to the target region is unavailable; and creating the memory arena dedicated to the target region by allocating one space of a select size in a heap in the region server. 14. The server of claim 13 , wherein the memory arena dedicated to the target region is determined unavailable when the memory arena dedicated to the target region does not exist in the heap. 15. The server of claim 13 , wherein the memory arena dedicated to the target region is determined unavailable when the memory arena dedicated to the target region does not have enough space for the data object. 16. The server of claim 10 , the method the server caused to perform further comprising: locating, in a heap in the region server, the memory arena dedicated to the target region; and determining that the memory arena has enough space for the data object. 17. The server of claim 10 , the method the server caused to perform further comprising: locating, in a heap in the region server, the memory arena dedicated to the target region; determining that the memory arena has not enough space for the data object; and creating, in the heap, a new memory arena in the heap as the memory arena dedicated to the target region. 18. The server of claim 1 , wherein the distributed computing system is implemented as a non-relational, distributed database. 19. A non-transitory machine-readable storage medium including executable instructions, which when executed by one or more processors of a server hosting a plurality of regions for a distributed computing system, cause the processors to perform: for each region, holding, in a memory on the server, data to be written to a storage until flushing the data to the storage, depending on whether the data reaches a predetermined size; receiving a write request from a client, wherein the write request includes a target region and a data object; and storing the data object in a memory arena dedicated to the target region at a location that is continued from a previous location such that, when said flushing occurs for the target region, space freed from the memory arena dedicated to the target region is contiguous. 20. The medium of claim 19 , wherein the memory arena dedicated to the target region is a space dedicated to the target region in a heap in the region server. 21. The medium of claim 19 , wherein said storing the data object step is performed based on an availability of the memory arena dedicated to the target region. 22. The medium of claim 19 , the processors further caused to perform: determining that the memory arena dedicated to the target region is unavailable; and creating the memory arena dedicated to the target region by allocating one space of a select size in a heap in the region server. 23. The medium of claim 22 , wherein the memory arena dedicated to the target region is determined unavailable when the memory arena dedicated to the target region does not exist in the heap. 24. The medium of claim 22 , wherein the memory arena dedicated to the target region is determined unavailable when the memory arena dedicated to the target region does not have enough space for the data object. 25. The medium of claim 19 , the processors further caused to perform: locating, in a heap in the region server, the memory arena dedicated to the target region; and determining that the memory arena has enough space for the data object. 26. The medium of claim 19 , the processors further caused to perform locating, in a heap in the region server, the memory arena dedicated to the target region; determining that the memory arena has not enough space for the data object; and creating, in the heap, a new memory arena in the heap as the memory arena dedicated to the target region. 27. The medium of claim 19 , wherein

Assignees

Inventors

Classifications

  • adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel · CPC title

  • G06F3/0611Primary

    in relation to response time · CPC title

  • Management of space entities, e.g. partitions, extents, pools · CPC title

  • Replacement control · CPC title

  • with cache invalidating means (G06F12/0815 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 US10613762B2 cover?
Systems and methods of a memory allocation buffer to reduce heap fragmentation. In one embodiment, the memory allocation buffer structures a memory arena dedicated to a target region that is one of a plurality of regions in a server in a database cluster such as an HBase cluster. The memory area has a chunk size (e.g., 2 MB) and an offset pointer. Data objects in write requests targeted to the …
Who is the assignee on this patent?
Cloudera Inc
What technology area does this patent fall under?
Primary CPC classification G06F3/0611. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Apr 07 2020 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 3 related publications on this page (citations in our corpus or others sharing the same primary CPC).