Efficient recovery of transactional data stores
US-8954385-B2 · Feb 10, 2015 · US
US9552165B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9552165-B2 |
| Application number | US-201514846413-A |
| Country | US |
| Kind code | B2 |
| Filing date | Sep 4, 2015 |
| Priority date | Jan 18, 2012 |
| Publication date | Jan 24, 2017 |
| Grant date | Jan 24, 2017 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
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.
Opening claim text (preview).
What is claimed is: 1. A method for reducing delays due to memory fragmentation in a region server hosting a plurality of regions for a distributed database system, the region server maintaining a heap in the region server's memory, the method comprising: implementing, at the region server, an in-memory store for each region, wherein the in-memory store for each region is to hold data to be written until the data reaches a predetermined size and to flush the data to a storage when the predetermined size is reached; receiving a write request from a client, wherein the write request includes a target region and an data object for insertion into the target region; 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 an in-memory store for the target region flushes the data, space freed from the memory arena dedicated to the target region is contiguous, wherein the memory arena dedicated to the target region is a space dedicated to the target region in the heap. 2. 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. 3. The method of claim 1 , further comprising: determining that the memory arena dedicated to the target region is unavailable; and creating, in the heap, the memory arena dedicated to the target region by allocating one space of a select size in the heap. 4. The method of claim 3 , 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. 5. The method of claim 3 , 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. 6. The method of claim 1 , further comprising: locating, in the heap, the memory arena dedicated to the target region; and determining that the memory arena has enough space for the data object. 7. The method of claim 1 , further comprising: locating, in the heap, 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. 8. A server hosting a plurality of regions for a distributed database system, the server maintaining a heap in a memory of the server, the server's memory including instructions which, upon executed by a processor of the server, instruct the server to perform: implementing, at the region server, an in-memory store for each region, wherein the in-memory store for each region is to hold data to be written until the data reaches a predetermined size and to flush the data to a storage when the predetermined size is reached; receiving a write request from a client, wherein the write request includes a target region and an data object for insertion into the target region; 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 an in-memory store for the target region flushes the data, space freed from the memory arena dedicated to the target region is contiguous, wherein the memory arena dedicated to the target region is a space dedicated to the target region in the heap. 9. The server of claim 8 , wherein said storing the data object step is performed based on an availability of the memory arena dedicated to the target region. 10. The server of claim 8 , further comprising: determining that the memory arena dedicated to the target region is unavailable; and creating, in the heap, the memory arena dedicated to the target region by allocating one space of a select size in the heap. 11. The server of claim 10 , 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. 12. The server of claim 10 , 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. 13. The server of claim 8 , further comprising: locating, in the heap, the memory arena dedicated to the target region; and determining that the memory arena has enough space for the data object. 14. The server of claim 8 , further comprising: locating, in the heap, 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. 15. A non-transitory machine-readable storage medium including executable instructions, which when executed by a processor, cause the processor to: implement, at a server hosting a plurality of regions for a distributed database system and maintaining a heap in the server's memory, an in-memory store for each region, wherein the in-memory store for each region is to hold data to be written until the data reaches a predetermined size and to flush the data to a storage when the predetermined size is reached; receive a write request from a client, wherein the write request includes a target region and an data object for insertion into the target region; and store 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 an in-memory store for the target region flushes the data, space freed from the memory arena dedicated to the target region is contiguous, wherein the memory arena dedicated to the target region is a space dedicated to the target region in the heap. 16. The medium of claim 15 , wherein said storing the data object step is performed based on an availability of the memory arena dedicated to the target region. 17. The medium of claim 15 , further comprising instructions that cause the processor to: determine that the memory arena dedicated to the target region is unavailable; and create, in the heap, the memory arena dedicated to the target region by allocating one space of a select size in the heap. 18. The medium of claim 17 , 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 or when the memory arena dedicated to the target region does not have enough space for the data object. 19. The medium of claim 15 , further comprising instructions that cause the processor to: locate, in the heap, the memory arena dedicated to the target region; and determine that the memory arena has enough space for the data object. 20. The medium of claim 15 , further comprising instructions that cause the processor to: locate, in the heap, the memory arena dedicated to the target region; determine that the memory arena has not enough space for the data object; and create, in the heap, a new memory arena in the heap as the memory arena dedicated to the target region.
Details of free space management performed by the file system (saving storage space on storage systems G06F3/0608; management of blocks in storage devices G06F3/064) · CPC title
with cache invalidating means (G06F12/0815 takes precedence) · CPC title
adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel · CPC title
for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS] · CPC title
in relation to response time · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.