Distributed systems address the increasing demand for fast access to resources and 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 flow from data with weak consistency to data with strong consistency requirements is problematic, since application correctness may be broken. In this paper, we propose lattice-based consistency types for replicated data (CTRD), a higher-order static consistency-typed language with replicated data types. The type system of CTRD supports shared data among multiple clients, and statically enforces noninterference between data types with weaker consistency and data types with stronger consistency. The language can be applied to many distributed applications and guarantees that updates of weakly-consistent data can never affect strongly-consistent data. We also extend the basic CTRD with an optimization that reduces synchronization for generating reference graphs.
翻译:然而,由于可缩放性要求,软件开发者需要为性能交易一致性。对于某些数据,如果应用的正确性不受影响,一致性保障可能会被削弱。相反,数据来自数据的一致性差,而数据流则存在问题,因为应用的正确性可能被打破。在本文中,我们建议对复制数据采用基于拉特比的一致类型(CTRD),这是一种与复制数据类型具有较高顺序的静态一致性类型语言。CTRD类型系统支持多个客户共享数据,静态地强制在数据类型之间互不干扰,一致性较弱,数据类型则更加一致。该语言可以应用于许多分布式应用程序,保证更新不一致的数据永远不会影响高度一致的数据。我们还将基本CTRD扩大,以优化方式降低生成参考图表的同步性。