IP Library Patent Application 17015038
Patent Application
App. No. 17/015,038

HYBRID DECENTRALIZED COMPUTING ENVIRONMENT FOR GRAPH-BASED EXECUTION ENVIRONMENT

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 None
App. No.
17/015,038
Abstract

A method includes executing an instance of an application, where a program state includes a set of vertices and a set of directed graph edges, serializing the set of vertices in a serialized data format, and storing a record in a first persistent storage of a first computing device. The method includes distributing the serialized set of vertices to a second computing device and deserializing the serialized set of vertices to generate a second instance of a directed graph in non-serialized data format. The method includes storing the second instance in a second persistent storage, receiving a message encoding a graph portion template, and querying the second persistent storage based on the graph portion template to retrieve a subset of vertices encoded in the second instance. The method includes computing a response value based on the subset of vertices and transmitting the response value.

Claims (71)

1 . A tangible, non-transitory, machine-readable medium storing instructions that, when executed by a computing system, effectuate operations comprising:

executing, with one or more processors, an instance of an application, wherein:

program state of the instance of the application comprises a set of vertices and a set of directed graph edges,

each vertex of the set of vertices comprises an identifier and a category label of a set of mutually exclusive category labels, and

each of the set of directed graph edges associates a pair of the set of vertices and a direction from a tail vertex of the pair to a head vertex of the pair;

serializing, with one or more processors, the set of vertices in a serialized data format and storing a record comprising the serialized set of vertices in a first persistent storage of a first computing device of a plurality of computing devices communicatively coupled to each other via a network;

distributing, with one or more processors, the serialized set of vertices to a second computing device of the plurality of computing devices;

deserializing, with one or more processors, the serialized set of vertices with the second computing device to generate a second instance of a directed graph, wherein the second instance of the directed graph encodes the set of vertices and the set of directed graph edges in non-serialized data format;

storing, with one or more processors, the second instance of the directed graph in a second persistent storage, wherein the second persistent storage is a local persistent storage of the second computing device;

receiving, with one or more processors, a message encoding a graph portion template, wherein the graph portion template comprises a first vertex template and an edge template, and wherein the first vertex template is associated with a first category label of the set of mutually exclusive category labels, and wherein the edge template specifies an edge direction to or from a vertex matching the first vertex template;

querying, with one or more processors, a data structure of the second persistent storage based on the graph portion template to retrieve a subset of vertices encoded in the second instance of the directed graph;

computing, with one or more processors, a response value based on the subset of vertices; and

sending, with one or more processors, a response comprising the response value from the second computing device to a response destination indicated by the message.

2 . The medium of claim 1 , wherein the computing the response value comprises:

determining a set of entities based on the subset of vertices;

determining whether a data retrieval criterion of the set of entities is satisfied; and

wherein computing the response value comprises computing the response value in response to a determination that the data retrieval criterion is satisfied.

3 . The medium of claim 1 , wherein the message comprises instructions to update the directed graph, the operations comprising:

storing an updated directed graph in the second persistent storage based on the message;

determining a first update confirmation value associated with the updated directed graph;

receiving a second update confirmation value at the second computing device;

determining whether the first update confirmation value satisfies a set of storage update criteria based on the second update confirmation value; and

in response to a determination that the first update confirmation value satisfies the set of storage update criteria, set an indicator to indicate that the updated directed graph is valid in the second persistent storage.

4 . The medium of claim 1 , the operations further comprising:

determining whether a graph portion of the directed graph matches a graph portion template of a library of graph portion templates; and

in response to a determination that the graph portion of the directed graph matches the graph portion template, associate an index value with a first vertex of the graph portion, wherein the first vertex is retrievable with the index value.

5 . The medium of claim 1 , the operations further comprising:

selecting a plurality of directed graphs stored in the second persistent storage based on the message;

for each respective directed graph of the plurality of directed graphs, determining a respective subset of vertices associated with the respective directed graph; and

wherein determining the response value based on the respective subsets of vertices of the plurality of directed graphs.

6 . The medium of claim 1 , further comprising:

detecting a state-updating event associated with an update to program state, wherein the state-updating event causes a change in the set of vertices or a status associated with the set of vertices;

updating a historical sequence of records based on the state-updating event, wherein each respective vertex of the historical sequence of records is associated with a respective state-updating event; and

