On consistency types for lattice-based distributed programming languages
Distributed systems address an increasing demand for fast access to resources and provide fault tolerance for data. However, due to scalability requirements, software developers need to trade consistency for performance. For certain data, consistency guarantees may be weakened if application correctness is unaffected. In contrast, data flows from data with weak consistency to data with strong consistency requirements are problematic, since application correctness may be broken. In this paper, we propose LatCalculus, a language and type system for distributed programming languages with replicated data types. There are two principal new features: first, the type system statically enforces noninterference between data types with weak consistency and data types with strong consistency; second, static encapsulation enables replication of object graphs with internal aliasing.
READ FULL TEXT