Abstract
This paper reports on the design and the implementation of a distributed transactions-system for a Universal File Server. The system maintains consistency in a general purpose file-system by means of concurrency control and crash recovery. Both the distributivity of a transaction and the intra-transaction concurrency, are depicted by a single model which describes the transaction as a partially ordered set of operations. The main concurrency control algorithm described in this paper is a novel distributed locking management algorithm based on the two-phase-locking (2pl) protocol. The system is implemented in Flat Concurrent Prolog (FCP), a concurrent logic programming language. FCP lends itself to the development of new distributed algorithms which utilize the fine-grained concurrency and the powerful communication and synchronization mechanisms supplied by the language. The features of concurrent logic languages, which are useful for implementing file and database systems are demonstrated in this paper.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Anderson, T., Lee, P.A. “Fault Tolerance Principles and Practice” Prentice-Hall, Englewood Cliffs, NJ, 1981
Bernstein P.A., V. Hadzilacos, N. Goodman, “Concurrency Control and Recovery in Database Systems”, Addison-Wesley, 1987.
Bernstein, P.A., Goodman, N., Hadzilacos, V. “Recovery Algorithms for Database Systems” In Proc. IFIP 9th World Computer Congress, North-Holland, Amsterdam, 1983.
Date, C., “An Introduction to Databases Systems”, Addison-Wesley, 1983.
Dijkstra E. W., “A Discipline of Programming”, Prentice-Hall, 1976.
DeWitt D. J. “DIRECT — A Multiprocessor Organization for Supporting Relational Database Management Systems” IEEE Transactions on Computers, Vol. C-27, No 1, January 1979
Hirsch M. “The Logix System”, M.sc. Thesis, The Weizmann Institute of Science, 1986
Lampson, B., Sturgis, H. “Crash Recovery in a Distributed Data Storage System” Technical Report, Computer Science Laboratory, Xerox, Palo Alto ResearchCenter, CA, 1976.
Mierowsky C., S. Taylor, E. Shapiro, J. Levy and M. Safra, “The Design and Implementation of Flat Concurrent Prolog”, Technical Report CS85-09, The Weizmann Institute of Science, July 1985.
Moss E. B.,” Nested Transactions: an Approach to Reliable Distributed Computing”, MIT Press, 1985.
Mueller E. T., Moore J D., and G. Popek, “A Nested Transaction Mechanism for LOCUS”, Proceedings of ACM-SIGOPS Conference, Bretton Woods, NH, October 1983.
Papadimitriou, C., “The Theory of Database Concurrency Control”, Computer Science Press, 1986.
Pnueli A., “Specification and Development of Reactive Systems”, in Information Processing 86, Editor Kugler H.J., Elsevier Science Publishers B.V. (North-Holland), IFIP 1986.
Reches E., E. Gudes, E. Shapiro, “Parallel Access to a Distributed Database and its Implementation in Flat Concurrent Prolog” Technical Report, CS88-11, The Weizmann Institute of Science, Rehovot, Israel, 1988
Shafrir A. and E. Shapiro, “Distributed Programming in Concurrent Prolog”, Technical Report CS84-02, January 1984. Also chapter 11 in [20]
Shapiro E., “Concurrent Prolog: A Progress Report”, IEEE Computer, August 1986.
Shapiro E., “A Subset of Concurrent Prolog and its Interpreter”, ICOT Technical Report TR-003, February 1983. Also chapter 2 in [20].
Shapiro E., “Systems Programming in Concurrent Prolog”, Proc. of 11th ACM Symp. on Principles of Programming Languages, Jan 1984, pp 95–105.
Shapiro E. and S. Safra, “Multiway Merge with Constant Delay in Concurrent Prolog”, New Generation Computing, 4, 2 (1986), pp 211–216.
Shapiro E. (Editor), Concurrent Prolog: Collected Papers, Vols 1 and 2, MIT Press, 1987.
Silverman W., M. Hirsch, A. Houri and E. Shapiro, “The Logix system user manual”, Technical Report CS86-21, The Weizmann Institute of Science, June 1986. Also Chapter 21 in [20].
Svobodova L., “File Servers for Network-Based Distributed Systems” ACM Computing Surveys, Vol. 16, 1984.
Tannenbaum A., “Computer Networks”, Prentice-Hall, 1981.
Tribble E. D., Miller, M. S., E Shapiro, “Channels: A Generalization of Streams.” Proc. 4th Int. Conf. on Logic Programming, MIT Press, 1987.
Ullman J., “Principles of Database Systems”, Computer Science Press, 1982.
Verhofstad J. S. M., “Recovery Techniques For Database Systems”, ACM Cmputing Surveys, Vol. 10, 1978.
Weinbaum D., E. Shapiro, “A Hardware Description Language Using Concurrent Prolog”, proc. of CHDL, 1987. Also chapter 36 in [20].
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1989 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Reches, E., Gudes, E., Shapiro, E. (1989). A distributed locking algorithm for a transactions system in flat concurrent prolog. In: Litwin, W., Schek, HJ. (eds) Foundations of Data Organization and Algorithms. FODO 1989. Lecture Notes in Computer Science, vol 367. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-51295-0_139
Download citation
DOI: https://doi.org/10.1007/3-540-51295-0_139
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-51295-0
Online ISBN: 978-3-540-46186-9
eBook Packages: Springer Book Archive