Conflict resolution in a peer to peer network
First Claim
1. An apparatus comprising:
- a plurality of nodes interconnected as peers in a peer-to-peer network, wherein each peer has equivalent capabilities and responsibilities, and wherein at least some of the plurality of nodes are configured to update an object, thereby generating a plurality of versions of the object;
wherein any of the plurality of nodes is configured to detect a conflict between content of a first version of the plurality of versions and content of a second version of the plurality of versions;
wherein any of the plurality of nodes is configured to provide an indication of a resolution of the conflict to other ones of the plurality of nodes; and
wherein the other ones of the plurality of nodes are configured not to raise the conflict again responsive to the indication of the resolution;
wherein each of the plurality of nodes that generates one of the plurality of versions is configured to locally generate a version identifier corresponding to that one of the plurality of versions, wherein the plurality of nodes is configured to detect the conflict using the version identifiers;
wherein each version of the plurality of versions is specified via a version descriptor comprising the version identifier generated for that version and a parent-version identifier identifying a parent version of the object from which that version is derived; and
wherein a version tree of the object is traceable via the parent version identifiers in the version descriptors for each version of the object, and wherein a first node of the plurality of nodes has the first version as a current version indicated by a first version identifier in the first node, and wherein the first node is configured to detect the conflict by tracing the version tree of the second version responsive to receiving a second version identifier corresponding to the second version in a second version descriptor identifying the second version.
9 Assignments
0 Petitions
Accused Products
Abstract
An apparatus comprises a plurality of nodes interconnected as peers in a peer-to-peer network. At least some nodes are configured to update an object, thereby generating a plurality of versions of the object. Any of the plurality of nodes is configured to detect a conflict between a first version and a second version of the plurality of versions, and any of the plurality of nodes is configured to provide an indication of a resolution of the conflict to other ones of the plurality of nodes. Each version may be identified by a version descriptor that includes a version identifier (ID) and a parent version ID. If the version is the result of a conflict resolution, the version descriptor may also include a resolved version ID identifying the losing version. The resolved version ID may be used to prevent the raising of the same conflict after it has been resolved.
125 Citations
43 Claims
-
1. An apparatus comprising:
-
a plurality of nodes interconnected as peers in a peer-to-peer network, wherein each peer has equivalent capabilities and responsibilities, and wherein at least some of the plurality of nodes are configured to update an object, thereby generating a plurality of versions of the object; wherein any of the plurality of nodes is configured to detect a conflict between content of a first version of the plurality of versions and content of a second version of the plurality of versions; wherein any of the plurality of nodes is configured to provide an indication of a resolution of the conflict to other ones of the plurality of nodes; and wherein the other ones of the plurality of nodes are configured not to raise the conflict again responsive to the indication of the resolution; wherein each of the plurality of nodes that generates one of the plurality of versions is configured to locally generate a version identifier corresponding to that one of the plurality of versions, wherein the plurality of nodes is configured to detect the conflict using the version identifiers; wherein each version of the plurality of versions is specified via a version descriptor comprising the version identifier generated for that version and a parent-version identifier identifying a parent version of the object from which that version is derived; and wherein a version tree of the object is traceable via the parent version identifiers in the version descriptors for each version of the object, and wherein a first node of the plurality of nodes has the first version as a current version indicated by a first version identifier in the first node, and wherein the first node is configured to detect the conflict by tracing the version tree of the second version responsive to receiving a second version identifier corresponding to the second version in a second version descriptor identifying the second version. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. An apparatus comprising:
-
a plurality of nodes interconnected as peers in a peer-to-peer network, wherein at least some of the plurality of nodes are configured to update an object, thereby generating a plurality of versions of the object; wherein each of the plurality of nodes that generates a respective one of the plurality of versions is configured to locally generate a version identifier corresponding to the respective one of the plurality of versions; wherein the plurality of nodes are configured to detect conflicting updates in the plurality of versions responsive to the version identifiers corresponding to the conflicting updates; wherein each version of the plurality of versions is specified via a version descriptor comprising the version identifier generated for that version and a parent version identifier identifying a parent version of the object from which that version is derived; and wherein a version tree of the object is traceable via the parent version identifiers in the version descriptors for each version of the object, and wherein a first node of the plurality of nodes has a first version as a current version indicated by a first version identifier in the first node, and wherein the first node is configured to detect the conflict by tracing the version tree of a second version responsive to receiving a second version identifier corresponding to the second version in a second version descriptor identifying the second version. - View Dependent Claims (12, 13, 14)
-
-
15. In a plurality of nodes interconnected as peers in a peer-to-peer network, wherein each peer has equivalent capabilities and responsibilities, and wherein at least some of the plurality of nodes are configured to update an object, thereby generating a plurality of versions of the object, a method comprising:
-
detecting a conflict between content of a first version of the plurality of versions and content of a second version of the plurality of versions in any of the plurality of nodes; providing an indication of a resolution of the conflict to other ones of the plurality of nodes from any of the plurality of nodes; and not raising the conflict again in the other ones of the plurality of nodes responsive to the indication of the resolution; each of the plurality of nodes that generates one of the plurality of versions locally generating a version identifier corresponding to that one of the plurality of versions, and wherein the detecting is performed using the version identifiers; and wherein each version of the plurality of versions is specified via a version descriptor comprising the version identifier generated for that version and a parent version identifier identifying a parent version of the object from which that version is derived, and wherein a version tree of the object is traceable via the parent version identifiers in the version descriptors for each version of the object, and wherein a first node of the plurality of nodes has the first version as a current version indicated by a first version identifier in the first node, and wherein the detecting the conflict comprises tracing the version tree of the second version by the first node responsive to receiving a second version identifier corresponding to the second version in a second version descriptor identifying the second version. - View Dependent Claims (16, 17, 18)
-
-
19. A computer readable medium comprising one or more instructions which, when executed in a first node of a plurality of nodes coupled as peers in a peer-to-peer network, wherein each peer has equivalent capabilities and responsibilities, a method comprising:
-
detect a conflict between content of a first version of a plurality of versions of an object and content of a second version of the plurality of versions; provides an indication of a resolution of the conflict to other ones of the plurality of nodes; and in response to receiving an indication of the resolution, do not raise the conflict again even if the conflict is detected again; wherein the one or more instructions, when executed, locally generate a version identifier corresponding to one of the plurality of versions that is generated in the first node, wherein detecting a conflict is performed using version identifiers; and wherein each version of the plurality of versions is specified via a version descriptor comprising the version identifier generated for that version and a parent version identifier identifying a parent version of the object from which that version is derived, and wherein a version tree of the object is traceable via the parent version identifiers in the version descriptors for each version of the object, and wherein the first node has the first version as a current version indicated by a first version identifier in the first node, and wherein the one or more instructions, when executed, detect the conflict by tracing the version tree of the second version responsive to receiving a second version identifier corresponding to the second version in a second version descriptor identifying the second version. - View Dependent Claims (20, 21, 22)
-
-
23. An apparatus comprising:
-
a plurality of nodes interconnected as peers in a peer-to-peer network, wherein at least some of the plurality of nodes are configured to update an object, thereby generating a plurality of versions of the object; wherein each of the plurality of nodes that generates a respective one of the plurality of versions is configured to locally generate a version identifier corresponding to the respective one of the plurality of versions; wherein each version of the plurality of versions is specified via a version descriptor comprising the version identifier generated for that version and a parent version identifier identifying a parent version of the object from which that version is derived; and wherein a version tree of the object is traceable via the parent version identifiers in the version descriptors for each version of the object, and wherein a first node of the plurality of nodes that has a first version as a current version indicated by a first version identifier in the first node is configured to detect a conflict by tracing the version tree of a second version responsive to receiving a second version identifier corresponding to the second version in a second version descriptor identifying the second version. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30, 31, 32, 33)
-
-
34. A computer accessible medium storing a plurality of instructions which, when executed on a node that is one of a plurality of nodes interconnected as peers in a peer-to-peer network:
-
locally generates a version identifier corresponding to a locally modified version of the object responsive to a modification of the object; forms a version descriptor comprising the version identifier generated for the locally modified version and a parent version identifier identifying a parent version of the object from which that version is derived; and wherein a version tree of the object is traceable via the parent version identifiers in the version descriptors for each version of the object, and wherein the plurality of instructions, when executed, detect a conflict by tracing the version tree of a second version responsive to receiving a second version identifier corresponding to the second version in a second version descriptor identifying the second version. - View Dependent Claims (35, 36, 37, 38, 39, 40, 41, 42, 43)
-
Specification