This dissertation presents nested objects, a new model of concurrency that considers levels of data abstraction. Shared nested objects are instances of abstract data types that are implemented by other, lower level, shared nested objects. Nested objects are more general than transactions. Traditional one level read-write transaction models and atomic object models are special cases of the nested object model.
Nested objects allow two novel types of computations that are usually considered nonserializable and thus incorrect. Externally serializable computations leave top level objects in states that could be produced by some serial execution of the computations. However, lower level objects may be left in states that could never be produced by serial executions of the computations.
Semantically verifiable nested object computations are truly nonserializable. Objects at all levels can be left in states that no serial execution of the computations could produce. Since operation semantics are visible at all levels, the correctness of nonserializable computations can be argued. Semantically verifiable, nonserializable computations are achieved by weakening conflict specifications.
A practical nested object scheduling algorithm is presented. An experimental implementation demonstrates that maintaining additional semantic information is manageable and beneficial. The algorithm provides a performance improvement over two-phase locking for a benchmark program.
Nested objects are an attractive paradigm for modeling concurrent activities. Nested objects retain the desirable specification properties of transactions but are more general; endless computations can be modeled and long lived computations can execute efficiently. Traditional program verification techniques can be used to show the correctness of nested object specifications. The modeling capabilities of nested objects are illustrated with a solution to the Dining Philosophers' problem.
Cited By
- Weikum G (1991). Principles and realization strategies of multilevel transaction management, ACM Transactions on Database Systems (TODS), 16:1, (132-180), Online publication date: 1-Mar-1991.
- Martin B (1988). Concurrent programming vs. concurrency control: shared events or shared data, ACM SIGPLAN Notices, 24:4, (142-144), Online publication date: 1-Apr-1989.
- Martin B Concurrent programming vs. concurrency control: shared events or shared data Proceedings of the 1988 ACM SIGPLAN workshop on Object-based concurrent programming, (142-144)
Recommendations
Correctness of concurrent executions of closed nested transactions in transactional memory systems
A generally agreed upon requirement for correctness of concurrent executions in transactional memory is that all transactions including the aborted ones read consistent values. Opacity is a commonly accepted correctness criterion that satisfies the ...
Transactions for concurrent object-oriented programming systems
OOPSLA/ECOOP '88: Proceedings of the 1988 ACM SIGPLAN workshop on Object-based concurrent programmingConcurrent object-oriented programming systems (COOPS) require support for fault tolerance, concurrency control, consistent commitment of changes and program-initiated rollback. It is sometimes suggested that the classical transaction processing model ...
Transactions for concurrent object-oriented programming systems
Proceedings of the ACM SIGPLAN Workshop on Object-Based Concurrent ProgrammingConcurrent object-oriented programming systems (COOPS) require support for fault tolerance, concurrency control, consistent commitment of changes and program-initiated rollback. It is sometimes suggested that the classical transaction processing model ...