论文标题
复制系统中并发库的语义,规范和有限验证
Semantics, Specification, and Bounded Verification of Concurrent Libraries in Replicated Systems
论文作者
论文摘要
地理恢复系统提供许多理想的属性,例如全球延迟,高可用性,可扩展性和内置的容错耐受性。不幸的是,在此类系统之外,编程正确的应用程序已被证明是非常具有挑战性的,这在很大程度上是由于它们提供的一致性较弱。当我们尝试调整为共享内存环境开发的现有高度绩效的并发库时,这些复杂性会加剧。这些库的使用是高度可取的,它是牢记性能和可伸缩性的。但是,在弱一致的执行模型下确定合适的正确性概念以检查其有效性,这在很大程度上是因为它对于天真的移植标准(如线性化的性能)在共享内存中具有有用的解释为分布式的一个有用的解释是有用的,而在某个分布式上具有有用的解释,而在所有动作上施加了(逻辑上的)全球订购的成本。 在本文中,我们通过在弱稳定的,复制的设置中提出适当的语义和规格来解决这些问题。我们使用这些规范来开发静态分析框架,该框架可以自动检测到对基础系统提供的不同一致性策略参数列表的库实现的正确性。我们使用我们的框架来分析堆栈,队列和交换器的许多高度非平凡的库实现的行为。我们的结果提供了首次演示,即在弱地理复制的设置中对并发库的自动正确检查既可行又实用。
Geo-replicated systems provide a number of desirable properties such as globally low latency, high availability, scalability, and built-in fault tolerance. Unfortunately, programming correct applications on top of such systems has proven to be very challenging, in large part because of the weak consistency guarantees they offer. These complexities are exacerbated when we try to adapt existing highly-performant concurrent libraries developed for shared-memory environments to this setting. The use of these libraries, developed with performance and scalability in mind, is highly desirable. But, identifying a suitable notion of correctness to check their validity under a weakly consistent execution model has not been well-studied, in large part because it is problematic to naively transplant criteria such as linearizability that has a useful interpretation in a shared-memory context to a distributed one where the cost of imposing a (logical) global ordering on all actions is prohibitive. In this paper, we tackle these issues by proposing appropriate semantics and specifications for highly-concurrent libraries in a weakly-consistent, replicated setting. We use these specifications to develop a static analysis framework that can automatically detect correctness violations of library implementations parameterized with respect to the different consistency policies provided by the underlying system. We use our framework to analyze the behavior of a number of highly non-trivial library implementations of stacks, queues, and exchangers. Our results provide the first demonstration that automated correctness checking of concurrent libraries in a weakly geo-replicated setting is both feasible and practical.