skip to main content
research-article

OXenstored: an efficient hierarchical and transactional database using functional programming with reference cell comparisons

Published:31 August 2009Publication History
Skip Abstract Section

Abstract

We describe in this paper our implementation of the Xenstored service which is part of the Xen architecture. Xenstored maintains a hierarchical and transactional database, used for storing and managing configuration values.

We demonstrate in this paper that mixing functional data-structures together with reference cell comparison, which is a limited form of pointer comparison, is: (i) safe; and (ii) efficient. This demonstration is based, first, on an axiomatization of operations on the tree-like structure we used to represent the Xenstored database. From this axiomatization, we then derive an efficient algorithm for coalescing concurrent transactions modifying that structure. Finally, we experimentally compare the performance of our implementation, that we called OXenstored, and the C implementation of the Xenstored service distributed with the Xen hypervisor sources: the results show that Oxenstored is much more efficient than its C counterpart.

As a direct result of this work, OXenstored will be included in future releases of Xenserver, the virtualization product distributed by Citrix Systems, where it will replace the current implementation of the Xenstored service.

Skip Supplemental Material Section

Supplemental Material

oxenstoredanecienthierarchicalandtransactionaldatabaseusing.mp4

References

  1. Paul Barham, Boris Dragovic, Keir Fraser, Steven Hand, Tim Harris, Alex Ho, Rolf Neugebauer, Ian Pratt, and Andrew Warfield. Xen and the Art of Virtualization. In SOSP '03: Proceedings of the nineteenth ACM symposium on Operating systems principles, pages 164--177. ACM Press, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Philip A. Bernstein, Vassos Hadzilacos, and Nathan Goodman. Concurrency Control and Recovery in Database Systems. Addison-Wesley, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Debmalya Biswas. Compensation in the World of Web Services Composition. In SWSWPC, pages 69--80. LNCS 3387, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Debmalya Biswas, Thomas Gazagnaire, and Blaise Genest. Small logs for transactional services: Distinction is much more accurate than (positive) discrimination. IEEE International Symposium on High-Assurance Systems Engineering, pages 97--106, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Paul Butterworth, Allen Otis, and Jacob Stein. The gemstone object database management system. Commun. ACM, 34 (10): 64--77, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Koen Claessen and David Sands. Observable Sharing for Functional Circuit Description. In In Asian Computing Science Conference, pages 62--73. Springer-Verlag, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Robert J. Creasy. The Origin of the VM/370 Time-Sharing System. IBM Journal of Research and Development, 25 (5): 483--490, 1981.Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Robert Ennals. Efficient software transactional memory. Technical Report IRC-TR-05-051, Intel Research Cambridge Tech Report, 2005.Google ScholarGoogle Scholar
  9. J. Nathan Foster, Michael B. Greenwald, Jonathan T. Moore, Benjamin C. Pierce, and Alan Schmitt. Combinators for bidirectional tree transformations: A linguistic approach to the view-update problem. ACM Trans. Program. Lang. Syst., 29 (3): 17, 2007. Google ScholarGoogle ScholarCross RefCross Ref
  10. Edward Fredkin. Trie memory. Commun. ACM, 3 (9): 490--499, 1960. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Jim Gray and Andreas Reuter. Transaction Processing: Concepts and Techniques. Morgan Kaufmann Publishers Inc., 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Theo Harder and Andreas Reuter. Principles of transaction-oriented database recovery. ACM Comput. Surv., 15 (4): 287--317, 1983. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Tim Harris and Keir Fraser. Language Support for Lightweight Transactions. In OOPSLA, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Xavier Leroy, Jérôme Vouillon, Damien Doligez, et al. The Objective Caml system. http://caml.inria.fr/ocaml/, 1996.Google ScholarGoogle Scholar
  15. Chris Okasaki. Purely Functional Data Structures. Cambridge University Press, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Andrew Pitts and Ian Stark. Observable properties of higher order functions that dynamically create local names, or: What's new. In Mathematical Foundations of Computer Science, Proc. 18th Int. Symp., pages 122--141. Springer-Verlag, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Torvald Riegel, Christof Fetzer, and Pascal Felber. Snapshot Isolation for Software Transactional Memory. In Proceedings of the First ACM SIGPLAN Workshop on Languages, Compilers, and Hardware Support for Transactional Computing, 2006.Google ScholarGoogle Scholar
  18. Manuel Serrano. Bee: an integrated development environment for the Scheme programming language. Journal of Functional Programming, 10 (4): 353--395, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Nir Shavit and Dan Touitou. Software Transactional Memory. In Symposium on Principles of Distributed Computing, pages 204--213, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Phil Trinder. A functional database. PhD thesis, 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. OXenstored: an efficient hierarchical and transactional database using functional programming with reference cell comparisons

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        Full Access

        • Published in

          cover image ACM SIGPLAN Notices
          ACM SIGPLAN Notices  Volume 44, Issue 9
          ICFP '09
          September 2009
          343 pages
          ISSN:0362-1340
          EISSN:1558-1160
          DOI:10.1145/1631687
          Issue’s Table of Contents
          • cover image ACM Conferences
            ICFP '09: Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
            August 2009
            364 pages
            ISBN:9781605583327
            DOI:10.1145/1596550

          Copyright © 2009 ACM

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 31 August 2009

          Check for updates

          Qualifiers

          • research-article

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader
        About Cookies On This Site

        We use cookies to ensure that we give you the best experience on our website.

        Learn more

        Got it!