English

TxForest: A DSL for Concurrent Filestores

Programming Languages 2019-08-28 v1

Abstract

Many systems use ad hoc collections of files and directories to store persistent data. For consumers of this data, the process of properly parsing, using, and updating these filestores using conventional APIs is cumbersome and error-prone. Making matters worse, most filestores are too big to fit in memory, so applications must process the data incrementally while managing concurrent accesses by multiple users. This paper presents Transactional Forest (TxForest), which builds on earlier work on Forest to provide a simpler, more powerful API for managing filestores, including a mechanism for managing concurrent accesses using serializable transactions. Under the hood, TxForest implements an optimistic concurrency control scheme using Huet's zippers to track the data associated with filestores. We formalize TxForest in a core calculus, develop a proof of serializability, and describe our OCaml prototype, which we have used to build several practical applications.

Keywords

Cite

@article{arxiv.1908.10273,
  title  = {TxForest: A DSL for Concurrent Filestores},
  author = {Jonathan DiLorenzo and Katie Mancini and Kathleen Fisher and Nate Foster},
  journal= {arXiv preprint arXiv:1908.10273},
  year   = {2019}
}

Comments

Tech Report, 29 pages, 12 figures, to be published in APLAS 2019

R2 v1 2026-06-23T10:58:06.282Z