Semantic transactions in online applications
First Claim
Patent Images
1. A computer implemented method for enabling distributed transaction processing comprising the steps of:
- (a) executing, at a client, a transaction against a local copy of objects;
the transaction occurring in a multiplayer online game;
annotating, at the client, the transaction with semantics, the semantics comprising a read set, the read set being a subset of an application state that determines execution characteristics of the transaction, and a write set, the write set being a subset of the application state that can be affected by the transaction;
(b) generating, at the client, tentative copies of the objects if necessary;
(c) committing or aborting, at the client, the generated copies if necessary;
(d) sending to a server the transaction, the transaction being timestamped at the server and integrated to a global log according to the transaction timestamp;
(e) receiving, at the client, a projection of the global log;
(f) validating, at the client, the transaction with respect to the projection; and
(g) installing, at the client, any updates to the transaction into a local replica if said step of validating is successful;
wherein application logic is located at the client; and
wherein steps (a) through (g) are performed by one or more processors executing computer readable code embodied in non-transitory computer usable media.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method for enabling distributed transaction processing by moving all application logic away from the server and into the client by using an optimistic concurrency control framework with client-side transaction validation including virtual full replication under a transactional programming model with full Atomicity, Consistency, Isolation, and Durability (ACID) properties.
-
Citations
18 Claims
-
1. A computer implemented method for enabling distributed transaction processing comprising the steps of:
-
(a) executing, at a client, a transaction against a local copy of objects;
the transaction occurring in a multiplayer online game;annotating, at the client, the transaction with semantics, the semantics comprising a read set, the read set being a subset of an application state that determines execution characteristics of the transaction, and a write set, the write set being a subset of the application state that can be affected by the transaction; (b) generating, at the client, tentative copies of the objects if necessary; (c) committing or aborting, at the client, the generated copies if necessary; (d) sending to a server the transaction, the transaction being timestamped at the server and integrated to a global log according to the transaction timestamp; (e) receiving, at the client, a projection of the global log; (f) validating, at the client, the transaction with respect to the projection; and (g) installing, at the client, any updates to the transaction into a local replica if said step of validating is successful; wherein application logic is located at the client; and wherein steps (a) through (g) are performed by one or more processors executing computer readable code embodied in non-transitory computer usable media. - View Dependent Claims (2, 3, 6, 7, 8, 16, 17, 18)
-
-
4. A computer enabled method for enabling distributed transaction processing comprising the steps of:
-
(a) executing, at a client, a transaction against a local copy of objects;
the transaction occurring in a multiplayer online game;(b) generating, at the client, tentative copies of the objects if necessary; (c) committing or aborting, at the client, the generated copies if necessary; (d) sending to a server the transaction;
the transaction being timestamped at the server and integrated to a global log according to the transaction timestamp;(e) receiving, at the client, a projection of the global log at the client; (f) validating, at the client, the transaction with respect to the projection; and (g) installing, at the client, any updates to the transaction into a local replica if said step of validating is successful; wherein application logic is located at the client; and
wherein the client comprises a plurality of the clients; andwherein said step of validating comprises the steps of; (j) locally certifying a read rj(xi) of Tj if and only if Ti was issued by the same one of the plurality of clients as Tj and if and only if Ti has issued a commit request, or Ti has committed; (k) locally certifying a write wj(xj) of Tj if and only if (I) no write wk(xk) with k>
j has already been locally certified, and (II) no reads rk(xi) where k>
j have been locally certified;(l) locally certifying the transaction if it was issued by the one of the plurality of clients performing said step of validating, and said steps of locally certifying the read and locally certifying the write succeed, and a commit request is encountered; and (m) locally aborting the transaction if one of said steps of locally certifying the read or locally certifying the write is not successful, or the read or the write is aborted, wherein i, j, and k are times, rj(xi) is defined as a read at time j of object x committed at time i, Ti/Tj are transactions at times i and j, and wj(xj) is defined as a write at time j of object x committed at time j;
wherein steps (a) through (g) and (j) through (m) are performed by one or more processors executing computer readable code embodied in non-transitory computer usable media. - View Dependent Claims (5)
-
-
9. A system for enabling distributed transaction processing comprising:
-
one or more clients, each client comprising; a tentative execution processor machine component configured for executing a transaction against local copies of objects;
the transaction occurring in a multiplayer online game;annotating the transaction with semantics, the semantics comprising a read set, the read set being a subset of an application state that determines execution characteristics of the transaction, and a write set, the write set being a subset of the application state that can be affected by the transaction; and generating tentative copies of said objects if necessary; an integration processor machine component configured for committing or aborting said tentative copies if necessary; sending to a server said transaction a validation processor machine component configured for validating, at said client, said transaction with respect to said projection and an installation processor machine component configured for installing any updates to said transaction into a local replica if said transaction is validated; and a server comprising another integration processor machine component configured for timestamping said transaction; integrating, at said server, the timestamped transaction to a global log according to the transaction timestamp; and sending a projection of said global log to said one or more clients; wherein application logic is located at each one of said one or more clients; and wherein the tentative execution processor, the integration processor, the validation processor and the installation processor are configured for executing recited functions by control information stored in non-transitory computer readable media. - View Dependent Claims (10, 13, 14, 15)
-
-
11. A system for enabling distributed transaction processing comprising:
-
a tentative execution processor machine component configured for executing, at a client, a transaction against local copies of objects;
the transaction occurring in a multiplayer online game; andgenerating tentative copies of said objects if necessary; an integration processor machine component configured for committing or aborting said tentative copies if necessary; sending to a server said transaction; timestamping said transaction; integrating, at said server, the timestamped transaction to a global log according to the transaction timestamp; and sending a projection of said global log to said client; a validation processor machine component configured for validating, at said client, said transaction with respect to said projection; and an installation processor machine component configured for installing any updates to said transaction into a local replica if said transaction is validated; wherein said client includes a plurality of said clients; wherein the tentative execution processor, the integration processor, the validation processor machine component and the installation processor machine component are configured for executing computer readable code embodied in non-transitory computer usable media, and wherein said validation processor machine component is further configured to; (j) locally certifying a read rj(xi) of Tj if and only if Ti was issued by the same one of said plurality of said clients as Tj and if and only if Ti has issued a commit request, or Ti has committed; (k) locally certifying a write wj(xj) of Tj if and only if (I) no write wk(xk) with k>
j has already been locally certified, and (II) no reads rk(xi) where k>
j have been locally certified;(l) locally certifying said transaction if it was issued by the one of the plurality of clients performing said step of validating, and said steps of locally certifying said read and locally certifying said write succeed, and a commit request is encountered; and (m) locally aborting said transaction if one of said steps of locally certifying said read or locally certifying said write is not successful, or said read or said write is aborted, wherein i, j, and k are times, rj(xi) is defined as said read at time j of object x committed at time i, Ti/Tj are transactions at times i and j, and wj(xj) is defined as said write at time j of object x committed at time j. - View Dependent Claims (12)
-
Specification