IP Library Granted Patent US 10,459,641
Granted Patent B2
US 10,459,641 · App. 14/223,471 · Granted Oct 29, 2019

Efficient serialization of journal data

Inventors: Jonathan Amit (Omer, IL); Yifat Kuttner (Kochav Yair, IL); Sergey Marenkov (Tel Aviv, IL); Ben Sasson (Yaffo, IL)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F3/0619G06F3/061G06F3/065G06F3/0656G06F3/0665G06F3/0676G06F3/0689G06F11/00G06F11/1471G06F2201/855
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 10,459,641
App. No.
14/223,471
Granted
Oct 29, 2019
Kind
B2
Abstract

For efficient serialization of journal data using a processor device, serialization is combined with journaling of data into one data storage system on a write operation with subsequent consolidation for serialization of the journal data.

Claims (55)

1. A method for efficient serialization of journal data using a processor device in a computing environment, the method comprising:

combining serialization with journaling of data into one data storage system on a write operation with subsequent consolidation for serialization of the journal data;

wherein during performing the serialization of the journal data, write operations are delayed for a predetermined time period to allow a consistent memory snapshot to be taken, the predetermined time period ending upon completion of the taking of the consistent memory snapshot at which time the write operations are resumed;

for serialization of the journal data, performing:

reviewing an in-memory data structure,

creating a data stream and persistently storing the data stream on a disk, and

discarding all previous records saved to the disk created from the journaling after saving the data stream; and

when loading an object from the disk, detecting when the object previously saved to the disk is in each of a plurality of states and adjusting the loading of the object from the disk commensurate with at least one of two types of metadata comprising journal metadata and serialized metadata, the at least one of two types of metadata corresponding to the particular one of the plurality of states the object is in, wherein the plurality of states include:

a first state representing data saved to the disk as records via the journaling before a first serialization of the journal data,

a second state representing all data saved to the disk as the data stream immediately after the serialization of the journal data, wherein there are no records saved to the disk in the second state following the serialization of the journal data, and

a third state with the data saved in the disk as a combination of a serialization data and the journal data having both the data stream created during a most recent serialization of the journal data and a set of records representing the write operations performed after the serialization of the journal data.

2. The method of claim 1 , further including searching data saved for the object on the disk when loading the object from the disk and determining whether the data is one of serialized data and journal data.

3. The method of claim 2 , further including reading the serialized data from the disk to the memory and deserialize the serialized data, wherein a data structure is built from the serialized data.

4. The method of claim 3 , further including performing at least one of:

upon completion of reading the serialized data or if the serialized data does not exist on the disk,

searching for the journal data in the disk and loading the object while granting access to the object if the journal data does not exist, wherein if the journal data does exist in the disk:

consecutively reading each of the records one after the other, and

updating changes made to each of the records in the in-memory data structure, wherein the object completes uploaded when a last record is updated.

5. A system for efficient serialization of journal data in a computing environment, the system comprising:

at least one processor device operable in the computing environment, wherein the at least one processor device:

combines serialization with journaling of data into one data storage system on a write operation with subsequent consolidation for serialization of the journal data;

wherein during performing the serialization of the journal data, write operations are delayed for a predetermined time period to allow a consistent memory snapshot to be taken, the predetermined time period ending upon completion of the taking of the consistent memory snapshot at which time the write operations are resumed,

for serialization of the journal data, performs:

reviewing an in-memory data structure,

creating a data stream and persistently storing the data stream on a disk, and

discarding all previous records saved to the disk created from the journaling after saving the data stream, and

when loading an object from the disk, detects when the object previously saved to the disk is in each of a plurality of states and adjusts the loading of the object from the disk commensurate with at least one of two types of metadata comprising journal metadata and serialized metadata, the at least one of two types of metadata corresponding to the particular one of the plurality of states the object is in, wherein the plurality of states include:

a first state representing data saved to the disk as records via the journaling before a first serialization of the journal data,

a second state representing all data saved to the disk as the data stream immediately after the serialization of the journal data, wherein there are no records saved to the disk in the second state following the serialization of the journal data, and

a third state with the data saved in the disk as a combination of a serialization data and the journal data having both the data stream created during a most recent serialization of the journal data and a set of records representing the write operations performed after the serialization of the journal data.

6. The system of claim 5 , wherein the at least one processor device searches data saved for the object on the disk when loading the object from the disk and determining whether the data is one of serialized data and journal data.

7. The system of claim 6 , wherein the at least one processor device reads the serialized data from the disk to the memory and deserialize the serialized data, wherein a data structure is built from the serialized data.

8. The system of claim 7 , wherein the at least one processor device performs at least one of:

upon completion of reading the serialized data or if the serialized data does not exist on the disk,

searching for the journal data in the disk and loading the object while granting access to the object if the journal data does not exist, wherein if the journal data does exist in the disk:

consecutively reading each of the records one after the other, and

updating changes made to each of the records in the in-memory data structure, wherein the object completes uploaded when a last record is updated.

9. A computer program product for efficient serialization of journal data using a processor device, 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 combines serialization with journaling of data into one data storage system on a write operation with subsequent consolidation for serialization of the journal data;

wherein during performing the serialization of the journal data, write operations are delayed for a predetermined time period to allow a consistent memory snapshot to be taken, the predetermined time period ending upon completion of the taking of the consistent memory snapshot at which time the write operations are resumed;

a second executable portion that, for serialization of the journal data, performs:

reviewing an in-memory data structure,

creating a data stream and persistently storing the data stream on a disk, and

discarding all previous records saved to the disk created from the journaling after saving the data stream; and

a third executable portion that, when loading an object from the disk, detects when the object previously saved to the disk is in each of a plurality of states and adjusts the loading of the object from the disk commensurate with at least one of two types of metadata comprising journal metadata and serialized metadata, the at least one of two types of metadata corresponding to the particular one of the plurality of states the object is in, wherein the plurality of states include:

a first state representing data saved to the disk as records via the journaling before a first serialization of the journal data,

a second state representing all data saved to the disk as the data stream immediately after the serialization of the journal data, wherein there are no records saved to the disk in the second state following the serialization of the journal data, and

a third state with the data saved in the disk as a combination of a serialization data and the journal data having both the data stream created during a most recent serialization of the journal data and a set of records representing the write operations performed after the serialization of the journal data.

10. The computer program product of claim 9 , further includes a fifth executable portion that searches data saved for the object on the disk when loading the object from the disk and determining whether the data is one of serialized data and journal data.

11. The computer program product of claim 10 , further includes a sixth executable portion that performs at least one of:

reading the serialized data from the disk to the memory and deserialize the serialized data, wherein a data structure is built from the serialized data,

upon completion of reading the serialized data or if the serialized data does not exist on the disk,

searching for the journal data in the disk and loading the object while granting access to the object if the journal data does not exist, wherein if the journal data does exist in the disk:

consecutively reading each of the records one after the other, and

updating changes made to each of the records in the in-memory data structure, wherein the object completes uploaded when a last record is updated.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 24, 2014
From: AMIT, JONATHAN; KUTTNER, YIFAT; MARENKOV, SERGEY; SASSON, BEN
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 032513/0555 →
Continuity (1)
Related Publication 20150268878A1 · Sep 24, 2015