Valter Balegas, PhD Student, Universidade Nova de Lisboa, Portugal
Storage systems based on Weak Consistency provide better availability and lower latency than systems that use Strong Consistency, especially in geo-replicated settings. However, under Weak Consistency, it is harder to ensure correctness of applications, because concurrent operations may conflict and lead to invariant violations. Recent proposals identify which operations can cause conflicts and coordinate their execution, but this can still result in high latency and low availability for these operations. We propose an alternative approach: invariant-preserving applications by design. It consists in tweeking operations in such a way that they run correctly under Weak Consistency. Our methodology is backed by a tool that allows application programmers to identify invariant violations and correct them, during development period. The evaluation of the approach shows that the modified operations incur in a small penalty during runtime, in comparison to their original unsafe implementation, but still outperform the state of the art solutions that use coordination for operations that may violate invariants.