Cornell University
Library
Cornell UniversityLibrary

eCommons

Help
Log In(current)
  1. Home
  2. Cornell University Graduate School
  3. Cornell Theses and Dissertations
  4. Domain-Specific Languages for Ad Hoc Data Processing

Domain-Specific Languages for Ad Hoc Data Processing

File(s)
DiLorenzo_cornellgrad_0058F_12376.pdf (2.19 MB)
Permanent Link(s)
https://doi.org/10.7298/pm5v-5815
https://hdl.handle.net/1813/103357
Collections
Cornell Theses and Dissertations
Author
DiLorenzo, Jonathan
Abstract

Ad hoc data is everywhere. There is a plethora of data formats in use, which, due to the specificity of their domain, lack the processing tools that we might otherwise take for granted. We call such data formats, and the data that they represent, ad hoc. Ad hoc data is usually stored in file systems and can be organized into larger structures that we call filestores, collections of files and folders along with the properties between them. This dissertation aims to support the usage of ad hoc filestores. We design domain-specific languages for processing filestores with increasingly complex requirements, building on previous work on PADS and Forest. These existing systems accept declarative specifications of ad hoc data formats, as single files and filestores respectively. From these specifications, they generate tools for loading, storing, and validating the data. Unfortunately, Forest does not adequately deal with large filestores, or cost control in general. Nor does it offer support for correctly managing concurrent operations, which are common in file systems. This dissertation offers solutions to these problems. We first introduce Incremental Forest, a domain-specific language and system that enables incremental processing of filestores. This language offers a new mechanism, a delay construct, for explicitly controlling the costs of loading and storing in filestores. Incremental Forest comes with a customizable cost model, which guarantees that a wide class of costs monotonically decrease as delays increase. Our next system, Transactional Forest, does away with the delays from Incremental Forest, opting to use an entirely new interface language and abstraction, which offer automatic incrementality. Additionally, Transactional Forest leverages this abstraction, a zipper, to provide simple, provably correct serializable transactions using optimistic concurrency control. Finally, the Zipper File System goes beyond designing a domain-specific language, targeting the file system itself to provide deeper control with respect to other users. The Zipper File System uses the ideas from Transactional Forest to provide serializable transactions in a zipper-based file system. It also comes with a translation from POSIX that theoretically allows standard applications to be run on our file system, without changes. Taken together, these systems use domain-specific languages to enable users to efficiently and correctly manage ad hoc filestores in concurrent settings.

Description
209 pages
Date Issued
2020-12
Keywords
Ad hoc Data
•
Concurrency
•
Data Processing
•
Domain-Specific Languages
•
File Systems
•
Programming Languages
Committee Chair
Foster, Nate
Committee Member
Kleinberg, Robert David
Kozen, Dexter
Schneider, Fred Barry
Degree Discipline
Computer Science
Degree Name
Ph. D., Computer Science
Degree Level
Doctor of Philosophy
Rights
Attribution 4.0 International
Rights URI
https://creativecommons.org/licenses/by/4.0/
Type
dissertation or thesis
Link(s) to Catalog Record
https://newcatalog.library.cornell.edu/catalog/13312067

Site Statistics | Help

About eCommons | Policies | Terms of use | Contact Us

copyright © 2002-2026 Cornell University Library | Privacy | Web Accessibility Assistance