Version Control
Version control provides the following extensions to concurrency control:
- The existence of multiple versions of objects eliminates the need for
write-write synchronization since each write operation occurs in the
context of one version and thus cannot conflict with other operations.
- A version control mechanism preserves the object identity of
different versions of collaborative artifacts.
- A version control mechanism allows several long updating sessions on
the same object to run in parallel with the restriction that different
branches (in the version history tree)
of the object are used. These branches must be merged at some
point in time to reflect the updates performed by all users.
- The integrity of individual contributions to an object is maintained
since the complete history of the object is recorded by the version control
mechanism.
The biggest problem in using version control to allow write-write
conflicts is that not all simultaneous updates to nodes can be merged
later on in a deterministic way.