A multiversion concurrent object model for distributed and multiuser environments - Hirotsu, T.; Fujii, H.; Tokoro, M. (Proceedings of 15th International Conference on Distributed Computing Systems, 2002)
In this paper, we describe the design and implementation of an extended concurrent object model for distributed and multiuser systems called the Multiversion Concurrent Object (MCO). In this model, an object executes multiple methods concurrently within itself, but is handled as a concurrent object. Each MCO makes a copy of its own state, called a version, for executing a method that is not interleaved with other similar copies during execution. The results of concurrent execution are merged at termination of each method. The MCO increases programmability, because it does not require any synchronization statements inside its methods. Using this model for shared objects, we can construct a system in which each user can work freely without being negatively impacted by others. Finally, a prototype implementation of MCO and performance evaluations are presented.