IP Library › Granted Patent US 11,379,408
Granted Patent B2
US 11,379,408 · App. 16/866,234 · Granted Jul 5, 2022

Pointer-based dynamic data structures in key-value stores

Inventors: Daniel Waddington (Morgan Hill, CA); Luna Xu (San Jose, CA); Clement Lambert Dickey (San Jose, CA)
Assignee: International Business Machines Corporation
G06F16/119G06F9/5016G06F12/0238G06F12/1081G06F16/164G06F16/182G06F16/2246
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 11,379,408
App. No.
16/866,234
Granted
Jul 5, 2022
Kind
B2
Abstract

A computer-implemented method includes receiving data structures in memory space and creating micro-heaps on a per-data structure basis. Each data structure is associated with a micro-heap allocator. The method also includes storing the data structures in a key-value store. Values of the key-value store are associated with the data structures. A computer program product includes one or more computer readable storage media, and program instructions collectively stored on the one or more computer readable storage media. The program instructions include program instructions to perform the foregoing method. A system includes a processor and logic integrated with the processor, executable by the processor, or integrated with and executable by the processor. The logic is configured to perform the foregoing method.

Claims (32)

1. A computer-implemented method, comprising:

receiving data structures in memory space;

creating micro-heaps on a per-data structure basis, wherein each data structure is associated with a unique micro-heap allocator, wherein each micro-heap includes a micro-heap allocator and the associated data structure; and

storing the data structures in a key-value store, wherein values of the key-value store are associated with the data structures.

2. The computer-implemented method of claim 1 , comprising creating secondary micro-heaps on a per logical group basis, wherein a logical group comprises a plurality of data structures.

3. The computer-implemented method of claim 1 , comprising relocating the data structures, wherein relocating the data structures includes relocating memory managed by the micro-heap allocators associated with the data structures, wherein the relocating does not include serializing.

4. The computer-implemented method of claim 1 , comprising copying the data structures to memory managed by the micro-heap allocator associated with the data structures, wherein the copying does not include serializing.

5. The computer-implemented method of claim 1 , wherein each micro-heap is associated with a micro-heap allocator configured for memory management.

6. The computer-implemented method of claim 1 , comprising maintaining the memory space, wherein the memory space includes metadata memory space and allocated data memory space in a contiguous region of the memory space.

7. The computer-implemented method of claim 6 , comprising expanding the maintained memory space by linking a plurality of micro-heap allocators together.

8. The computer-implemented method of claim 6 , wherein the contiguous region of the memory space uses data transfers selected from the group consisting of: direct memory access (DMA) and remote direct memory access (RDMA).

9. A computer program product, the computer program product comprising:

one or more computer readable storage media, and program instructions collectively stored on the one or more computer readable storage media, the program instructions comprising:

program instructions to receive data structures in memory space;

program instructions to create micro-heaps on a per-data structure basis, wherein each data structure is associated with a unique micro-heap allocator, wherein each micro-heap includes a micro-heap allocator and the associated data structure; and

program instructions to store the data structures in a key-value store, wherein values of the key-value store are associated with the data structures.

10. The computer program product of claim 9 , comprising program instructions to create secondary micro-heaps on a per logical group basis, wherein a logical group comprises a plurality of data structures.

11. The computer program product of claim 9 , comprising program instructions to relocate the data structures, wherein relocating the data structures includes relocating memory managed by the micro-heap allocators associated with the data structures, wherein the relocating does not include serializing.

12. The computer program product of claim 9 , comprising program instructions to copy the data structures to memory managed by the micro-heap allocator associated with the data structures, wherein the copying does not include serializing.

13. The computer program product of claim 9 , wherein each micro-heap is associated with a micro-heap allocator configured for memory management.

14. The computer program product of claim 9 , comprising program instructions to maintain the memory space, wherein the memory space includes metadata memory space and allocated data memory space in a contiguous region of the memory space.

15. The computer program product of claim 14 , comprising program instructions to expand the maintained memory space by linking a plurality of micro-heap allocators together.

16. The computer program product of claim 14 , wherein the contiguous region of the memory space uses data transfers selected from the group consisting of: direct memory access (DMA) and remote direct memory access (RDMA).

17. A system, comprising:

a processor; and

logic integrated with the processor, executable by the processor, or integrated with and executable by the processor, the logic being configured to:

receive data structures in memory space;

create micro-heaps on a per-data structure basis, wherein each data structure is associated with a unique micro-heap allocator, wherein each micro-heap includes a micro-heap allocator and the associated data structure; and

store the data structures in a key-value store, wherein values of the key-value store are associated with the data structures.

18. The system of claim 17 , comprising logic configured to create secondary micro-heaps on a per logical group basis, wherein a logical group comprises a plurality of data structures.

19. The system of claim 17 , comprising logic configured to relocate the data structures, wherein relocating the data structures includes relocating memory managed by the micro-heap allocators associated with the data structures, wherein the relocating does not include serializing.

20. The system of claim 17 , comprising logic configured to copy the data structures to memory managed by the micro-heap allocator associated with the data structures, wherein the copying does not include serializing.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 5, 2020
From: WADDINGTON, DANIEL; XU, LUNA; DICKEY, CLEMENT LAMBERT
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 052855/0759 →
Continuity (1)
Related Publication 20210342293A1 · Nov 4, 2021