Optimistic commit processing for an offline document repository
First Claim
1. A revision control system, comprising:
- one or more processors; and
one or more memories, the one or more memories having stored thereon instructions that when executed by the one or more processors implement;
a plurality of document repositories that receive revision requests that comprise a change description and apply the revision requests using the change description;
a submission queue that stores revision requests awaiting processing by the document repositories;
a document repository state cache that stores summary information about the document repositories such that a first summary information is about a first document repository and a second summary information is about a second document repository; and
a submission endpoint configured toreceive a first revision request from a first client application and a second revision request from a second client application,wherein the first revision request comprises a first repository identifier identifying the first document repository, a first version summary information describing an expectation of the first client application of contents of the first document repository prior to the first revision request, and a first change description,wherein the second revision request comprises a second repository identifier identifying the second document repository, a second version summary information describing an expectation of the second client application of contents of the second document repository prior to the second revision request, and a second change description,determine that the first document repository and the second document repository are in an offline state,determine that the first summary information stored in the document repository state cache matches within a specified range the first version summary information received with the first revision request,determine that the second summary information stored in the document repository state cache does not match within the specified range the second version summary information received with the second revision request,at least partly in response to the first summary information matching within the specified range the first version summary information, (i) en-queue the first revision request in a submission queue and ii.) transmit a first acceptance message to the first client application, without activating the first document repository, andat least partly in response to the second summary information not matching within the specified range the second version summary information, (i) activate the second document repository to process the second revision request and (ii) transmit a second acceptance message to the second client application, without placing the second revision request in the submission queue.
1 Assignment
0 Petitions
Accused Products
Abstract
A revision request is received at a revision control system that includes a repository identifier, version summary information, and a change description. In response to receiving the revision request, a determination is made as to whether a document repository identified by the repository identifier is active or offline. If the document repository is offline, the version summary information is utilized to determine whether the revision request is probably consistent with current contents of the document repository. If the revision request is probably consistent with the current contents of the document repository, the revision request is placed into a queue, an acceptance message is transmitted in response to the revision request, the document repository is placed into an active state, and the revision request is dequeued and applied to the document repository using the change description.
-
Citations
19 Claims
-
1. A revision control system, comprising:
-
one or more processors; and one or more memories, the one or more memories having stored thereon instructions that when executed by the one or more processors implement; a plurality of document repositories that receive revision requests that comprise a change description and apply the revision requests using the change description; a submission queue that stores revision requests awaiting processing by the document repositories; a document repository state cache that stores summary information about the document repositories such that a first summary information is about a first document repository and a second summary information is about a second document repository; and a submission endpoint configured to receive a first revision request from a first client application and a second revision request from a second client application, wherein the first revision request comprises a first repository identifier identifying the first document repository, a first version summary information describing an expectation of the first client application of contents of the first document repository prior to the first revision request, and a first change description, wherein the second revision request comprises a second repository identifier identifying the second document repository, a second version summary information describing an expectation of the second client application of contents of the second document repository prior to the second revision request, and a second change description, determine that the first document repository and the second document repository are in an offline state, determine that the first summary information stored in the document repository state cache matches within a specified range the first version summary information received with the first revision request, determine that the second summary information stored in the document repository state cache does not match within the specified range the second version summary information received with the second revision request, at least partly in response to the first summary information matching within the specified range the first version summary information, (i) en-queue the first revision request in a submission queue and ii.) transmit a first acceptance message to the first client application, without activating the first document repository, and at least partly in response to the second summary information not matching within the specified range the second version summary information, (i) activate the second document repository to process the second revision request and (ii) transmit a second acceptance message to the second client application, without placing the second revision request in the submission queue. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A non-transitory computer-readable storage medium having computer-executable instructions stored thereupon which, when executed by a computer, cause the computer to:
-
receive a first revision request comprising a first repository identifier, a first version summary information describing an expected contents of a first document repository prior to the first revision request, and a first change description; receive a second revision request comprising a second repository identifier, a second version summary information describing an expected contents of a second document repository prior to the second revision request, and a second change description; determine that the first document repository identified by the first repository identifier and the second document repository identified by the second repository identifier are offline; compare (i) the first version summary information with current contents of the first document repository and (ii) the second version summary information with current contents of the second document repository; determine that the current contents of the first document repository matches within a specified range the first version summary information received with the first revision request; determine that the current contents of the second document repository does not match within the specified range the second version summary information received with the second revision request; place the first revision request in a submission queue and transmit a first acceptance message, without activating the first document repository; and activate the second document repository to process the second revision request and transmit a second acceptance message, without placing the second revision request in the submission queue. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13)
-
-
14. A computer-implemented method for optimistic commit processing for a document repository, the method comprising performing computer-implemented operations for:
-
receiving a first revision request to revise data in a first document repository that is in an offline state, the first revision request comprising a first version summary information that describes an expected contents of the data requested to be revised; receiving a second revision request to revise data in a second document repository that is in the offline state, the second revision request comprising a second version summary information that describes an expected contents of the data requested to be revised; comparing the first version summary information with current contents of the data in the first document repository; comparing the second version summary information with current contents of the data in the second document repository; at least partly in response to the current contents of the data in the first document repository not matching within the specified range the first version summary information, causing the offline first document repository to be placed into an active state, applying the first revision request to the first document repository once the first document repository has been placed into the active state, and transmitting a first acceptance message; and at least partly in response to the current contents of the data in the second document repository matching within the specified range the second version summary information, placing the second revision request in a submission queue, and transmitting a second acceptance message, without activating the second document repository. - View Dependent Claims (15, 16, 17, 18, 19)
-
Specification