IP Library Granted Patent US 9,305,040
Granted Patent B2
US 9,305,040 · App. 14/147,972 · Granted Apr 5, 2016

Efficient B-tree data serialization

Inventors: Lilia Demidov (Ness-Tziona, IL); Nir Halowani (Holon, IL); Yifat Kuttner (Tel Aviv, IL); Ben Sasson (Yaffo, IL)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F17/30327G06F17/30336
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 9,305,040
App. No.
14/147,972
Granted
Apr 5, 2016
Kind
B2
Abstract

B-Tree data is serialized to existing data for all types of workloads by converting a B-Tree data structure into a format capable of being stored and resurrected while containing all data stored in the B-Tree data structure and information relating to the B-Tree data structure.

Claims (26)

1. A method for efficient B-Tree data serialization using a processor device in a computing environment, comprising:

serializing B-Tree data to existing data for one of a plurality of workloads by converting a B-Tree data structure into a format capable of being stored and resurrected while containing all data stored in the B-Tree data structure and information relating to the B-Tree data structure;

dividing the serialized B-Tree data into a plurality of sections, wherein the plurality of sections include at least one of a B-Tree information section, a B-Tree key section, and a B-Tree data section;

storing the serialized B-Tree data into a plurality of buffers wherein storing the B-Tree information section in a first binary buffer, the B-Tree key section in a second binary buffer, and the B-Tree data section in a third binary buffer; and

saving a plurality keys used in the B-Tree data structure in the B-Tree key section, wherein the plurality keys are ordered according to a tree scan order, and a size of the B-Tree key section is equal to a total number of keys saved in inner nodes plus a total number of keys saved in leaves multiplied by a size of one of the plurality of keys.

2. The method of claim 1 , further including saving a plurality of information describing the B-Tree data structure in the B-Tree information section, wherein the plurality of information includes at least sizes and amounts of elements in the B-Tree data structure.

3. The method of claim 1 , further using the B-Tree information section for calculating memory required for the B-Tree data structure when deserializing the serialized B-Tree data.

4. The method of claim 1 , further including saving, in the B-Tree data section, B-Tree data elements stored in the B-Tree data structure, wherein a size of the B-Tree data section is equal to a total number of the B-Tree data elements in the B-Tree data structure multiplied by a size of each of the B-Tree data elements.

5. A system for efficient B-Tree data serialization using a processor device in a computing environment, the system comprising:

at least one processor device operable in the computing storage environment for controlling the B-Tree data serialization, wherein the at least one processor device:

serializes B-Tree data to existing data for one of a plurality of workloads by converting a B-Tree data structure into a format capable of being stored and resurrected while containing all data stored in the B-Tree data structure and information relating to the B-Tree data structure,

divides the serialized B-Tree data into a plurality of sections, wherein the plurality of sections include at least one of a B-Tree information section, a B-Tree key section, and a B-Tree data section,

stores the serialized B-Tree data into a plurality of buffers, wherein storing the B-Tree information section in a first binary buffer, the B-Tree key section in a second binary buffer, and the B-Tree data section in a third binary buffer, and

saves a plurality keys used in the B-Tree data structure in the B-Tree key section, wherein the plurality keys are ordered according to a tree scan order, and a size of the B-Tree key section is equal to a total number of keys saved in inner nodes plus a total number of keys saved in leaves multiplied by a size of one of the plurality of keys.

6. The system of claim 5 , wherein the at least one processor device saves a plurality of information describing the B-Tree data structure in the B-Tree information section, wherein the plurality of information includes at least sizes and amounts of elements in the B-Tree data structure.

7. The system of claim 5 , wherein the at least one processor device uses the B-Tree information section for calculating memory required for the B-Tree data structure when deserializing the serialized B-Tree data.

8. The system of claim 5 , wherein the at least one processor device saves, in the B-Tree data section, B-Tree data elements stored in the B-Tree data structure, wherein a size of the B-Tree data section is equal to a total number of the B-Tree data elements in the B-Tree data structure multiplied by a size of each of the B-Tree data elements.

9. A computer program product for efficient B-Tree data serialization using a processor device using a processor device in a computing environment, the computer program product comprising a non-transitory computer-readable storage medium having computer-readable program code portions stored therein, the computer-readable program code portions comprising:

a first executable portion that serializes B-Tree data to existing data for one of a plurality of workloads by converting a B-Tree data structure into a format capable of being stored and resurrected while containing all data stored in the B-Tree data structure and information relating to the B-Tree data structure;

a second executable portion that divides the serialized B-Tree data into a plurality of sections, wherein the plurality of sections include at least one of a B-Tree information section, a B-Tree key section, and a B-Tree data section;

a third executable portion that stores the serialized B-Tree data into a plurality of buffers, wherein storing the B-Tree information section in a first binary buffer, the B-Tree key section in a second binary buffer, and the B-Tree data section in a third binary buffer; and

a fourth executable portion that saves a plurality keys used in the B-Tree data structure in the B-Tree key section wherein the plurality keys are ordered according to a tree scan order, and a size of the B-Tree key section is equal to a total number of keys saved in inner nodes plus a total number of keys saved in leaves multiplied by a size of one of the plurality of keys.

10. The computer program product of claim 9 , further including a fifth executable portion that saves a plurality of information describing the B-Tree data structure in the B-Tree information section, wherein the plurality of information includes at least sizes and amounts of elements in the B-Tree data structure.

11. The computer program product of claim 9 , further including a fifth executable portion that uses the B-Tree information section for calculating memory required for the B-Tree data structure when deserializing the serialized B-Tree data.

12. The computer program product of claim 9 , further including a fifth executable portion that:

saves, in the B-Tree data section, B-Tree data elements stored in the B-Tree data structure, wherein a size of the B-Tree data section is equal to a total number of the B-Tree data elements in the B-Tree data structure multiplied by a size of each of the B-Tree data elements.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 6, 2014
From: DEMIDOV, LILIA; HALOWANI, NIR; KUTTNER, YIFAT; SASSON, BEN
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 031924/0212 →
Continuity (1)
Related Publication 20150193487A1 · Jul 9, 2015