{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,6,11]],"date-time":"2026-06-11T20:55:10Z","timestamp":1781211310457,"version":"3.54.1"},"reference-count":60,"publisher":"Association for Computing Machinery (ACM)","issue":"6","content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Proc. VLDB Endow."],"published-print":{"date-parts":[[2019,2]]},"abstract":"<jats:p>In this paper, we describe how we extended a distributed key-value store called Anna into an autoscaling, multi-tier service for the cloud. In its extended form, Anna is designed to overcome the narrow cost-performance limitations typical of current cloud storage systems. We describe three key aspects of Anna's new design: multi-master selective replication of hot keys, a vertical tiering of storage layers with different cost-performance tradeoffs, and horizontal elasticity of each tier to add and remove nodes in response to load dynamics. Anna's policy engine uses these mechanisms to balance service-level objectives around cost, latency and fault tolerance. Experimental results explore the behavior of Anna's mechanisms and policy, exhibiting orders of magnitude efficiency improvements over both commodity cloud KVS services and research systems.<\/jats:p>","DOI":"10.14778\/3311880.3311881","type":"journal-article","created":{"date-parts":[[2019,3,26]],"date-time":"2019-03-26T20:22:15Z","timestamp":1553631735000},"page":"624-638","source":"Crossref","is-referenced-by-count":32,"title":["Autoscaling tiered cloud storage in Anna"],"prefix":"10.14778","volume":"12","author":[{"given":"Chenggang","family":"Wu","sequence":"first","affiliation":[{"name":"UC Berkeley"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Vikram","family":"Sreekanti","sequence":"additional","affiliation":[{"name":"UC Berkeley"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Joseph M.","family":"Hellerstein","sequence":"additional","affiliation":[{"name":"UC Berkeley"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2019,2]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1109\/MC.2012.33"},{"key":"e_1_2_1_2_1","first-page":"331","volume-title":"Mobile Computing","author":"Acharya S.","year":"1995"},{"key":"e_1_2_1_3_1","unstructured":"Akamai. https:\/\/www.akamai.com.  Akamai. https:\/\/www.akamai.com."},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/2494621.2494630"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/1851182.1851192"},{"key":"e_1_2_1_6_1","unstructured":"Amazon Web Services. Amazon dynamodb developer guide (api version 2012-08-10) Aug. 2012. https:\/\/docs.aws.amazon.com\/amazondynamodb\/latest\/developerguide\/HowItWorks.ProvisionedThroughput.html. Accessed May 3 2018.  Amazon Web Services. Amazon dynamodb developer guide (api version 2012-08-10) Aug. 2012. https:\/\/docs.aws.amazon.com\/amazondynamodb\/latest\/developerguide\/HowItWorks.ProvisionedThroughput.html. Accessed May 3 2018."},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/1807128.1807164"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/1966445.1966472"},{"key":"e_1_2_1_9_1","unstructured":"Amazon web services. https:\/\/aws.amazon.com.  Amazon web services. https:\/\/aws.amazon.com."},{"key":"e_1_2_1_10_1","unstructured":"Microsoft azure cloud computing platform. http:\/\/azure.microsoft.com.  Microsoft azure cloud computing platform. http:\/\/azure.microsoft.com."},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.14778\/2732232.2732237"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/1556154.1556172"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/1835698.1835701"},{"key":"e_1_2_1_14_1","unstructured":"Apache cassandra. http:\/\/cassandra.apache.org.  Apache cassandra. http:\/\/cassandra.apache.org."},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1007\/s11227-016-1827-3"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/2391229.2391230"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/971701.50213"},{"key":"e_1_2_1_18_1","first-page":"161","volume-title":"Proceedings of the 5th USENIX Symposium on Networked Systems Design and Implementation","author":"Cully B.","year":"2008"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/1294261.1294281"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/43921.43922"},{"key":"e_1_2_1_21_1","unstructured":"Kubernetes - build ship and run any app anywhere. https:\/\/www.docker.com.  Kubernetes - build ship and run any app anywhere. https:\/\/www.docker.com."},{"key":"e_1_2_1_22_1","volume-title":"Proceedings of the 8th Biennial Conference on Innovative Data Systems Research, CIDR '17","author":"Faleiro J. M.","year":"2017"},{"key":"e_1_2_1_23_1","unstructured":"Firecracker. https:\/\/firecracker-microvm.github.io.  Firecracker. https:\/\/firecracker-microvm.github.io."},{"key":"e_1_2_1_24_1","unstructured":"Google cloud platform. https:\/\/cloud.google.com.  Google cloud platform. https:\/\/cloud.google.com."},{"key":"e_1_2_1_25_1","first-page":"261","volume-title":"Cidr","volume":"11","author":"Herodotou H.","year":"2011"},{"key":"e_1_2_1_26_1","volume-title":"USENIX annual technical conference","author":"Hunt P.","year":"2010"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/3035918.3064023"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/258533.258660"},{"key":"e_1_2_1_29_1","first-page":"485","volume-title":"13th USENIX Symposium on Networked Systems Design and Implementation (NSDI 16)","author":"Khandelwal A.","year":"2016"},{"key":"e_1_2_1_30_1","unstructured":"Kubernetes: Production-grade container orchestration. http:\/\/kubernetes.io.  Kubernetes: Production-grade container orchestration. http:\/\/kubernetes.io."},{"key":"e_1_2_1_31_1","unstructured":"Kubernetes. Set up high-availability kubernetes masters. https:\/\/kubernetes.io\/docs\/tasks\/administer-cluster\/highly-available-master\/. Accessed May 3 2018.  Kubernetes. Set up high-availability kubernetes masters. https:\/\/kubernetes.io\/docs\/tasks\/administer-cluster\/highly-available-master\/. Accessed May 3 2018."},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/2723372.2742788"},{"key":"e_1_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/1519065.1519067"},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/279227.279229"},{"key":"e_1_2_1_35_1","doi-asserted-by":"crossref","unstructured":"K. G. Larsen J. Nelson H. L. Nguyen and M. Thorup. Heavy hitters via cluster-preserving clustering. CoRR abs\/1604.01357 2016.  K. G. Larsen J. Nelson H. L. Nguyen and M. Thorup. Heavy hitters via cluster-preserving clustering. CoRR abs\/1604.01357 2016.","DOI":"10.1109\/FOCS.2016.16"},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/2670979.2670985"},{"key":"e_1_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/66926.66956"},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1145\/3183713.3196908"},{"key":"e_1_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1145\/1066157.1066191"},{"key":"e_1_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1145\/2168836.2168855"},{"key":"e_1_2_1_41_1","unstructured":"Microsoft Corp. Delivering a great startup and shutdown experience May 2017. https:\/\/docs.microsoft.com\/en-us\/windows-hardware\/test\/weg\/delivering-a-great-startup-and-shutdown-experience. Accessed May 3 2018.  Microsoft Corp. Delivering a great startup and shutdown experience May 2017. https:\/\/docs.microsoft.com\/en-us\/windows-hardware\/test\/weg\/delivering-a-great-startup-and-shutdown-experience. Accessed May 3 2018."},{"key":"e_1_2_1_42_1","volume-title":"CIDR 2017, Conference on Innovative Data Systems Research","author":"Pavlo A.","year":"2017"},{"key":"e_1_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-45172-3_6"},{"key":"e_1_2_1_44_1","doi-asserted-by":"publisher","DOI":"10.1145\/964723.383072"},{"key":"e_1_2_1_45_1","unstructured":"A. Ross A. Hilton and D. Rensin. Slos slis slas oh my - cre life lessons january 2017. https:\/\/cloudplatform.googleblog.com\/2017\/01\/availability-part-deux--CRE-life-lessons.html. Accessed May 3 2018.  A. Ross A. Hilton and D. Rensin. Slos slis slas oh my - cre life lessons january 2017. https:\/\/cloudplatform.googleblog.com\/2017\/01\/availability-part-deux--CRE-life-lessons.html. Accessed May 3 2018."},{"key":"e_1_2_1_46_1","doi-asserted-by":"publisher","DOI":"10.1109\/CLOUD.2011.42"},{"key":"e_1_2_1_47_1","doi-asserted-by":"crossref","unstructured":"M. Shapiro N. Pregui\u00e7a C. Baquero and M. Zawirski. Conflict-free replicated data types. In X. D\u00e9fago F. Petit and V. Villain editors Stabilization Safety and Security of Distributed Systems pages 386--400 Berlin Heidelberg 2011. Springer Berlin Heidelberg.   M. Shapiro N. Pregui\u00e7a C. Baquero and M. Zawirski. Conflict-free replicated data types. In X. D\u00e9fago F. Petit and V. Villain editors Stabilization Safety and Security of Distributed Systems pages 386--400 Berlin Heidelberg 2011. Springer Berlin Heidelberg.","DOI":"10.1007\/978-3-642-24550-3_29"},{"key":"e_1_2_1_48_1","doi-asserted-by":"publisher","DOI":"10.1109\/MSST.2010.5496972"},{"key":"e_1_2_1_49_1","doi-asserted-by":"publisher","DOI":"10.1145\/383059.383071"},{"key":"e_1_2_1_50_1","doi-asserted-by":"publisher","DOI":"10.5555\/645914.671639"},{"key":"e_1_2_1_51_1","unstructured":"Storm. https:\/\/github.com\/apache\/storm.  Storm. https:\/\/github.com\/apache\/storm."},{"key":"e_1_2_1_52_1","unstructured":"Swarmify. https:\/\/swarmify.com.  Swarmify. https:\/\/swarmify.com."},{"key":"e_1_2_1_53_1","doi-asserted-by":"publisher","DOI":"10.1145\/1966445.1966461"},{"key":"e_1_2_1_54_1","doi-asserted-by":"publisher","DOI":"10.1145\/3035918.3064029"},{"key":"e_1_2_1_55_1","doi-asserted-by":"publisher","DOI":"10.14778\/1920841.1920907"},{"key":"e_1_2_1_56_1","volume-title":"Business Intelligence for the Real-Time Enterprise - Second International Workshop, BIRTE 2008","author":"Waas F. M.","year":"2008"},{"key":"e_1_2_1_57_1","doi-asserted-by":"publisher","DOI":"10.1145\/225535.225539"},{"key":"e_1_2_1_58_1","first-page":"17","volume-title":"NSDI","volume":"7","author":"Wood T.","year":"2007"},{"key":"e_1_2_1_59_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICDE.2018.00044"},{"key":"e_1_2_1_60_1","first-page":"243","volume-title":"Proc. of the 12th USENIX FAST","author":"Xu L.","year":"2014"}],"container-title":["Proceedings of the VLDB Endowment"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.14778\/3311880.3311881","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2022,12,28]],"date-time":"2022-12-28T09:19:21Z","timestamp":1672219161000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.14778\/3311880.3311881"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2019,2]]},"references-count":60,"journal-issue":{"issue":"6","published-print":{"date-parts":[[2019,2]]}},"alternative-id":["10.14778\/3311880.3311881"],"URL":"https:\/\/doi.org\/10.14778\/3311880.3311881","relation":{},"ISSN":["2150-8097"],"issn-type":[{"value":"2150-8097","type":"print"}],"subject":[],"published":{"date-parts":[[2019,2]]}}}