TY - GEN
T1 - Idempotent Distributed Counters Using a Forgetful Bloom Filter
AU - Subramanyam, Rajath
AU - Gupta, Indranil
AU - Leslie, Luke M.
AU - Wang, Wenting
N1 - Publisher Copyright:
© 2015 IEEE.
PY - 2015/10/28
Y1 - 2015/10/28
N2 - Distributed key-value stores power the backend of high-performance web services and cloud computing applications. Key-value stores such as Cassandra rely heavily on counters to keep track of the occurrences of various kinds of events. However, today's implementations of counters do not provide exactly-once semantics. A typical scenario is that a client requests a counter increment, times out waiting for a response, and creates a duplicate request, thus resulting in a double increment on the server side. In this paper, we address this problem by presenting, analyzing, and evaluating a novel server-side data structure called the Forgetful Bloom Filter (FBF). Like a traditional Bloom filter, an FBF is a compact representation of a set of elements (e.g., client requests). However, an FBF is more powerful than a Bloom filter in two aspects: i) it can forget older elements (e.g., requests that are too old to apply), and ii) it is self-adapting under a varying workload. We also present an adaptive variant of FBF that adapts itself to meet a desired false positive rate-thus the error achieved in the counter can be bounded even as the workload changes. We present experimental results from a prototype implementation of FBFs and discuss the implications for a key-value store such as Cassandra. Our results show that the FBF is highly accurate in maintaining correct counter values.
AB - Distributed key-value stores power the backend of high-performance web services and cloud computing applications. Key-value stores such as Cassandra rely heavily on counters to keep track of the occurrences of various kinds of events. However, today's implementations of counters do not provide exactly-once semantics. A typical scenario is that a client requests a counter increment, times out waiting for a response, and creates a duplicate request, thus resulting in a double increment on the server side. In this paper, we address this problem by presenting, analyzing, and evaluating a novel server-side data structure called the Forgetful Bloom Filter (FBF). Like a traditional Bloom filter, an FBF is a compact representation of a set of elements (e.g., client requests). However, an FBF is more powerful than a Bloom filter in two aspects: i) it can forget older elements (e.g., requests that are too old to apply), and ii) it is self-adapting under a varying workload. We also present an adaptive variant of FBF that adapts itself to meet a desired false positive rate-thus the error achieved in the counter can be bounded even as the workload changes. We present experimental results from a prototype implementation of FBFs and discuss the implications for a key-value store such as Cassandra. Our results show that the FBF is highly accurate in maintaining correct counter values.
UR - http://www.scopus.com/inward/record.url?scp=84962129722&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84962129722&partnerID=8YFLogxK
U2 - 10.1109/ICCAC.2015.30
DO - 10.1109/ICCAC.2015.30
M3 - Conference contribution
AN - SCOPUS:84962129722
T3 - Proceedings - 2015 International Conference on Cloud and Autonomic Computing, ICCAC 2015
SP - 113
EP - 124
BT - Proceedings - 2015 International Conference on Cloud and Autonomic Computing, ICCAC 2015
PB - Institute of Electrical and Electronics Engineers Inc.
T2 - International Conference on Cloud and Autonomic Computing, ICCAC 2015
Y2 - 21 September 2015 through 25 September 2015
ER -