Recursive data traversal model
Abstract
One or more embodiments interpret a configuration graph to efficiently and optimally construct requests and fetch data from a datastore. The values of objects of a requested data type are used to generate additional queries for pre-fetching data from the datastore. Specifically, the values are used to query for and retrieve a corresponding subset of objects of another, related data type. Recursively querying for and retrieving objects of related data types based on already retrieved objects builds a data cache of relevant objects. The cached, relevant objects may be useful in subsequent queries that are likely to follow the initial query.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . One or more non-transitory machine-readable media storing instructions which, when executed by one or more processors, cause performance of operations comprising:
receiving, by a client application, from a datastore, a first object type definition corresponding to a first object type, the first object type definition defining a first set of data fields for the first object type; generating, by the client application, a first object of the first object type based on the first object type definition; receiving, by the client application, from the datastore, an update to the first object type definition, the update comprising a second object type definition, the second object type definition defining a second set of data fields different than the first set of data fields; and generating, by the client application, a second object of a second type based on (a) the second object type definition and (b) the first object of the first object type.
2 . The one or more non-transitory machine-readable media of claim 1 , wherein generating the second object comprises:
identifying a particular field, of the second set of data fields of the second object, that does not correspond to any field in the first set of data fields; identifying a value for the particular field of the second set of data fields of the second object; and storing the value in association with the particular field of the second set of data fields of the second object.
3 . The one or more non-transitory machine-readable media of claim 2 , wherein identifying the value comprises identifying a default value or a null value.
4 . The one or more non-transitory machine-readable media of claim 1 , wherein generating the second object comprises:
identifying a particular field, of the first set of data fields, that does not correspond to any field in the second set of data fields; and generating the second object by transferring values of the first object to the second object without transferring a value for the particular field in the first object.
5 . The one or more non-transitory machine-readable media of claim 1 , wherein the first object and the second object are used to control functionality of the client application.
6 . The one or more non-transitory machine-readable media of claim 1 , wherein the second object type definition specifies:
at least one first data field, among the second set of data fields, capable of being changed by the client application; and at least one second data field, among the second set of data fields, which may not be changed by the client application.
7 . The one or more non-transitory machine-readable media of claim 1 , wherein the instructions further cause:
receiving, by the client application, from the datastore, metadata including a first metadata module defining a first sub-type of the second object type, wherein the first sub-type of the second object type includes a first sub-set of data fields from among the second set of data fields; creating, by the client application, a third object of the first sub-type; and fetching, by the client application, from the datastore, data values for the first sub-set of data fields.
8 . The one or more non-transitory machine-readable media of claim 7 , wherein the instructions further cause:
receiving, by the client application, a request for a value of a particular data field that is not among the first sub-set of data fields; searching, by the client application, the metadata to identify a second metadata module defining a second sub-type of the second object type, the second sub-type including the particular data field; creating, by the client application, a fourth object of the second sub-type; and fetching, by the client application, from the datastore, data values for the fourth object.
9 . The one or more non-transitory machine-readable media of claim 7 , wherein the instructions further cause:
receiving, by the client application, a request to create a new field in the second object; based on determining that the new field is: (a) not found in any object type stored in the datastore, and (b) not defined by the metadata maintained by the client application:
updating, by the datastore, the second object type to include the new field; and
updating, by the client application, the metadata to include the new field.
10 . A method, comprising:
receiving, by a client application, from a datastore, a first object type definition corresponding to a first object type, the first object type definition defining a first set of data fields for the first object type; generating, by the client application, a first object of the first object type based on the first object type definition; receiving, by the client application, from the datastore, an update to the first object type definition, the update comprising a second object type definition, the second object type definition defining a second set of data fields different than the first set of data fields; and generating, by the client application, a second object of a second type based on (a) the second object type definition and (b) the first object of the first object type.
11 . The method of claim 10 , wherein generating the second object comprises:
identifying a particular field, of the second set of data fields of the second object, that does not correspond to any field in the first set of data fields; identifying a value for the particular field of the second set of data fields of the second object; and storing the value in association with the particular field of the second set of data fields of the second object.
12 . The method of claim 11 , wherein identifying the value comprises identifying a default value or a null value.
13 . The method of claim 10 , wherein generating the second object comprises:
identifying a particular field, of the first set of data fields, that does not correspond to any field in the second set of data fields; and generating the second object by transferring values of the first object to the second object without transferring a value for the particular field in the first object.
14 . The method of claim 10 , wherein the first object and the second object are used to control functionality of the client application.
15 . The method of claim 10 , wherein the second object type definition specifies:
at least one first data field, among the second set of data fields, capable of being changed by the client application; and at least one second data field, among the second set of data fields, which may not be changed by the client application.
16 . The method of claim 10 , further comprising:
receiving, by the client application, from the datastore, metadata including a first metadata module defining a first sub-type of the second object type, wherein the first sub-type of the second object type includes a first sub-set of data fields from among the second set of data fields; creating, by the client application, a third object of the first sub-type; and fetching, by the client application, from the datastore, data values for the first sub-set of data fields.
17 . The method of claim 16 , further comprising:
receiving, by the client application, a request for a value of a particular data field that is not among the first sub-set of data fields; searching, by the client application, the metadata to identify a second metadata module defining a second sub-type of the second object type, the second sub-type including the particular data field; creating, by the client application, a fourth object of the second sub-type; and fetching, by the client application, from the datastore, data values for the fourth object.
18 . The method of claim 16 , further comprising:
receiving, by the client application, a request to create a new field in the second object; based on determining that the new field is: (a) not found in any object type stored in the datastore, and (b) not defined by the metadata maintained by the client application:
updating, by the datastore, the second object type to include the new field; and
updating, by the client application, the metadata to include the new field.
19 . A system, comprising:
one or more processors; and memory storing instructions that, when executed by the one or more processors, cause the system to perform: receiving, by a client application, from a datastore, a first object type definition corresponding to a first object type, the first object type definition defining a first set of data fields for the first object type; generating, by the client application, a first object of the first object type based on the first object type definition; receiving, by the client application, from the datastore, an update to the first object type definition, the update comprising a second object type definition, the second object type definition defining a second set of data fields different than the first set of data fields; and generating, by the client application, a second object of a second type based on (a) the second object type definition and (b) the first object of the first object type.
20 . The system of claim 19 , wherein generating the second object comprises:
identifying a particular field, of the second set of data fields of the second object, that does not correspond to any field in the first set of data fields; identifying a value for the particular field of the second set of data fields of the second object; and storing the value in association with the particular field of the second set of data fields of the second object.Join the waitlist — get patent alerts
Track US2021382901A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.