IP Library Granted Patent US 10,956,499
Granted Patent B2
US 10,956,499 · App. 15/264,570 · Granted Mar 23, 2021

Efficient property graph storage for streaming/multi-versioning graphs

Inventors: Ching-Yung Lin (Scarsdale, NY); Yanbin Liu (New Haven, CT); Lifeng Nai (Atlanta, GA); Wei Tan (Elmsford, NY); Ilie G. Tanase (Somers, NY); Yinglong Xia (Rye Brook, NY)
Assignee: International Business Machines Corporation
G06F16/9024G06F16/28
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,956,499
App. No.
15/264,570
Granted
Mar 23, 2021
Kind
B2
Abstract

A data storage and retrieval system for a computer memory includes a stream graph engine extracting graph data from streaming data, the graph data occupying a sliding window and comprising a plurality of slices representing a set of contiguous graphs, and where each slice of the plurality of slices corresponds to a given graph structure and its properties at a particular time, the stream graph engine causing the computer memory to store an on-disk portion of the graph data including a key table, a timestamp table and a plurality of property files, wherein the key table comprises a plurality of pointers to corresponding entries of the timestamp table, wherein each of the entries of the timestamp table comprise a corresponding timestamp and a pointer to the properties files, wherein the properties files comprise properties of a corresponding graph of the set of contiguous graphs, an in-memory portion of the graph data having a cache data structure storing a subset of the key table, and a versioning control module storing evolving changes in the graph data in the computer memory.

Claims (33)

1. A data storage and retrieval system for a computer memory, comprising:

a stream graph engine extracting graph data from streaming data, said graph data occupying a sliding window and comprising a plurality of slices representing a set of contiguous graphs, and where each slice of said plurality of slices corresponds to a respective one of said contiguous graphs and its properties at a particular time, said stream graph engine causing said computer memory to store:

an on-disk portion of said graph data including a key table, a timestamp table and a plurality of property files, wherein said key table comprises a plurality of pointers to corresponding entries of said timestamp table, wherein each of said entries of said timestamp table comprise a corresponding timestamp and a pointer to said properties files, wherein said properties files store said properties of a corresponding one of said contiguous graphs; and

an in-memory portion of said graph data having a cache data structure storing a subset of said key table comprising a subset of said plurality of pointers to corresponding entries of said timestamp table,

wherein said storing comprises writing each slice synchronously to said on-disk portion and said in-memory portion; and

a versioning control module storing evolving changes in said graph data between said slices and controlling a size of said sliding window,

wherein said contiguous graphs comprise a plurality of edges and a plurality of vertices, and properties of each edge and each vertex are stored across a plurality of property bundles as said evolving changes organized by timestamp, wherein all of said properties of a given edge or vertex at a given timestamp are addressed by a respective individual entry corresponding to one of the bundles in a timestamp table.

2. The data storage and retrieval system of claim 1 , wherein said properties of said corresponding one of said contiguous graphs are addressed as a bundle.

3. The data storage and retrieval system of claim 1 , wherein said versioning control module uses temporal versioning.

4. The data storage and retrieval system of claim 1 , wherein said versioning control module generates said corresponding timestamps.

5. The data storage and retrieval system of claim 1 , wherein said corresponding timestamps relate to respective versions of said graph data, and wherein said versioning control module controls a number of said versions of said graph data stored by maintaining said size of said sliding window.

6. A method for operating a data storage and retrieval system for a computer memory, said method comprising:

extracting, by a stream graph engine, graph data from streaming data, said graph data occupying a sliding window and comprising a plurality of slices representing a set of contiguous graphs, and where each slice of said plurality of slices corresponds to a respective one of said contiguous graphs and its properties at a particular time;

storing, by said stream graph engine, an on-disk portion of said graph data including a key table, a timestamp table and a plurality of property files, wherein said key table comprises a plurality of pointers to corresponding entries of said timestamp table, wherein each of said entries of said timestamp table comprise a corresponding timestamp and a pointer to said properties files, wherein said properties files store said properties of a corresponding one of said contiguous graphs;

