Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article
Open access

Implementation of resilient, atomic data types

Published: 01 April 1985 Publication History

Abstract

A major issue in many applications is how to preserve the consistency of data in the presence of concurrency and hardware failures. We suggest addressing this problem by implementing applications in terms of abstract data types with two properties: Their objects are atomic (they provide serializability and recoverability for activities using them) and resilient (they survive hardware failures with acceptably high probability). We define what it means for abstract data types to be atomic and resilient. We also discuss issues that arise in implementing such types, and describe a particular linguistic mechanism provided in the Argus programming language.

References

[1]
BERNSTEIN, P., AND GOODMAN, N. Concurrency control algorithms for multiversion database systems. In ACM Symposium on Principles of Distributed Computing, (Ottawa, Aug. 1982), ACM, New York, 209-215.
[2]
BERNSTEIN, P., GOODMAN, N., AND LAI, M. Two-part proof schema for database concurrency control. In Proceedings of the 5th Berkeley Workshop on Distributed Data Management and Computer Networks, (Feb. 1981), 71-84.
[3]
BEST, E., AND RANDELL, B. A formal model of atomicity in asynchronous systems. Acta Inf. 16 (1981), 93-124.
[4]
DAHL, O.-J., ET AL. The Simula 67 common base language. Publication No. S-22, Norwegian Computing Center, Oslo, 1970.
[5]
DAVIES, C. T. Recovery semantics for a DB/I)C system. In Proceedings of the 1973 ACM National Conference, (1973), ACM, New York, 136-141.
[6]
DAVIES, C.T. Data processing spheres of control. IBM Syst. J. 17, 2 (1978), 179-198.
[7]
ELLIS, C. Concurrent search and insertion in 2-3 trees. Acta Inf. 14 (1980), 63-86.
[8]
ESWARAN, K. P., GRAY, J. N., LOR1E, R. A., AND TRAIGER, I.L. The notion of consistency and predicate locks in a database system. Commun. ACM 19, 11 (Nov. 1976), 624-633.
[9]
GIFI~ORD, D. Weighted voting for replicated data. In Proceedings of the 7th ACM SIGOPS Symposium on Operating Systems Principles, (Dec. 1979), ACM, New York, 150-162.
[10]
GRAY, J.N., Notes on database operating systems. In Lecture Notes in Computer Science 60, GoDs and Hartmanis, Eds., Springer-Verlag, Berlin, 1978, 393-481.
[11]
GRAY, J. N., ET AL. The recovery manager of the System R database manager. ACM Comput. Surv. 13, 2 (June 1981), 223-242.
[12]
GUTTAO, J., HOROWITZ, E., AND MUSSER, D. Abstract data types and software validation. Commun. ACM 21, 12 (Dec. 1978), 1048-1064.
[13]
HERLIHY, M.P. Replication methods for abstract data types. Ph.D dissertation, Tech. Rep. MIT/LCS/TR-319, MIT Laboratory for Computer Science, May 1984.
[14]
HOARE, C. A.R. Monitors: An operating system structuring concept. Commun. ACM 17, 10 (Oct. 1974), 549-557.
[15]
KORTH, H.F. Locking primitives in a database system. J. ACM 30, I (Jan. 1983), 55-79.
[16]
KUNG, H. T., AND ROBINSON, J.T. On optimistic methods for concurrency control ACM Trans. Database Syst. 6, 2 (June 1981), 213-226.
[17]
LAMPSON, B., AND REDELL, D. Experience with processes and monitors in Mesa. Commun. ACM 23, 2 (Feb. 1980), 105-117.
[18]
LAMPSON, B. Atomic transactions. In Distributed Systems: Architecture and Implementation. Lecture Notes in Computer Science 105, GoDs and Hartmanis, Eds., Springer-Verlag, Berlin, 1981, 246-265.
[19]
LISKOV, B. AND ZILLES, S.N. Programming with abstract data types. In Proceedings ACM SIGPLAN Conference on Very High-Level Languages. SIGPLAN Not. 9, 4 (Apr. 1974), 50-59.
[20]
L1SKOV, B., SNYDER, A., ATKINSON, R. R., AND SCHAFFERT, J.C. Abstraction mechanisms in CLU. Commun. ACM 20, 8 (Aug. 1977), 564-576.
[21]
LISKOV, B., ET AL. CLU reference manual. In Lecture Notes in Computer Science 114, GoDs and Hartmanis, Eds., Springer-Verlag, Berlin, 1981.
[22]
LISKOV, B., AND SCHEIFLER, R. Guardians and actions: Linguistic support for robust, distributed programs. ACM Trans. Programm. Lang. Syst. 5, 3 (July 1983), 381-404.
[23]
Moss, J. E. B. Nested transactions: An approach to reliable distributed computing. Ph.D dissertation. Tech. Rep. MIT/LCS/TR-260, MIT Laboratory for Computer Science, 1981.
[24]
PAPADIM1TRIOU, C.H. The serializability of concurrent database updates. J. ACM 26, 4 (Oct. 1979), 631-653.
[25]
PAXTON, W. A client-based transaction system to maintain data integrity. In Proceedings of the 7th ACM SIGOPS Symposium on Operating Systems Principles, (Dec. 1979), ACM, New York, 18-23.
[26]
REED, D.P. Naming and synchronization in a decentralized computer system. Ph.D dissertation. Tech. Rep. MIT/LCS/TR-205, MIT Laboratory for Computer Science, 1978.
[27]
SCHWARZ, P., AND SPECTOR, A. Synchronizing shared abstract types. ACM Trans. Comput. Syst. 2, 3 (Aug 1984), 223-250.
[28]
STIJRGIS, H., MITCHELL, J., AND ISRAEL, J. Issues in the design and use of a distributed file system. Oper. Syst. Rev. 14, 3 (July 1980), 55-69.
[29]
WEIHL, W. E., AND LISKOV, B.H. Specification and implementation of resilient, atomic data types. In Proceedings of the SIGPLAN '83 Symposium on Programming Language Issues in So{tware Systems, (San Francisco, June 1983), ACM, New York, 53-64.
[30]
WEIHL, W.E. Data-dependent concurrency control and recovery. In Proceedings of the 2nd Annual ACM Symposium on Principles o{ Distributed Computing (Montreal, Aug. 1983), ACM, New York, 63-75.
[31]
WEIHL, W.E. Specification and implementation of atomic data types. Ph.D dissertation. Tech. Rep. MIT/LCS/TR-314, MIT Laboratory for Computer Science, Mar. 1984.

Cited By

View all
  • (2020)Would an Object Representation Invariant Provide Sufficient State Based Knowledge to Adapt Network Intrusion Detection System Rules With Minimal Impact to System Resources?2020 IEEE Intl Conf on Dependable, Autonomic and Secure Computing, Intl Conf on Pervasive Intelligence and Computing, Intl Conf on Cloud and Big Data Computing, Intl Conf on Cyber Science and Technology Congress (DASC/PiCom/CBDCom/CyberSciTech)10.1109/DASC-PICom-CBDCom-CyberSciTech49142.2020.00099(556-561)Online publication date: Aug-2020
  • (2016)A “Suggested” Picture of Web Search in TurkishACM Transactions on Asian and Low-Resource Language Information Processing10.1145/289110515:4(1-11)Online publication date: 16-May-2016
  • (2013)Finding incorrect compositions of atomicityProceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering10.1145/2491411.2491435(158-168)Online publication date: 18-Aug-2013
  • Show More Cited By

Recommendations

Reviews

Edward A. Feustel

I strongly recommend this paper as a tutorial and exposition of an area of current language research: user defined atomic data types. The purpose of the paper is to explain how resilient, atomic data types which the user needs may be implemented in terms of a set of atomic, resilient data types provided by a programming language. The authors believe that the user will be forced to implement his or her own data types because of efficiency constraints found in the distributed system in which these data types are used. They show that such an implementation is possible within their system but that it is a difficult task. They espouse a design philosophy which systematically trades a simple implementation with no concurrency for a more complex implementation with a higher degree of concurrency. They encourage the reader and the community to try to find alternative approaches which provide a mechanism that is easier to use. The authors' approach is directed to a specific kind of operating system which assumes distributed operation on several nodes that coordinate activity using message passing. Each node has one or more guardian modules totally contained on the node. Each guardian module serves as home for local processes and data. A guardian module permits indirect access to data which its owns (protects and synchronizes) by means of handlers. Guardians have stable state and survive crashes with high probability. If a guardian crashes, its processes die, but it recovers using its stable state to recover the rest of its objects. Guardians are used as the basis for commitment protocol to assure atomic actions over a set of nodes. The authors use a specific language, ARGUS, a descendant of CLU, to implement guardians, built-in atomic types, and atomic actions. ARGUS is designed to perm- it the specification and implementation of user-defined atomic types using the built-in atomic types and stable storage. ARGUS has taken a first cut at atomic types and solving problems with interaction synchronization; making visible to other actions the effects of committed actions; and hiding the effects of aborted actions. Much of the paper describes the features of ARGUS which make the above possible. One important notion in ARGUS is the new data type called mutex. A mutex is an encapsulation of atomic and nonatomic data types and the operations on them which provide for process synchronization. Two operations are defined on a mutex: seize and pause. One seizes a mutex object for the execution of a group of operations. This causes the object to be locked while operations are performed on it. One may temporarily yield a seized mutex object by executing a pause operation. These operations give an effect similar to that of a monitor, but tailored to an environment of commitment. Action synchronization is done by locks on atomic objects. Another important notion in ARGUS is the fact that user-defined atomic types are not informed about commit and abort events, but must ask about the state of atomic actions via properties of the built-in atomic objects. Special language features facilitate the examination and specification of state and commitment. “The representation of a user-defined atomic type is therefore a combination of atomic and nonatomic objects with the nonatomic objects used to hold information that can be accessed by concurrent actions, and the atomic objects containing information that allows the nonatomic data to be interpreted properly.” Resilience is implemented by ARGUS in the following manner: “Each guardian can specify that some of its objects are stable objects. Each stable object has a backup copy kept on stable storage. New backup copies must be written to stable storage for all stable objects modified by committed actions. This copying can happen when the change takes place or after the change takes place; it must happen before an action can commit.” ARGUS provides procedures which indicate when an atomic or a mutex object has changed and must be copied to stable storage. The paper features several detailed examples. A lengthy bibliography is also included.

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Comments

Information & Contributors

Information

Published In

cover image ACM Transactions on Programming Languages and Systems
ACM Transactions on Programming Languages and Systems  Volume 7, Issue 2
Lecture notes in computer science Vol. 174
April 1985
175 pages
ISSN:0164-0925
EISSN:1558-4593
DOI:10.1145/3318
  • Editor:
  • Susan L. Graham
Issue’s Table of Contents

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 April 1985
Published in TOPLAS Volume 7, Issue 2

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)47
  • Downloads (Last 6 weeks)8
