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.
Supplemental Material
- 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 Scholar
Digital Library
- Philip A. Bernstein, Vassos Hadzilacos, and Nathan Goodman. Concurrency Control and Recovery in Database Systems. Addison-Wesley, 1987. Google Scholar
Digital Library
- Debmalya Biswas. Compensation in the World of Web Services Composition. In SWSWPC, pages 69--80. LNCS 3387, 2004. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- Paul Butterworth, Allen Otis, and Jacob Stein. The gemstone object database management system. Commun. ACM, 34 (10): 64--77, 1991. Google Scholar
Digital Library
- Koen Claessen and David Sands. Observable Sharing for Functional Circuit Description. In In Asian Computing Science Conference, pages 62--73. Springer-Verlag, 1999. Google Scholar
Digital Library
- Robert J. Creasy. The Origin of the VM/370 Time-Sharing System. IBM Journal of Research and Development, 25 (5): 483--490, 1981.Google Scholar
Digital Library
- Robert Ennals. Efficient software transactional memory. Technical Report IRC-TR-05-051, Intel Research Cambridge Tech Report, 2005.Google Scholar
- 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 Scholar
Cross Ref
- Edward Fredkin. Trie memory. Commun. ACM, 3 (9): 490--499, 1960. Google Scholar
Digital Library
- Jim Gray and Andreas Reuter. Transaction Processing: Concepts and Techniques. Morgan Kaufmann Publishers Inc., 1992. Google Scholar
Digital Library
- Theo Harder and Andreas Reuter. Principles of transaction-oriented database recovery. ACM Comput. Surv., 15 (4): 287--317, 1983. Google Scholar
Digital Library
- Tim Harris and Keir Fraser. Language Support for Lightweight Transactions. In OOPSLA, 2003. Google Scholar
Digital Library
- Xavier Leroy, Jérôme Vouillon, Damien Doligez, et al. The Objective Caml system. http://caml.inria.fr/ocaml/, 1996.Google Scholar
- Chris Okasaki. Purely Functional Data Structures. Cambridge University Press, 1999. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
- Manuel Serrano. Bee: an integrated development environment for the Scheme programming language. Journal of Functional Programming, 10 (4): 353--395, 2000. Google Scholar
Digital Library
- Nir Shavit and Dan Touitou. Software Transactional Memory. In Symposium on Principles of Distributed Computing, pages 204--213, 1995. Google Scholar
Digital Library
- Phil Trinder. A functional database. PhD thesis, 1989. Google Scholar
Digital Library
Index Terms
OXenstored: an efficient hierarchical and transactional database using functional programming with reference cell comparisons
Recommendations
OXenstored: an efficient hierarchical and transactional database using functional programming with reference cell comparisons
ICFP '09: Proceedings of the 14th ACM SIGPLAN international conference on Functional programmingWe 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 ...
Unbounded page-based transactional memory
Proceedings of the 2006 ASPLOS ConferenceExploiting thread level parallelism is paramount in the multicore era. Transactions enable programmers to expose such parallelism by greatly simplifying the multi-threaded programming model. Virtualized transactions (unbounded in space and time) are ...
Unbounded page-based transactional memory
Proceedings of the 2006 ASPLOS ConferenceExploiting thread level parallelism is paramount in the multicore era. Transactions enable programmers to expose such parallelism by greatly simplifying the multi-threaded programming model. Virtualized transactions (unbounded in space and time) are ...







Comments