IP Library Granted Patent US 9,218,438
Granted Patent B2
US 9,218,438 · App. 14/011,986 · Granted Dec 22, 2015

Computing architecture for storing a graph database based on temporal aspects of its edges

Inventor: Sounil Yu (Reston, VA)
Assignee: Bank of America Corporation
G06F17/30958
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,218,438
App. No.
14/011,986
Granted
Dec 22, 2015
Kind
B2
Abstract

Data specifying a new edge of a graph database may be received. A data store for storing the new edge may be identified from amongst a plurality of data stores utilized to store one or more portions of the graph database. Each of the plurality of data stores may be associated with a set of values corresponding to an aspect of edges of the graph database. The data store for storing the new edge may be identified based on the new edge being associated with a value corresponding to the aspect of edges of the graph database that is within a set of values corresponding to the aspect of edges of the graph database associated with the data store for storing the new edge.

Claims (45)

1. A method comprising:

at a computing platform comprising at least one processor, a memory, and a communication interface:

receiving, via the communication interface, data specifying a new edge of a graph database and comprising information identifying a first node of the graph database and a second node of the graph database, the new edge associating the first node with the second node;

identifying, by the at least one processor, from amongst a plurality of data stores utilized to store one or more portions of the graph database, and based on a time when an element represented by the first node was associated with an element represented by the second node, a data store for storing the new edge, each data store of the plurality of data stores being associated with a time range corresponding to when elements represented by nodes of the graph database associated by edges of the graph database stored in the data store were associated with one another, and the data store for storing the new edge being associated with a time range comprising the time;

deleting, by the at least one processor, one or more edges of the graph database stored by a data store of the plurality of data stores associated with a time range comprising one or more past times;

altering, by the at least one processor, the time range comprising the one or more past times to comprise one or more future times; and

querying, by the at least one processor, the graph database for one or more values associated with a specified time range.

2. The method of claim 1 , wherein the plurality of data stores comprises a plurality of distinct computing platforms comprising at least two distinct physical computing platforms or two distinct virtual computing platforms, each data store of the plurality of data stores being associated with a different computing platform of the plurality of distinct computing platforms.

3. The method of claim 1 , wherein each data store of the plurality of data stores is associated with a set of geographic locations corresponding to where elements represented by nodes of the graph database associated by edges of the graph database stored in the data store were associated with one another, and wherein identifying the data store for storing the new edge comprises determining that a set of geographic locations associated with the data store for storing the new edge comprises a geographic location where an element represented by the first node was associated with an element represented by the second node.

4. The method of claim 1 , comprising:

identifying, by the at least one processor, a portion of the plurality of data stores associated with one or more time ranges comprising one or more times within the specified time range; and constraining, by the at least one processor, the querying to the portion.

5. The method of claim 1 , comprising:

identifying, by the at least one processor, a portion of the plurality of data stores associated with one or more time ranges that do not comprise a time within the specified time range; and

excluding, by the at least one processor, the portion from the querying.

6. A system comprising:

at least one processor;

a communication interface; and

a memory comprising instructions that when executed by the at least one processor cause the system to:

receive, via the communication interface, data specifying a new edge of a graph database and comprising information identifying a first node of the graph database and a second node of the graph database, the new edge associating the first node with the second node;

identify, from amongst a plurality of data stores utilized to store one or more portions of the graph database and based on a time when an element represented by the first node was associated with an element represented by the second node, a data store for storing the new edge, each data store of the plurality of data stores being associated with a time range corresponding to when elements represented by nodes of the graph database associated by edges of the graph database stored in the data store were associated with one another, and the data store for storing the new edge being associated with a time range comprising the time;

delete one or more edges of the graph database stored by a data store of the plurality of data stores associated with a time range comprising one or more past times;

alter the time range comprising the one or more past times to comprise one or more future times; and

query the graph database for one or more values associated with a specified time range.

7. The system of claim 6 , wherein the plurality of data stores comprises a plurality of distinct computing platforms comprising at least two distinct physical computing platforms or two distinct virtual computing platforms, each data store of the plurality of data stores being associated with a different computing platform of the plurality of distinct computing platforms.

8. The system of claim 6 , wherein each data store of the plurality of data stores is associated with a set of geographic locations corresponding to where elements represented by nodes of the graph database associated by edges of the graph database stored in the data store were associated with one another, and wherein the instructions, when executed by the at least one processor, cause the system to identify the data store for storing the new edge based on a determination that a set of geographic locations associated with the data store for storing the new edge comprises a geographic location where an element represented by the first node was associated with an element represented by the second node.

9. The system of claim 6 , wherein the instructions, when executed by the at least one processor, cause the system to:

identify a portion of the plurality of data stores associated with one or more time ranges comprising one or more times within the specified time range; and

constrain the query to the portion.

10. The system of claim 6 , wherein the instructions, when executed by the at least one processor, cause the system to:

identify a portion of the plurality of data stores associated with one or more time ranges that do not comprise a time within the specified time range; and

exclude the portion from the query.

11. One or more non-transitory computer-readable media comprising instructions that when executed by at least one processor of a computing platform comprising a communication interface cause the computing platform to:

receive, via the communication interface, data specifying a new edge of a graph database and comprising information identifying a first node of the graph database and a second node of the graph database, the new edge associating the first node with the second node;

identify, from amongst a plurality of data stores utilized to store one or more portions of the graph database and based on a time when an element represented by the first node was associated with an element represented by the second node, a data store for storing the new edge, each data store of the plurality of data stores being associated with a time range corresponding to when elements represented by nodes of the graph database associated by edges of the graph database stored in the data store were associated with one another, and the data store for storing the new edge being associated with a time range comprising the time;

delete one or more edges of the graph database stored by a data store of the plurality of data stores associated with a time range comprising one or more past times;

alter the time range comprising the one or more past times to comprise one or more future times; and

query the graph database for one or more values associated with a specified time range.

12. The one or more non-transitory computer-readable media of claim 11 , wherein the plurality of data stores comprises a plurality of distinct computing platforms comprising at least two distinct physical computing platforms or two distinct virtual computing platforms, each data store of the plurality of data stores being associated with a different computing platform of the plurality of distinct computing platforms.

13. The one or more non-transitory computer-readable media of claim 11 , wherein each data store of the plurality of data stores is associated with a set of geographic locations corresponding to where elements represented by nodes of the graph database associated by edges of the graph database stored in the data store were associated with one another, and wherein the instructions, when executed by the at least one processor, cause the computing platform to identify the data store for storing the new edge based on a determination that a set of geographic locations associated with the data store for storing the new edge comprises a geographic location where an element represented by the first node was associated with an element represented by the second node.

14. The one or more non-transitory computer-readable media of claim 11 , wherein the instructions, when executed by the at least one processor, cause the computing platform to:

identify a portion of the plurality of data stores associated with one or more time ranges comprising one or more times within the specified time range; and

constrain the query to the portion.

15. The one or more non-transitory computer-readable media of claim 11 , wherein the instructions, when executed by the at least one processor, cause the computing platform to:

identify a portion of the plurality of data stores associated with one or more time ranges that do not comprise a time within the specified time range; and

exclude the portion from the query.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 28, 2013
From: YU, SOUNIL
To: BANK OF AMERICA CORPORATION
Reel/Frame 031098/0961 →
Continuity (1)
Related Publication 20150066989A1 · Mar 5, 2015