Reflects downloads up to 15 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2020)Would an Object Representation Invariant Provide Sufficient State Based Knowledge to Adapt Network Intrusion Detection System Rules With Minimal Impact to System Resources?2020 IEEE Intl Conf on Dependable, Autonomic and Secure Computing, Intl Conf on Pervasive Intelligence and Computing, Intl Conf on Cloud and Big Data Computing, Intl Conf on Cyber Science and Technology Congress (DASC/PiCom/CBDCom/CyberSciTech)10.1109/DASC-PICom-CBDCom-CyberSciTech49142.2020.00099(556-561)Online publication date: Aug-2020
  • (2016)A “Suggested” Picture of Web Search in TurkishACM Transactions on Asian and Low-Resource Language Information Processing10.1145/289110515:4(1-11)Online publication date: 16-May-2016
  • (2013)Finding incorrect compositions of atomicityProceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering10.1145/2491411.2491435(158-168)Online publication date: 18-Aug-2013
  • (2008)Processor virtualization for secure mobile terminalsACM Transactions on Design Automation of Electronic Systems10.1145/1367045.136705713:3(1-23)Online publication date: 25-Jul-2008
  • (2008)Multiprocessor systems synthesis for multiple use-cases of multiple applications on FPGAACM Transactions on Design Automation of Electronic Systems10.1145/1367045.136704913:3(1-27)Online publication date: 25-Jul-2008
  • (2008)A retargetable parallel-programming framework for MPSoCACM Transactions on Design Automation of Electronic Systems10.1145/1367045.136704813:3(1-18)Online publication date: 25-Jul-2008
  • (2006)StasisProceedings of the 7th symposium on Operating systems design and implementation10.5555/1298455.1298459(29-44)Online publication date: 6-Nov-2006
  • (2006)A Bayesian method for probable surface reconstruction and decimationACM Transactions on Graphics10.1145/1122501.112250425:1(39-59)Online publication date: 1-Jan-2006
  • (2006)A semi-Lagrangian contouring method for fluid simulationACM Transactions on Graphics10.1145/1122501.112250325:1(19-38)Online publication date: 1-Jan-2006
  • (2006)The halfway vector disk for BRDF modelingACM Transactions on Graphics10.1145/1122501.112250225:1(1-18)Online publication date: 1-Jan-2006
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Full Access

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media