Principles of transaction-oriented database recovery
ACM Computing Surveys (CSUR)
Concurrency control and recovery in database systems
Concurrency control and recovery in database systems
The GemStone object database management system
Communications of the ACM
Proceedings of the fourteenth annual ACM symposium on Principles of distributed computing
Communications of the ACM
Transaction Processing: Concepts and Techniques
Transaction Processing: Concepts and Techniques
Purely Functional Data Structures
Purely Functional Data Structures
Observable Properties of Higher Order Functions that Dynamically Create Local Names, or What's new?
MFCS '93 Proceedings of the 18th International Symposium on Mathematical Foundations of Computer Science
A functional database (databases)
A functional database (databases)
Xen and the art of virtualization
SOSP '03 Proceedings of the nineteenth ACM symposium on Operating systems principles
Language support for lightweight transactions
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
Bee: an integrated development environment for the Scheme programming language
Journal of Functional Programming
Combinators for bidirectional tree transformations: A linguistic approach to the view-update problem
ACM Transactions on Programming Languages and Systems (TOPLAS) - Special issue on POPL 2005
HASE '08 Proceedings of the 2008 11th IEEE High Assurance Systems Engineering Symposium
Compensation in the world of web services composition
SWSWPC'04 Proceedings of the First international conference on Semantic Web Services and Web Process Composition
Using functional programming within an industrial product group: perspectives and perceptions
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
Dynamics for ML using Meta-Programming
Electronic Notes in Theoretical Computer Science (ENTCS)
Unikernels: library operating systems for the cloud
Proceedings of the eighteenth international conference on Architectural support for programming languages and operating systems
Hi-index | 0.00 |
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.