GRAPH STORE
First Claim
Patent Images
1. A computer implemented method for establishing a primitive-based graph database, comprising the steps of:
- a processor configured to providing a plurality of primitives that are identified by globally unique identifiers (GUIDs) which consist of a database id and a primitive id;
wherein, once written, primitives are read only; and
wherein said primitives collectively establish a log-structured or append-only database;
said processor configured for assigning primitive ids to primitives in said database sequentially as said primitives are written; and
said processor configured for providing a plurality of fields for each primitive, wherein any or all of said fields may be null, said fields comprising;
a left field comprising a guid representing a first end of a relationship arrow;
a right field comprising a guid representing a second end of said relationship arrow;
a type field comprising a guid that is used in conjunction with said left field and right field to specify a type of a relationship;
a scope field comprising a guid that identifies a creator of a given primitive; and
a value field comprising a string that carries any of literal values, strings, numbers, and dates;
said processor configured for responding to user interaction with said database to establish one or more primitives that comprise either nodes without a left field or a right field, or links which always have a left field and which can also have a right field;
wherein nodes represent identities and carry no other data; and
wherein links represent properties of an identity, wherein said links comprise either a literal value or a relationship;
wherein a node and its associated links comprise an object with fields (properties) described by one or more types;
said processor configured for modifying a primitive to change said primitive'"'"'s value by writing a new primitive carrying a modification and marking said new primitives as a replacement for the primitive that it is replacing;
said processor configured for deleting a primitive by writing a new primitive which marks the primitive to be deleted as deleted; and
said processor configured for removing deleted or versioned primitives during query execution.
5 Assignments
0 Petitions
Accused Products
Abstract
A new database design is implemented in which everything in the database is modeled with primitives, including the links and nodes for a graph tuple store. A query syntax provides a nested tree of constraints with a single global schema. Various optimization techniques for queries and replication techniques are also described.
133 Citations
14 Claims
-
1. A computer implemented method for establishing a primitive-based graph database, comprising the steps of:
-
a processor configured to providing a plurality of primitives that are identified by globally unique identifiers (GUIDs) which consist of a database id and a primitive id;
wherein, once written, primitives are read only; and
wherein said primitives collectively establish a log-structured or append-only database;said processor configured for assigning primitive ids to primitives in said database sequentially as said primitives are written; and said processor configured for providing a plurality of fields for each primitive, wherein any or all of said fields may be null, said fields comprising; a left field comprising a guid representing a first end of a relationship arrow; a right field comprising a guid representing a second end of said relationship arrow; a type field comprising a guid that is used in conjunction with said left field and right field to specify a type of a relationship; a scope field comprising a guid that identifies a creator of a given primitive; and a value field comprising a string that carries any of literal values, strings, numbers, and dates; said processor configured for responding to user interaction with said database to establish one or more primitives that comprise either nodes without a left field or a right field, or links which always have a left field and which can also have a right field;
wherein nodes represent identities and carry no other data; and
wherein links represent properties of an identity, wherein said links comprise either a literal value or a relationship;
wherein a node and its associated links comprise an object with fields (properties) described by one or more types;said processor configured for modifying a primitive to change said primitive'"'"'s value by writing a new primitive carrying a modification and marking said new primitives as a replacement for the primitive that it is replacing; said processor configured for deleting a primitive by writing a new primitive which marks the primitive to be deleted as deleted; and said processor configured for removing deleted or versioned primitives during query execution. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
Specification