storing the historical sequence of records in the second persistent storage, wherein each vertex of the historical sequence of records is associated with a respective version of the directed graph.

7 . The medium of claim 1 , wherein the graph portion template comprises a plurality of vertex templates and a plurality of directed graph edges associating the plurality of vertex templates with each other.

8 . The medium of claim 1 , wherein the plurality of computing devices is a first plurality of computing devices, the operations further comprising:

selecting a subset of nodes from the plurality of computing devices, where each respective node of the subset of nodes corresponds with a respective computing device of the plurality of computing devices, wherein the subset of nodes is fewer in number than the total number of nodes of the plurality of computing devices; and

generating, with at least one the subset of nodes, a block of a sequence of blocks stored in the first persistent storage.

9 . The medium of claim 1 , wherein the first computing device validates an update to program state based on a consensus voting process involving other computing devices in the plurality of computing devices.

10 . The medium of claim 1 , wherein the directed graph is a first directed graph, the operation further comprising:

determining a predicted directed graph based on the first directed graph; and

storing the predicted directed graph in association with the first directed graph.

11 . The medium of claim 1 , the operations further comprising validating the directed graph at the second computing device based on a signature value provided by the first computing device.

12 . The medium of claim 1 , the operations further comprising storing a third instance of the directed graph in a third persistent storage, wherein the third persistent storage is a persistent storage of a cloud computing server.

13 . The medium of claim 1 , wherein the second persistent storage is a persistent storage of a peer-to-peer data-sharing network comprising a second plurality of computing devices, wherein data stored on a first peer of the second plurality of computing devices is distributed to other peers of the second plurality of computing devices.

14 . The medium of claim 1 , the operations further comprising storing a natural language document in association with the directed graph in the data structure of the second persistent storage.

15 . The medium of claim 1 , the operations comprising steps for serializing, steps for storing, and steps for deserializing the directed graph.

16 . The medium of claim 1 , the operations comprising steps for updating program state of the application.

17 . The medium of claim 1 , the operations further comprising:

generating a plurality of previous versions of the directed graph based on a sequence of blocks stored in the first persistent storage; and

storing the plurality of previous versions in the second persistent storage.

18 . The medium of claim 1 , wherein storing the second instance of the directed graph in the second persistent storage further comprises:

determining an updated vertex of the second instance of the directed graph; and

storing a score change or a set of entities associated with the updated vertex in the data structure of the second persistent storage.

19 . The medium of claim 1 , wherein computing the response value based on the subset of vertices comprises:

determining a set of conditional statements associated with the subset of vertices;

determining a set of scores based on the set of conditional statements; and

determining the response value based on a sum of the set of scores.

20 . A method comprising:

executing, with one or more processors, an instance of an application, wherein:

program state of the instance of the application comprises a set of vertices and a set of directed graph edges,

each vertex of the set of vertices comprises an identifier and a category label of a set of mutually exclusive category labels, and

each of the set of directed graph edges associates a pair of the set of vertices and a direction from a tail vertex of the pair to a head vertex of the pair;

serializing, with one or more processors, the set of vertices in a serialized data format and storing a record comprising the serialized set of vertices in a first persistent storage of a first computing device of a plurality of computing devices communicatively coupled to each other via a network;

distributing, with one or more processors, the serialized set of vertices to a second computing device of the plurality of computing devices;

deserializing, with one or more processors, the serialized set of vertices with the second computing device to generate a second instance of a directed graph, wherein the second instance of the directed graph encodes the set of vertices and the set of directed graph edges in non-serialized data format;

storing, with one or more processors, the second instance of the directed graph in a second persistent storage, wherein the second persistent storage is a local persistent storage of the second computing device;

receiving, with one or more processors, a message encoding a graph portion template, wherein the graph portion template comprises a first vertex template and an edge template, and wherein the first vertex template is associated with a first category label of the set of mutually exclusive category labels, and wherein the edge template specifies an edge direction to or from a vertex matching the first vertex template;

querying, with one or more processors, a data structure of the second persistent storage based on the graph portion template to retrieve a subset of vertices encoded in the second instance of the directed graph;

computing, with one or more processors, a response value based on the subset of vertices; and

sending, with one or more processors, a response comprising the response value from the second computing device to a response destination indicated by the message.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 24, 2020
From: HUNTER, EDWARD
To: DIGITAL ASSET CAPITAL, INC.
Reel/Frame 053869/0784 →