IceDust: Incremental and Eventual Computation of Derived Values in Persistent Object Graphs
Derived values are values calculated from base values. They can be expressed in object-oriented languages by means of getters calculating the derived value, and in relational or logic databases by means of (materialized) views. However, switching to a different calculation strategy (for example caching) in object-oriented programming requires invasive code changes, and the databases limit expressiveness by disallowing recursive aggregation.
In this paper, we present IceDust, a data modeling language for expressing derived attribute values without committing to a calculation strategy. IceDust provides three strategies for calculating derived values in persistent object graphs: Calculate-on-Read, Calculate-on-Write, and Calculate-Eventually. We have developed a path-based abstract interpretation that provides static dependency analysis to generate code for these strategies. Benchmarks show that different strategies perform better in different scenarios. In addition we have conducted a case study that suggests that derived value calculations of systems used in practice can be expressed in IceDust.
Fri 22 JulDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
10:30 - 11:45
|Boomerang: Demand-Driven Flow- and Context-Sensitive Pointer Analysis for Java
Johannes Späth Fraunhofer SIT, Lisa Nguyen Quang Do Fraunhofer IEM, Karim Ali TU Darmstadt, Eric Bodden Heinz Nixdorf Institut, Paderborn University and Fraunhofer IEMLink to publication DOI Pre-print Media Attached
|IceDust: Incremental and Eventual Computation of Derived Values in Persistent Object Graphs
Daco Harkes Delft University of Technology, Danny Groenewegen Delft University of Technology, Eelco Visser Delft University of TechnologyLink to publication DOI Pre-print Media Attached
|Reference Capabilities for Concurrency Control
Research TrackLink to publication DOI Pre-print Media Attached