Using weaker consistency models with monitoring and recovery for improving performance of key-value stores

Abstract Consistency properties provided by most key-value stores can be classified into sequential consistency and eventual consistency. The former is easier to program with but suffers from lower performance whereas the latter suffers from potential anomalies while providing higher performance. We...

Full description

Bibliographic Details
Main Authors: Duong Nguyen, Aleksey Charapko, Sandeep S. Kulkarni, Murat Demirbas
Format: Article
Language:English
Published: SpringerOpen 2019-10-01
Series:Journal of the Brazilian Computer Society
Subjects:
Online Access:http://link.springer.com/article/10.1186/s13173-019-0091-9
id doaj-2d57ae4f54c2468487a9132a898d3e5a
record_format Article
spelling doaj-2d57ae4f54c2468487a9132a898d3e5a2021-04-02T17:17:25ZengSpringerOpenJournal of the Brazilian Computer Society0104-65001678-48042019-10-0125112510.1186/s13173-019-0091-9Using weaker consistency models with monitoring and recovery for improving performance of key-value storesDuong Nguyen0Aleksey Charapko1Sandeep S. Kulkarni2Murat Demirbas3Michigan State UniversityUniversity at Buffalo, SUNYMichigan State UniversityUniversity at Buffalo, SUNYAbstract Consistency properties provided by most key-value stores can be classified into sequential consistency and eventual consistency. The former is easier to program with but suffers from lower performance whereas the latter suffers from potential anomalies while providing higher performance. We focus on the problem of what a designer should do if he/she has an algorithm that works correctly with sequential consistency but is faced with an underlying key-value store that provides a weaker (e.g., eventual or causal) consistency. We propose a detect-rollback based approach: The designer identifies a correctness predicate, say P, and continues to run the protocol, as our system monitors P. If P is violated (because the underlying key-value store provides a weaker consistency), the system rolls back and resumes the computation at a state where P holds.We evaluate this approach with graph-based applications running on the Voldemort key-value store. Our experiments with deployment on Amazon AWS EC2 instances show that using eventual consistency with monitoring can provide a 50–80% increase in throughput when compared with sequential consistency. We also observe that the overhead of the monitoring itself was low (typically less than 4%) and the latency of detecting violations was small. In particular, in a scenario designed to intentionally cause a large number of violations, more than 99.9% of violations were detected in less than 50 ms in regional networks (all clients and servers in the same Amazon AWS region) and in less than 3 s in global networks.We find that for some applications, frequent rollback can cause the program using eventual consistency to effectively stall. We propose alternate mechanisms for dealing with re-occurring rollbacks. Overall, for applications considered in this paper, we find that even with rollback, eventual consistency provides better performance than using sequential consistency.http://link.springer.com/article/10.1186/s13173-019-0091-9Predicate detectionDistributed debuggingDistributed monitoringDistributed snapshotDistributed key-value storesRollback
collection DOAJ
language English
format Article
sources DOAJ
author Duong Nguyen
Aleksey Charapko
Sandeep S. Kulkarni
Murat Demirbas
spellingShingle Duong Nguyen
Aleksey Charapko
Sandeep S. Kulkarni
Murat Demirbas
Using weaker consistency models with monitoring and recovery for improving performance of key-value stores
Journal of the Brazilian Computer Society
Predicate detection
Distributed debugging
Distributed monitoring
Distributed snapshot
Distributed key-value stores
Rollback
author_facet Duong Nguyen
Aleksey Charapko
Sandeep S. Kulkarni
Murat Demirbas
author_sort Duong Nguyen
title Using weaker consistency models with monitoring and recovery for improving performance of key-value stores
title_short Using weaker consistency models with monitoring and recovery for improving performance of key-value stores
title_full Using weaker consistency models with monitoring and recovery for improving performance of key-value stores
title_fullStr Using weaker consistency models with monitoring and recovery for improving performance of key-value stores
title_full_unstemmed Using weaker consistency models with monitoring and recovery for improving performance of key-value stores
title_sort using weaker consistency models with monitoring and recovery for improving performance of key-value stores
publisher SpringerOpen
series Journal of the Brazilian Computer Society
issn 0104-6500
1678-4804
publishDate 2019-10-01
description Abstract Consistency properties provided by most key-value stores can be classified into sequential consistency and eventual consistency. The former is easier to program with but suffers from lower performance whereas the latter suffers from potential anomalies while providing higher performance. We focus on the problem of what a designer should do if he/she has an algorithm that works correctly with sequential consistency but is faced with an underlying key-value store that provides a weaker (e.g., eventual or causal) consistency. We propose a detect-rollback based approach: The designer identifies a correctness predicate, say P, and continues to run the protocol, as our system monitors P. If P is violated (because the underlying key-value store provides a weaker consistency), the system rolls back and resumes the computation at a state where P holds.We evaluate this approach with graph-based applications running on the Voldemort key-value store. Our experiments with deployment on Amazon AWS EC2 instances show that using eventual consistency with monitoring can provide a 50–80% increase in throughput when compared with sequential consistency. We also observe that the overhead of the monitoring itself was low (typically less than 4%) and the latency of detecting violations was small. In particular, in a scenario designed to intentionally cause a large number of violations, more than 99.9% of violations were detected in less than 50 ms in regional networks (all clients and servers in the same Amazon AWS region) and in less than 3 s in global networks.We find that for some applications, frequent rollback can cause the program using eventual consistency to effectively stall. We propose alternate mechanisms for dealing with re-occurring rollbacks. Overall, for applications considered in this paper, we find that even with rollback, eventual consistency provides better performance than using sequential consistency.
topic Predicate detection
Distributed debugging
Distributed monitoring
Distributed snapshot
Distributed key-value stores
Rollback
url http://link.springer.com/article/10.1186/s13173-019-0091-9
work_keys_str_mv AT duongnguyen usingweakerconsistencymodelswithmonitoringandrecoveryforimprovingperformanceofkeyvaluestores
AT alekseycharapko usingweakerconsistencymodelswithmonitoringandrecoveryforimprovingperformanceofkeyvaluestores
AT sandeepskulkarni usingweakerconsistencymodelswithmonitoringandrecoveryforimprovingperformanceofkeyvaluestores
AT muratdemirbas usingweakerconsistencymodelswithmonitoringandrecoveryforimprovingperformanceofkeyvaluestores
_version_ 1721554288712351744