摘要:
A collaboration system using peer-to-multi-peer distribution of messages representing changes to a shared workspace. Each peer determines a distribution mechanism for messages to each of the target peers sharing the workspace. The selected distribution mechanism may depend on capabilities of a home relay associated with a peer initiating a message. Further, messages to subsets of the target peers sharing the workspace may be distributed using a session for each subset on which each message is sent only one time. The subset of target peers associated with some of the sessions may be selected so that target peers for which communication attempts have failed are grouped in the same session. In some scenarios, the initiating peer may provide multiple routing paths for target peers in a session and the home relay server may appropriately forward the message to the target peers, using one of the routing paths.
摘要:
An in-memory storage manager represents XML-compliant documents as a collection of objects in memory. The storage manager allows real-time access to the objects by separate processes operating in different contexts. The data in the objects is stored in memory local to each process and the local memories are synchronized by means of a distributed memory system that stores the data in the same data region, but maps the data region to the address space of each process. Data corruption in the data region is prevented by a locking mechanism that prevents the processes from simultaneously modifying same data.
摘要:
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.
摘要:
A collaboration system using peer-to-multi-peer distribution of messages representing changes to a shared workspace. Each peer determines a distribution mechanism for messages to each of the target peers sharing the workspace. The selected distribution mechanism may depend on capabilities of a home relay associated with a peer initiating a message. Further, messages to subsets of the target peers sharing the workspace may be distributed using a session for each subset on which each message is sent only one time. The subset of target peers associated with some of the sessions may be selected so that target peers for which communication attempts have failed are grouped in the same session. In some scenarios, the initiating peer may provide multiple routing paths for target peers in a session and the home relay server may appropriately forward the message to the target peers, using one of the routing paths.
摘要:
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.