Early commit timestamp computer database protocol
First Claim
1. A method for computer database construction and use comprising the steps of:
- organizing data items into atomic data sets;
breaking down transactions containing a plurality of statements operating on said data into projections having statements which operate on only one said atomic data set;
issuing commands by said projections, said commands comprising read commands, write commands, and projection delimiting commands;
allowing multiple transactions and projections to access said atomic data set;
generating a timestamp for a projection upon initial issuance of either a read command or a write command to the atomic data set;
maintaining a read timestamp for each data item in said atomic data set which indicates the timestamp of the projection which last issued a read command for the data item;
maintaining a write timestamp for each data item in said atomic data set which indicates the timestamp of the projection which last issued a write command to the data item;
read comparing said issuing projection timestamp with said maintained write timestamp on issuance of a read command, said read comparing step indicating a conflict with an other projection if said issued projection timestamp is earlier in time than said maintained write timestamp;
write comparing said issuing projection timestamp with said maintained write timestamp and said maintained read timestamp on issuance of a write command, said write comparing step indicating a conflict with an other projection if said issued projection timestamp is earlier in time than one of said maintained write timestamp and said maintained read timestamp;
executing said issued command when said read comparing step and write comparing step both indicate that there is no conflict between said issuing projection and said other projection;
updating said maintained read timestamp for said data item in said atomic data set after execution of said issued read command affecting said data item;
updating said maintained write timestamp for said data item in said atomic data set after execution of said issued write command affecting said data item;
aborting said issuing projection when one of said read comparing step and write comparing step indicates that there is a conflict between Said issuing projection and said other projection;
restarting said aborted projection after commit of said other projection, said restarted projection receiving a new timestamp;
committing said projection upon issuance of a projection delimiting command; and
recording all changes to said atomic data set in a stable store until commit of said projection.
1 Assignment
0 Petitions
Accused Products
Abstract
A computer database method wherein the data is organized into atomic data sets and transactions are separated into projections which operate on only one atomic data set. Multiple transactions can thereby access the same atomic data set using a plurality of projections. A projection timestamp is generated by the system initial access to the atomic data set by the projection. Read and write timestamps are maintained separately by the atomic data set. Upon each read and write command, the issuing projection timestamp is compared against the appropriate atomic data set read or write timestamp. The operation succeeds if the compared timestamps do not indicate a conflict. Upon failure the projection is restarted with a new timestamp.
-
Citations
3 Claims
-
1. A method for computer database construction and use comprising the steps of:
-
organizing data items into atomic data sets; breaking down transactions containing a plurality of statements operating on said data into projections having statements which operate on only one said atomic data set; issuing commands by said projections, said commands comprising read commands, write commands, and projection delimiting commands; allowing multiple transactions and projections to access said atomic data set; generating a timestamp for a projection upon initial issuance of either a read command or a write command to the atomic data set; maintaining a read timestamp for each data item in said atomic data set which indicates the timestamp of the projection which last issued a read command for the data item; maintaining a write timestamp for each data item in said atomic data set which indicates the timestamp of the projection which last issued a write command to the data item; read comparing said issuing projection timestamp with said maintained write timestamp on issuance of a read command, said read comparing step indicating a conflict with an other projection if said issued projection timestamp is earlier in time than said maintained write timestamp; write comparing said issuing projection timestamp with said maintained write timestamp and said maintained read timestamp on issuance of a write command, said write comparing step indicating a conflict with an other projection if said issued projection timestamp is earlier in time than one of said maintained write timestamp and said maintained read timestamp; executing said issued command when said read comparing step and write comparing step both indicate that there is no conflict between said issuing projection and said other projection; updating said maintained read timestamp for said data item in said atomic data set after execution of said issued read command affecting said data item; updating said maintained write timestamp for said data item in said atomic data set after execution of said issued write command affecting said data item; aborting said issuing projection when one of said read comparing step and write comparing step indicates that there is a conflict between Said issuing projection and said other projection; restarting said aborted projection after commit of said other projection, said restarted projection receiving a new timestamp; committing said projection upon issuance of a projection delimiting command; and recording all changes to said atomic data set in a stable store until commit of said projection. - View Dependent Claims (2, 3)
-
Specification