storing, by said stream graph engine, an in-memory portion of said graph data having a cache data structure storing a subset of said key table comprising a subset of said plurality of pointers to corresponding entries of said timestamp table,

wherein for each slice, said storing of said on-disk portion and said storing of said in-memory portion are performed synchronously; and

storing in said computer memory, by a versioning control module, newly extracted graph data from the streaming data in said graph data as evolving changes in said graph data between said slices and controlling a size of said sliding window,

wherein said contiguous graphs comprise a plurality of edges and a plurality of vertices, and properties of each edge and each vertex are stored across a plurality of property bundles as said evolving changes organized by timestamp, wherein all of said properties of a given edge or vertex at a given timestamp are addressed by a respective individual entry corresponding to one of the bundles in a timestamp table.

7. The method of claim 6 , further comprising addressing at least one of said property bundles.

8. The method of claim 6 , further comprising performing, by said versioning control module uses, temporal versioning for said storing of said evolving changes in said graph data.

9. The method of claim 6 , further comprising generating, by said versioning control module, said corresponding timestamps.

10. The method of claim 6 , wherein said corresponding timestamps relate to respective versions of said graph data, and wherein said versioning control module controls a number of said versions of said graph data stored by maintaining a size of said sliding window.

11. A non-transitory computer readable medium comprising computer executable instructions which when executed by a computer cause the computer to perform a method for operating a data storage and retrieval system for a computer memory, said method comprising:

extracting, by a stream graph engine, graph data from streaming data, said graph data occupying a sliding window and comprising a plurality of slices representing a set of contiguous graphs, and where each slice of said plurality of slices corresponds to a respective one of said contiguous graphs and its properties at a particular time;

storing, by said stream graph engine, an on-disk portion of said graph data including a key table, a timestamp table and a plurality of property files, wherein said key table comprises a plurality of pointers to corresponding entries of said timestamp table, wherein each of said entries of said timestamp table comprise a corresponding timestamp and a pointer to said properties files, wherein said properties files store said properties of a corresponding one of said contiguous graphs;

storing, by said stream graph engine, an in-memory portion of said graph data having a cache data structure storing a subset of said key table comprising a subset of said plurality of pointers to corresponding entries of said timestamp table,

wherein for each slice, said storing of said on-disk portion and said storing of said in-memory portion are performed synchronously; and

storing in said computer memory, by a versioning control module, newly extracted graph data from the streaming data in said graph data as evolving changes in said graph data between said slices and controlling a size of said sliding window,

wherein said contiguous graphs comprise a plurality of edges and a plurality of vertices, and properties of each edge and each vertex are stored across a plurality of property bundles as said evolving changes organized by timestamp, wherein all of said properties of a given edge or vertex at a given timestamp are addressed by a respective individual entry corresponding to one of the bundles in a timestamp table.

12. The computer readable medium of claim 11 , further comprising addressing, by said stream graph engine, at least one of said property bundles.

13. The computer readable medium of claim 11 , further comprising performing, by said versioning control module uses, temporal versioning for said storing of said evolving changes in said graph data.

14. The computer readable medium of claim 11 , further comprising generating, by said versioning control module, said corresponding timestamps.

15. The computer readable medium of claim 11 , wherein said corresponding timestamps relate to respective versions of said graph data, and wherein said versioning control module controls a number of said versions of said graph data stored by maintaining a size of said sliding window.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE 2ND AND FIFTH INVENTOR NAME PREVIOUSLY RECORDED AT REEL: 039723 FRAME: 0210. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Dec 14, 2016
From: LIN, CHING-YUNG; LIU, YANBIN; NAI, LIFENG; TAN, WEI; TANASE, ILIE G.; XIA, YINGLONG
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 040913/0128 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 13, 2016
From: LIN, CHING-YUNG; LIU, YANBIN; NAI, LIFENG; TAN, WEI; TANASE, ILIE G.; XIA, YINGLONG
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 039723/0210 →
Continuity (1)
Related Publication 20180075159A1 · Mar 15, 2018