Skip to main content

A distributed locking algorithm for a transactions system in flat concurrent prolog

  • Data Organizations For Logic Programming
  • Conference paper
  • First Online:
  • 395 Accesses

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 367))

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.

This is a preview of subscription content, log in via an institution.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Anderson, T., Lee, P.A. “Fault Tolerance Principles and Practice” Prentice-Hall, Englewood Cliffs, NJ, 1981

    Google Scholar 

  2. Bernstein P.A., V. Hadzilacos, N. Goodman, “Concurrency Control and Recovery in Database Systems”, Addison-Wesley, 1987.

    Google Scholar 

  3. Bernstein, P.A., Goodman, N., Hadzilacos, V. “Recovery Algorithms for Database Systems” In Proc. IFIP 9th World Computer Congress, North-Holland, Amsterdam, 1983.

    Google Scholar 

  4. Date, C., “An Introduction to Databases Systems”, Addison-Wesley, 1983.

    Google Scholar 

  5. Dijkstra E. W., “A Discipline of Programming”, Prentice-Hall, 1976.

    Google Scholar 

  6. DeWitt D. J. “DIRECT — A Multiprocessor Organization for Supporting Relational Database Management Systems” IEEE Transactions on Computers, Vol. C-27, No 1, January 1979

    Google Scholar 

  7. Hirsch M. “The Logix System”, M.sc. Thesis, The Weizmann Institute of Science, 1986

    Google Scholar 

  8. Lampson, B., Sturgis, H. “Crash Recovery in a Distributed Data Storage System” Technical Report, Computer Science Laboratory, Xerox, Palo Alto ResearchCenter, CA, 1976.

    Google Scholar 

  9. 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.

    Google Scholar 

  10. Moss E. B.,” Nested Transactions: an Approach to Reliable Distributed Computing”, MIT Press, 1985.

    Google Scholar 

  11. 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.

    Google Scholar 

  12. Papadimitriou, C., “The Theory of Database Concurrency Control”, Computer Science Press, 1986.

    Google Scholar 

  13. 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.

    Google Scholar 

  14. 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

    Google Scholar 

  15. Shafrir A. and E. Shapiro, “Distributed Programming in Concurrent Prolog”, Technical Report CS84-02, January 1984. Also chapter 11 in [20]

    Google Scholar 

  16. Shapiro E., “Concurrent Prolog: A Progress Report”, IEEE Computer, August 1986.

    Google Scholar 

  17. Shapiro E., “A Subset of Concurrent Prolog and its Interpreter”, ICOT Technical Report TR-003, February 1983. Also chapter 2 in [20].

    Google Scholar 

  18. Shapiro E., “Systems Programming in Concurrent Prolog”, Proc. of 11th ACM Symp. on Principles of Programming Languages, Jan 1984, pp 95–105.

    Google Scholar 

  19. Shapiro E. and S. Safra, “Multiway Merge with Constant Delay in Concurrent Prolog”, New Generation Computing, 4, 2 (1986), pp 211–216.

    Google Scholar 

  20. Shapiro E. (Editor), Concurrent Prolog: Collected Papers, Vols 1 and 2, MIT Press, 1987.

    Google Scholar 

  21. 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].

    Google Scholar 

  22. Svobodova L., “File Servers for Network-Based Distributed Systems” ACM Computing Surveys, Vol. 16, 1984.

    Google Scholar 

  23. Tannenbaum A., “Computer Networks”, Prentice-Hall, 1981.

    Google Scholar 

  24. Tribble E. D., Miller, M. S., E Shapiro, “Channels: A Generalization of Streams.” Proc. 4th Int. Conf. on Logic Programming, MIT Press, 1987.

    Google Scholar 

  25. Ullman J., “Principles of Database Systems”, Computer Science Press, 1982.

    Google Scholar 

  26. Verhofstad J. S. M., “Recovery Techniques For Database Systems”, ACM Cmputing Surveys, Vol. 10, 1978.

    Google Scholar 

  27. Weinbaum D., E. Shapiro, “A Hardware Description Language Using Concurrent Prolog”, proc. of CHDL, 1987. Also chapter 36 in [20].

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Witold Litwin Hans-Jörg Schek

Rights and permissions

Reprints 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

Publish with us

Policies and ethics