Reimplementing the Cedar file system using logging and group commit
SOSP '87 Proceedings of the eleventh ACM Symposium on Operating systems principles
Communications of the ACM
Transaction support in read optimized and write optimized file systems
Proceedings of the sixteenth international conference on Very large databases
Experience with transactions in QuickSilver
SOSP '91 Proceedings of the thirteenth ACM symposium on Operating systems principles
ACM Transactions on Database Systems (TODS)
The design and implementation of a log-structured file system
ACM Transactions on Computer Systems (TOCS)
Performance of cache coherence in stackable filing
SOSP '95 Proceedings of the fifteenth ACM symposium on Operating systems principles
The log-structured merge-tree (LSM-tree)
Acta Informatica
Fundamentals of Database Systems
Fundamentals of Database Systems
Transaction Processing: Concepts and Techniques
Transaction Processing: Concepts and Techniques
Transaction Support in a Log-Structured File System
Proceedings of the Ninth International Conference on Data Engineering
OdeFS: A File System Interface to an Object-Oriented Database
VLDB '94 Proceedings of the 20th International Conference on Very Large Data Bases
A Toolkit for User-Level File Systems
Proceedings of the General Track: 2002 USENIX Annual Technical Conference
Solaris Internals (2nd Edition)
Solaris Internals (2nd Edition)
Understanding The Linux Kernel
Understanding The Linux Kernel
Cohesion Analysis in Linux Kernel
APSEC '06 Proceedings of the XIII Asia Pacific Software Engineering Conference
Extending ACID semantics to the file system
ACM Transactions on Storage (TOS)
A transactional flash file system for microcontrollers
ATEC '05 Proceedings of the annual conference on USENIX Annual Technical Conference
Wayback: a user-level versioning file system for linux
ATEC '04 Proceedings of the annual conference on USENIX Annual Technical Conference
File system design for an NFS file server appliance
WTEC'94 Proceedings of the USENIX Winter 1994 Technical Conference on USENIX Winter 1994 Technical Conference
Stasis: flexible transactional storage
OSDI '06 Proceedings of the 7th USENIX Symposium on Operating Systems Design and Implementation - Volume 7
Scalability in the XFS file system
ATEC '96 Proceedings of the 1996 annual conference on USENIX Annual Technical Conference
OSDI '06 Proceedings of the 7th symposium on Operating systems design and implementation
Story book: an efficient extensible provenance framework
TAPP'09 First workshop on on Theory and practice of provenance
Proceedings of the ACM SIGOPS 22nd symposium on Operating systems principles
On-line consistent backup in transactional file systems
Proceedings of the first ACM asia-pacific workshop on Workshop on systems
Operating systems should provide transactions
HotOS'09 Proceedings of the 12th conference on Hot topics in operating systems
An efficient multi-tier tablet server storage architecture
Proceedings of the 2nd ACM Symposium on Cloud Computing
Protecting applications against TOCTTOU races by user-space caching of file metadata
VEE '12 Proceedings of the 8th ACM SIGPLAN/SIGOPS conference on Virtual Execution Environments
Improving server applications with system transactions
Proceedings of the 7th ACM european conference on Computer Systems
TROPIC: transactional resource orchestration platform in the cloud
USENIX ATC'12 Proceedings of the 2012 USENIX conference on Annual Technical Conference
Building workload-independent storage with VT-trees
FAST'13 Proceedings of the 11th USENIX conference on File and Storage Technologies
Hi-index | 0.00 |
Transactions offer a powerful data-access method used in many databases today trough a specialized query API. User applications, however, use a different file-access API (POSIX) which does not offer transactional guarantees. Applications using transactions can become simpler, smaller, easier to develop and maintain, more reliable, and more secure. We explored several techniques how to provide transactional file access with minimal impact on existing programs. Our first prototype was a standalone kernel component within the Linux kernel, but it complicated the kernel considerably and duplicated some of Linux's existing facilities. Our second prototype was all in user level, and while it was easier to develop, it suffered from high overheads. In this paper we describe our latest prototype and the evolution that led to it. We implemented a transactional file API inside the Linux kernel which integrates easily and seamlessly with existing kernel facilities. This design is easier to maintain, simpler to integrate into existing OSs, and efficient. We evaluated our prototype and other systems under a variety of workloads. We demonstrate that our prototype's performance is better than comparable systems and comes close to the theoretical lower bound for a log-based transaction manager.