Distributed graph database

US2017091246A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2017091246-A1
Application numberUS-201615154370-A
CountryUS
Kind codeA1
Filing dateMay 13, 2016
Priority dateSep 25, 2015
Publication dateMar 30, 2017
Grant date

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A distributed graph database that enables scaling and efficient processing is described. The distributed graph database can, for example, scale up to petabytes of data to enable transactional processing of graph data with low latency and low processing overhead. The distributed graph database can include a cluster of devices and a remote direct memory access (RDMA)-based communication layer to perform low latency messaging between devices of the cluster of devices. Additionally, the distributed graph database can include a shared memory layer that provides one or more data structures, a transaction layer to facilitate query processing, and a graph database layer stored in computer-readable media and executed on a processor to implement a graph data model. In at least one example, the graph data model can be mapped to the one or more data structures.

First claim

Opening claim text (preview).

We claim: 1 . A system comprising: a cluster of devices; a remote direct memory access (RDMA)-based communication layer to perform low latency messaging between devices of the cluster of devices; a shared memory layer that provides one or more data structures; a transaction layer that can be used to perform query processing; and a graph database layer stored in computer-readable media and executed on a processor to implement a graph data model, the graph data model being mapped to the one or more data structures. 2 . A system as claim 1 recites, wherein the RDMA-based communication layer further performs replication of memory regions between the devices of the cluster of devices without involving processors associated with the devices of the cluster of devices. 3 . A system as claim 1 recites, wherein the one or more data structures include at least one of a b-tree, a hash table, a linked list, or a catalog. 4 . A system as claim 3 recites, wherein the hash table utilizes a changed associative hopscotch hashing algorithm to balance space efficiency and a size and a number of RDMAs used to perform the low latency messaging between the devices. 5 . A system as claim 3 recites, wherein the b-tree utilizes fence keys to perform lock-free reads for reducing a size and a number of RDMAs used to perform the low latency messaging between the devices. 6 . A system as claim 3 recites, wherein the b-tree provides a key-value store that iterates over a range. 7 . A system as claim 1 recites, wherein the graph data model comprises: a plurality of vertices; and one or more directed edges each connecting pairs of vertices of the plurality of vertices. 8 . A system as claim 1 recites, further comprising a co-processor layer, the co-processor layer comprising at least one of a trusted co-processor, an untrusted hosted co-processor, or an untrusted frontend-hosted co-processor. 9 . A method comprising: distributing a data structure across a cluster of devices in a shared transactional memory layer; generating a graph based at least in part on the data structure; receiving a transaction to be executed against the graph; and using remote direct memory access (RDMA) to execute the transaction against the graph. 10 . A method as claim 9 recites, wherein the data structure is at least one of a hash table, a b-tree, a linked list, or a catalog. 11 . A method as claim 9 recites, wherein the graph comprises: a plurality of vertices; and one or more directed edges, wherein a directed edge connects a first vertex of the plurality of vertices to a second vertex of the plurality of vertices. 12 . A method as claim 11 recites, wherein the plurality of vertices and the one or more directed edges are mapped to the data structure. 13 . A method as claim 9 recites, wherein: the transaction comprises a query; and the method further comprises executing the transaction based at least in part on a breath-first-search query. 14 . A method as claim 13 recites, wherein the breath-first-search query comprises: accessing a node of the graph; and iteratively processing a plurality of nodes around the node to determine characteristics that match the node. 15 . A method as claim 9 recites, wherein distributing the data structure across the cluster of devices comprises distributing data structure objects according to a locality principle. 16 . A method as claim 15 recites, wherein distributing the data structure objects according to the locality principle comprises: based at least in part on determining that a data structure object of the data structure objects can be placed in a same region as another data structure object, placing the data structure object within the same region as the other data structure object; based at least in part on determining that it is not possible to place the data structure object within the same region as the other data structure object, placing the data structure object within a same device as the other data structure object; and based at least in part on determining that it is not possible to place the data structure object within the same device as the other data structure object, placing the data structure object within a device on a same physical rack as a device in which the other data structure object is located. 17 . A system comprising: a cluster of devices, wherein individual devices of the cluster of devices include: one or more processors; a portion of a shared transactional memory associated with the cluster of devices, the portion of the shared transactional memory including a portion of a data structure that is distributed across the cluster of devices and is accessible by the cluster of devices via remote direct memory access (RDMA) reads; and a local memory that stores one or more graphs generated based at least in part on the data structure associated with the shared transactional memory. 18 . A system as claim 17 recites, wherein the shared transactional memory is configured to: receive a transaction to be executed against a graph of the one or more graphs; and utilize the RDMA to execute the transaction against the graph. 19 . A system as claim 18 recites, wherein the shared transactional memory implements efficient non-uniform memory access (NUMA)-aware multiplexing to improve execution of the transaction against the graph. 20 . A system as claim 17 recites, wherein the shared transactional memory comprises a petabyte transactional memory storage layer.

Assignees

Inventors

Classifications

  • Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor · CPC title

  • Distributed file systems · CPC title

  • Hash tables · CPC title

  • Indexing; Data structures therefor; Storage structures · CPC title

  • Trees, e.g. B+trees · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US2017091246A1 cover?
A distributed graph database that enables scaling and efficient processing is described. The distributed graph database can, for example, scale up to petabytes of data to enable transactional processing of graph data with low latency and low processing overhead. The distributed graph database can include a cluster of devices and a remote direct memory access (RDMA)-based communication layer to …
Who is the assignee on this patent?
Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification G06F16/9024. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Mar 30 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).