Method and apparatus for maintaining consistency of a shared space across multiple endpoints in a peer-to-peer collaborative computer system
First Claim
1. Apparatus for maintaining consistency of a shared space across multiple endpoints in a collaborative computer system wherein each endpoint has a local data copy and endpoints transmit data change commands to each other in order to update the local data copies, the apparatus comprising:
- a first tool in one endpoint that is responsive to user actions at the endpoint for creating a first delta container to transmit data change commands to other endpoints and for adding data change commands to the first delta container;
a second tool in the one endpoint that is called by the first tool to add data change commands to the first delta container;
a nesting component in the second tool for creating a second delta container, adding the second delta container to the first delta container and adding data change commands to the second delta container;
a data change engine for executing the data change commands in the first delta container and the data change commands in the second delta container and a dynamics manager for adding the data change commands in the second delta container and undo information corresponding to the data change commands in the second delta container to the beginning of the first delta container.
2 Assignments
0 Petitions
Accused Products
Abstract
In a peer-to-peer collaboration system, deltas containing data change commands are organized in a persistent data structure called a delta log. The delta log is organized into blocks, which are the largest division in the delta log. In turn, blocks contain groups, groups contain chains and chains contain deltas. Delta blocks are used to implement priority deltas that are used to limit the collection of data change commands that must be transferred. Within a block the deltas are organized by groups, each of which is a set of deltas organized into chains. The delta group in used to determine which deltas to purge. The chains are ordered by increasing creator ID of the endpoint that created the chain. Organizing the delta log in this fashion allows the log to be “walked” to detect convergence problems. To achieve causality-preservation, each delta has a list of dependencies representing other deltas that must be executed before the current delta can be executed. The dynamics manager uses the ability to do (execute) and undo commands to perform roll back and roll forward operations on deltas in order to achieve convergence.
20 Citations
14 Claims
-
1. Apparatus for maintaining consistency of a shared space across multiple endpoints in a collaborative computer system wherein each endpoint has a local data copy and endpoints transmit data change commands to each other in order to update the local data copies, the apparatus comprising:
-
a first tool in one endpoint that is responsive to user actions at the endpoint for creating a first delta container to transmit data change commands to other endpoints and for adding data change commands to the first delta container; a second tool in the one endpoint that is called by the first tool to add data change commands to the first delta container; a nesting component in the second tool for creating a second delta container, adding the second delta container to the first delta container and adding data change commands to the second delta container; a data change engine for executing the data change commands in the first delta container and the data change commands in the second delta container and a dynamics manager for adding the data change commands in the second delta container and undo information corresponding to the data change commands in the second delta container to the beginning of the first delta container. - View Dependent Claims (2, 3, 4)
-
-
5. A method for maintaining consistency of a shared space across multiple endpoints in a collaborative computer system wherein each endpoint has a local data copy and endpoints transmit data change commands to each other in order to update the local data copies, the method comprising:
with at least one processor; (a) using a first tool to create a first delta container in response to user actions at one endpoint to transmit data change commands to other endpoints; (b) using the first tool to add data change commands to the first delta container; (c) calling a second tool in the one endpoint with the first tool to add data change commands to the first delta container; (d) creating a second delta container with the second tool; (e) using the second tool to add the second delta container to the first delta container and to add data change commands to the second delta container; and (f) executing the data change commands in the second delta container and the data change commands in the first delta container, wherein the data change commands in the second delta container are executed before the data change commands in the first container. - View Dependent Claims (6, 7, 8, 9)
-
10. A computer-readable storage apparatus that contains instructions which, when executed by a processor, cause the processor to perform a method, the method comprising:
-
(a) using a first tool to create a first delta container in response to user actions at one endpoint to transmit data change commands to other endpoints; (b) using the first tool to add data change commands to the first delta container; (c) calling a second tool in the one endpoint with the first tool to add data change commands to the first delta container; (d) creating a second delta container with the second tool; (e) using the second tool to add the second delta container to the first delta container and to add data change commands to the second delta container; and (f) executing the data change commands in the second delta container before execution of the data change commands in the first delta container. - View Dependent Claims (11, 12, 13, 14)
-
Specification