Implementation of resilient, atomic data types
ACM Transactions on Programming Languages and Systems (TOPLAS) - Lecture notes in computer science Vol. 174
File servers for network-based distributed systems
ACM Computing Surveys (CSUR)
Integrated concurrency control and recovery mechanisms: design and performance evaluation
ACM Transactions on Database Systems (TODS)
Nested transactions and read-write locking
PODS '87 Proceedings of the sixth ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
Commutativity-Based Concurrency Control for Abstract Data Types
IEEE Transactions on Computers
A model for concurrency in nested transactions systems
Journal of the ACM (JACM)
Local atomicity properties: modular concurrency control for abstract data types
ACM Transactions on Programming Languages and Systems (TOPLAS)
Modular synchronization in multiversion databases: version control and concurrency control
SIGMOD '89 Proceedings of the 1989 ACM SIGMOD international conference on Management of data
Using semantic knowledge of transactions to increase concurrency
ACM Transactions on Database Systems (TODS)
Linguistic support for atomic data types
ACM Transactions on Programming Languages and Systems (TOPLAS)
Using multiversion data for non-interfering execution of write-only transactions
SIGMOD '91 Proceedings of the 1991 ACM SIGMOD international conference on Management of data
Concurrency control in advanced database applications
ACM Computing Surveys (CSUR)
SIGMOD '92 Proceedings of the 1992 ACM SIGMOD international conference on Management of data
An approach to eliminate transaction blocking in locking protocols
PODS '92 Proceedings of the eleventh ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
The generalized tree quorum protocol: an efficient approach for managing replicated data
ACM Transactions on Database Systems (TODS)
Adaptable concurrency control for atomic data types
ACM Transactions on Computer Systems (TOCS)
Context-based synchronization: an approach beyond semantics for concurrency control
PODS '93 Proceedings of the twelfth ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
Impossibility of distributed consensus with one faulty process
Journal of the ACM (JACM)
ANSS '92 Proceedings of the 25th annual symposium on Simulation
Serialization graph algorithms for multiversion concurrency control
Proceedings of the seventh ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
Parallelism in relational data base systems: architectural issues and design approaches
DPDS '90 Proceedings of the second international symposium on Databases in parallel and distributed systems
Multiversion concurrency control—theory and algorithms
ACM Transactions on Database Systems (TODS)
Multilevel atomicity—a new correctness criterion for database concurrency control
ACM Transactions on Database Systems (TODS)
Concurrency control in a system for distributed databases (SDD-1)
ACM Transactions on Database Systems (TODS)
Parallelism and recovery in database systems
ACM Transactions on Database Systems (TODS)
Reliability mechanisms for SDD-1: a system for distributed databases
ACM Transactions on Database Systems (TODS)
Locality in distributed computations
CSC '88 Proceedings of the 1988 ACM sixteenth annual conference on Computer science
Concurrency control by transactions carrying states and preordering universioned entities
CSC '88 Proceedings of the 1988 ACM sixteenth annual conference on Computer science
Distributed version management for read-only actions (extended abstract)
Proceedings of the fourth annual ACM symposium on Principles of distributed computing
Concurrency control for distributed multiversion databases through time intervals
CSC '91 Proceedings of the 19th annual conference on Computer Science
Office Information Systems and Computer Science
ACM Computing Surveys (CSUR)
A Survey of Techniques for Synchronization and Recovery in Decentralized Computer Systems
ACM Computing Surveys (CSUR)
Surveyor's Forum: Recovering an Error
ACM Computing Surveys (CSUR)
Guardians and Actions: Linguistic Support for Robust, Distributed Programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Implementing atomic actions on decentralized data
ACM Transactions on Computer Systems (TOCS)
End-to-end arguments in system design
ACM Transactions on Computer Systems (TOCS)
A comparison of two network-based file servers
Communications of the ACM
Guardians and actions: linguistic support for robust, distributed programs
POPL '82 Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Distributed database concurrency controls using before-values
SIGMOD '81 Proceedings of the 1981 ACM SIGMOD international conference on Management of data
Concurrency control mechanisms and the serializability of concurrent tree algorithms
PODS '84 Proceedings of the 3rd ACM SIGACT-SIGMOD symposium on Principles of database systems
Increasing availability in partitioned database systems
PODS '84 Proceedings of the 3rd ACM SIGACT-SIGMOD symposium on Principles of database systems
Impossibility of distributed consensus with one faulty process
PODS '83 Proceedings of the 2nd ACM SIGACT-SIGMOD symposium on Principles of database systems
Concurrency control for resilient nested transactions
PODS '83 Proceedings of the 2nd ACM SIGACT-SIGMOD symposium on Principles of database systems
Ordered shared locks for real-time databases
The VLDB Journal — The International Journal on Very Large Data Bases
Storage Efficient Replicated Databases
IEEE Transactions on Knowledge and Data Engineering
A Nonblocking Quorum Consensus Protocol for Replicated Data
IEEE Transactions on Parallel and Distributed Systems
IEEE Transactions on Knowledge and Data Engineering
Efficient Execution of Read-Only Transactions in Replicated Multiversion Databases
IEEE Transactions on Knowledge and Data Engineering
A Transaction Mechanism for Engineering Design Databases
VLDB '84 Proceedings of the 10th International Conference on Very Large Data Bases
Transaction scheduling in dynamic composite multidatabase systems
CASCON '95 Proceedings of the 1995 conference of the Centre for Advanced Studies on Collaborative research
Primitives for distributed computing
SOSP '79 Proceedings of the seventh ACM symposium on Operating systems principles
Polyvalues: A tool for implementing atomic updates to distributed data
SOSP '79 Proceedings of the seventh ACM symposium on Operating systems principles
A comparison of two network-based file servers
SOSP '81 Proceedings of the eighth ACM symposium on Operating systems principles
A reliable object-oriented data repository for a distributed computer system
SOSP '81 Proceedings of the eighth ACM symposium on Operating systems principles
The iMAX-432 object filing system
SOSP '81 Proceedings of the eighth ACM symposium on Operating systems principles
The architecture of the Eden system
SOSP '81 Proceedings of the eighth ACM symposium on Operating systems principles
Hints for computer system design
SOSP '83 Proceedings of the ninth ACM symposium on Operating systems principles
The LOCUS distributed operating system
SOSP '83 Proceedings of the ninth ACM symposium on Operating systems principles
A nested transaction mechanism for LOCUS
SOSP '83 Proceedings of the ninth ACM symposium on Operating systems principles
Concurrency control algorithms for multiversion database systems
PODC '82 Proceedings of the first ACM SIGACT-SIGOPS symposium on Principles of distributed computing
Synchronization and recovery of actions
PODC '83 Proceedings of the second annual ACM symposium on Principles of distributed computing
A concurrency control theory for nested transactions (Preliminary Report)
PODC '83 Proceedings of the second annual ACM symposium on Principles of distributed computing
Data-dependent concurrency control and recovery (Extended Abstract)
PODC '83 Proceedings of the second annual ACM symposium on Principles of distributed computing
A simple software environment based on objects and relations
SLIPE '85 Proceedings of the ACM SIGPLAN 85 symposium on Language issues in programming environments
Specification and implementation of resilient, atomic data types
Proceedings of the 1983 ACM SIGPLAN symposium on Programming language issues in software systems
A Framework for Heterogeneous Concurrency Control Policies in Distributed Applications
IWSSD '96 Proceedings of the 8th International Workshop on Software Specification and Design
Composite multidatabase system concurrency control and recovery
CASCON '93 Proceedings of the 1993 conference of the Centre for Advanced Studies on Collaborative research: distributed computing - Volume 2
Data-dependent concurrency control and recovery
ACM SIGOPS Operating Systems Review
Synchronization and recovery of actions
ACM SIGOPS Operating Systems Review
Active transaction approach for collaborative virtual environments
Proceedings of the 2006 ACM international conference on Virtual reality continuum and its applications
Serializable isolation for snapshot databases
ACM Transactions on Database Systems (TODS)
Transactions for distributed wikis on structured overlays
DSOM'07 Proceedings of the Distributed systems: operations and management 18th IFIP/IEEE international conference on Managing virtualization of networks and services
Worlds: controlling the scope of side effects
Proceedings of the 25th European conference on Object-oriented programming
Snake: control flow distributed software transactional memory
SSS'11 Proceedings of the 13th international conference on Stabilization, safety, and security of distributed systems
HotPar'12 Proceedings of the 4th USENIX conference on Hot Topics in Parallelism
Warranties for faster strong consistency
NSDI'14 Proceedings of the 11th USENIX Conference on Networked Systems Design and Implementation
Hi-index | 0.02 |
In this dissertation a new approach to the synchronization of accesses to shared data objects is developed. Traditional approaches to the synchronization problems of shared data accessed by concurrently running computations have relied on mutual exclusion -- the ability of one computation to stop the execution of other computations that might access or change shared data accessed by that computation. Our approach is quite different. We regard an object that is modifiable as a sequence of immutable versions; each version is the state of the object after an update is made to the object. Synchronization can then be treated as a mechanism for naming versions to be read and for defining where in the sequence of versions the version resulting from some update should be placed. In systems based on mutual exclusion, the timing of accesses selects the versions accessed. In the system developed here, called NAMOS, versions have two component names consisting of the name of an object and a pseudo-time, the name of the system state to which the version belongs. By giving programs control over the pseudo-time in which an access is made, synchronization of access to multiple objects is simplified. NAMOS is intended to be used in an environment where unreliable components, such as communication lines and processors, and autonomous control of resources occasionally cause certain objects to become inaccessible, perhaps in the middle of an atomic transaction. Computations may also suddenly halt (perhaps as the result of a system crash) never to be restarted. NAMOS provides facilities for recovering from such sudden failures, grouping updates into sets called possibilities, such that failure of any update belonging to a possibility prevents all of the other updates in the possibility. The naming mechanism of NAMOS also provides a useful tool for restoring a consistent state of the system after a failure resulting in irrecoverable loss of information or a user mistake resulting in an inconsistent state. An important motivation for the development of NAMOS is the need to support decentralized development of application systems by combining existing application systems that deal with shared data. NAMOS supports the construction of modules that locally ensure their own correct synchronization and recovery from inaccessibility. Larger modules that use several separately designed modules can then be constructed, perhaps with additional synchronization constraints, without modifying the modules used. In most systems based on mutual exclusion, such post hoc integration of modules is difficult or impossible.