Academia.eduAcademia.edu

Outline

Existential consistency

2015, Proceedings of the 25th Symposium on Operating Systems Principles

https://doi.org/10.1145/2815400.2815426

Abstract

Replicated storage for large Web services faces a trade-off between stronger forms of consistency and higher performance properties. Stronger consistency prevents anomalies, i.e., unexpected behavior visible to users, and reduces programming complexity. There is much recent work on improving the performance properties of systems with stronger consistency, yet the flip-side of this trade-off remains elusively hard to quantify. To the best of our knowledge, no prior work does so for a large, production Web service. We use measurement and analysis of requests to Facebook's TAO system to quantify how often anomalies happen in practice, i.e., when results returned by eventually consistent TAO differ from what is allowed by stronger consistency models. For instance, our analysis shows that 0.0004% of reads to vertices would return different results in a linearizable system. This in turn gives insight into the benefits of stronger consistency; 0.0004% of reads are potential anomalies that a linearizable system would prevent. We directly study local consistency models-i.e., those we can analyze using requests to a sample of objects-and use the relationships between models to infer bounds on the others. We also describe a practical consistency monitoring system that tracks φ-consistency, a new consistency metric ideally suited for health monitoring. In addition, we give insight into the increased programming complexity of weaker consistency by discussing bugs our monitoring uncovered, and anti-patterns we teach developers to avoid.

References (55)

  1. AHAMAD, M., NEIGER, G., KOHLI, P., BURNS, J., AND HUTTO, P. Causal memory: Definitions, implementation, and programming. Distributed Computing 9, 1 (1995).
  2. AJOUX, P., BRONSON, N., KUMAR, S., LLOYD, W., AND VEERARAGHAVAN, K. Challenges to adopting stronger con- sistency at scale. In HotOS (2015).
  3. ALMEIDA, S., LEITAO, J., AND RODRIGUES, L. Chainreac- tion: a causal+ consistent datastore based on chain replication. In EuroSys (2013).
  4. ANDERSON, E., LI, X., SHAH, M. A., TUCEK, J., AND WYLIE, J. J. What consistency does your key-value store actually provide? In HotDep (2010).
  5. ATTIYA, H., AND WELCH, J. L. Sequential consistency versus linearizability. ACM TOCS 12, 2 (1994).
  6. BAILIS, P., FEKETE, A., GHODSI, A., HELLERSTEIN, J. M., AND STOICA, I. Scalable atomic visibility with RAMP transactions. In SIGMOD (2014).
  7. BAILIS, P., GHODSI, A., HELLERSTEIN, J. M., AND STO- ICA, I. Bolt-on causal consistency. In SIGMOD (2013).
  8. BAILIS, P., VENKATARAMAN, S., FRANKLIN, M. J., HELLERSTEIN, J. M., AND STOICA, I. Probabilistically bounded staleness for practical partial quorums. VLDB (2012).
  9. BAKER, J., BOND, C., CORBETT, J. C., FURMAN, J., KHORLIN, A., LARSON, J., LEON, J.-M., LI, Y., LLOYD, A., AND YUSHPRAKH, V. Megastore: Providing scalable, highly available storage for interactive services. In CIDR (2011).
  10. BARAHMAND, S., AND GHANDEHARIZADEH, S. BG: A benchmark to evaluate interactive social networking actions. In CIDR (2013).
  11. BERENSON, H., BERNSTEIN, P., GRAY, J., MELTON, J., O'NEIL, E., AND O'NEIL, P. A critique of ANSI SQL isolation levels. In ACM SIGMOD Record (1995).
  12. BERNSTEIN, P. A., AND GOODMAN, N. Concurrency con- trol in distributed database systems. ACM Computer Surveys (1981).
  13. BREWER, E. Towards robust distributed systems. PODC Keynote, 2000.
  14. BRONSON, N., AMSDEN, Z., CABRERA, G., CHAKKA, P., DIMOV, P., DING, H., FERRIS, J., GIARDULLO, A., KULKARNI, S., LI, H., MARCHUKOV, M., PETROV, D., PUZAR, L., SONG, Y. J., AND VENKATARAMANI, V. Tao: Facebook's distributed data store for the social graph. In USENIX ATC (2013).
  15. CHANG, F., DEAN, J., GHEMAWAT, S., HSIEH, W. C., WALLACH, D. A., BURROWS, M., CHANDRA, T., FIKES, A., AND GRUBER, R. E. Bigtable: A distributed storage sys- tem for structured data. ACM TOCS 26, 2 (2008).
  16. COOPER, B. F., RAMAKRISHNAN, R., SRIVASTAVA, U., SILBERSTEIN, A., BOHANNON, P., JACOBSEN, H.-A., PUZ, N., WEAVER, D., AND YERNENI, R. PNUTS: Ya- hoo!'s hosted data serving platform. In VLDB (2008).
  17. CORBETT, J. C., DEAN, J., EPSTEIN, M., FIKES, A., FROST, C., FURMAN, J., GHEMAWAT, S., GUBAREV, A., HEISER, C., HOCHSCHILD, P., HSIEH, W., KANTHAK, S., KOGAN, E., LI, H., LLOYD, A., MELNIK, S., MWAURA, D., NAGLE, D., QUINLAN, S., RAO, R., ROLIG, L., SAITO, Y., SZYMANIAK, M., TAYLOR, C., WANG, R., AND WOOD- FORD, D. Spanner: Google's globally-distributed database. In OSDI (2012).
  18. COWLING, J., AND LISKOV, B. Granola: low-overhead dis- tributed transaction coordination. In USENIX ATC (2012).
  19. DECANDIA, G., HASTORUN, D., JAMPANI, M., KAKULA- PATI, G., LAKSHMAN, A., PILCHIN, A., SIVASUBRAMA- NIAN, S., VOSSHALL, P., AND VOGELS, W. Dynamo: Ama- zon's highly available key-value store. In SOSP (2007).
  20. DEY, A., FEKETE, A., NAMBIAR, R., AND ROHM, U. YCSB+T: Benchmarking web-scale transactional databases. In ICDEW (2014).
  21. DU, J., ELNIKETY, S., ROY, A., AND ZWAENEPOEL, W. Orbe: Scalable causal consistency using dependency matrices and physical clocks. In SOCC (2013).
  22. DU, J., IORGULESCU, C., ROY, A., AND ZWAENEPOEL, W. Gentlerain: Cheap and scalable causal consistency with physical clocks. In SOCC (2014).
  23. ESCRIVA, R., WONG, B., AND SIRER, E. G. HyperKV: A distributed, searchable key-value store for cloud computing. In SIGCOMM (2012).
  24. FITZPATRICK, B. Memcached: a distributed memory object caching system. http://memcached.org/, 2014.
  25. GIFFORD, D. K. Information Storage in a Decentralized Computer System. PhD thesis, Stanford University, 1981.
  26. GILBERT, S., AND LYNCH, N. Brewer's conjecture and the feasibility of consistent, available, partition-tolerant web services. ACM SIGACT News (2002).
  27. GLENDENNING, L., BESCHASTNIKH, I., KRISHNA- MURTHY, A., AND ANDERSON, T. Scalable consistency in Scatter. In SOSP (2011).
  28. GOLAB, W., RAHMAN, M. R., AUYOUNG, A., KEETON, K., AND GUPTA, I. Client-centric benchmarking of eventual consistency for cloud storage systems. In ICDCS (2014).
  29. HERLIHY, M. P., AND WING, J. M. Linearizability: A correctness condition for concurrent objects. ACM TOPLAS (1990).
  30. HUANG, Q., GUDMUNDSDOTTIR, H., VIGFUSSON, Y., FREEDMAN, D. A., BIRMAN, K., AND VAN RENESSE, R. Characterizing load imbalance in real-world networked caches. In HotNets (2014).
  31. KRASKA, T., PANG, G., FRANKLIN, M. J., MADDEN, S., AND FEKETE, A. MDCC: Multi-data center consistency. In EuroSys (2013).
  32. LAKSHMAN, A., AND MALIK, P. Cassandra -a decentral- ized structured storage system. In LADIS (Oct. 2009).
  33. LAMPORT, L. Time, clocks, and the ordering of events in a distributed system. Comm. ACM (1978).
  34. LAMPORT, L. How to make a multiprocessor computer that correctly executes multiprocess programs. IEEE Trans. Com- puter (1979).
  35. LAMPORT, L. On interprocess communication. Part I: Basic formalism and Part II: Algorithms. Distributed Computing (1986).
  36. LI, C., PORTO, D., CLEMENT, A., GEHRKE, J., PREGUIC ¸A, N., AND RODRIGUES, R. Making geo-replicated systems fast as possible, consistent when necessary. In OSDI (2012).
  37. LIPTON, R. J., AND SANDBERG, J. S. PRAM: A scalable shared memory. Tech. Rep. TR-180-88, Princeton Univ., Dept. Comp. Sci., 1988.
  38. LLOYD, W., FREEDMAN, M. J., KAMINSKY, M., AND AN- DERSEN, D. G. Don't settle for eventual: Scalable causal con- sistency for wide-area storage with COPS. In SOSP (2011).
  39. LLOYD, W., FREEDMAN, M. J., KAMINSKY, M., AND AN- DERSEN, D. G. Stronger semantics for low-latency geo- replicated storage. In NSDI (2013).
  40. MILLS, D., MARTIN, J., BURBANK, J., AND KASCH, W. Network time protocol version 4: Protocol and algorithms specification. Internet Engineering Task Force (IETF) (2010).
  41. MU, S., CUI, Y., ZHANG, Y., LLOYD, W., AND LI, J. Ex- tracting more concurrency from distributed transactions. In OSDI (2014).
  42. NISHTALA, R., FUGAL, H., GRIMM, S., KWIATKOWSKI, M., LEE, H., LI, H. C., MCELROY, R., PALECZNY, M., PEEK, D., SAAB, P., STAFFORD, D., TUNG, T., AND VENKATARAMANI, V. Scaling memcache at Facebook. In NSDI (2013).
  43. OUSTERHOUT, J., AGRAWAL, P., ERICKSON, D., KOZYRAKIS, C., LEVERICH, J., MAZI ÈRES, D., MI- TRA, S., NARAYANAN, A., ROSENBLUM, M., RUMBLE, S. M., STRATMANN, E., AND STUTSMAN, R. The case for RAMCloud. ACM SIGOPS Operating Systems Review (2010).
  44. PAPADIMITRIOU, C. H. The serializability of concurrent database updates. Journal of the ACM (1979).
  45. PATIL, S., POLTE, M., REN, K., TANTISIRIROJ, W., XIAO, L., L'OPEZ, J., GIBSON, G., FUCHS, A., AND RINALDI, B. YCSB++: benchmarking and performance debugging ad- vanced features in scalable table stores. In SOCC (2011).
  46. RAHMAN, M. R., GOLAB, W., AUYOUNG, A., KEETON, K., AND WYLIE, J. J. Toward a principled framework for benchmarking consistency. In HotDep (2012).
  47. SHARMA, Y., AJOUX, P., ANG, P., CALLIES, D., CHOUD- HARY, A., DEMAILLY, L., FERSCH, T., GUZ, L. A., KO- TULSKI, A., KULKARNI, S., KUMAR, S., LI, H., LI, J., MAKEEV, E., PRAKASAM, K., VAN RENESSE, R., ROY, S., SETH, P., SONG, Y. J., VEERARAGHAVAN, K., WESTER, B., AND XIE, P. Wormhole: Reliable pub-sub to support geo- replicated internet services. In NSDI (May 2015).
  48. SHUTE, J., OANCEA, M., ELLNER, S., HANDY, B., ROLLINS, E., SAMWEL, B., VINGRALEK, R., WHIPKEY, C., CHEN, X., JEGERLEHNER, B., LITTLEFIELD, K., AND TONG, P. F1: The fault-tolerant distributed RDBMS support- ing google's ad business. In SIGMOD (2012).
  49. SOVRAN, Y., POWER, R., AGUILERA, M. K., AND LI, J. Transactional storage for geo-replicated systems. In SOSP (2011).
  50. TERRY, D. B., PRABHAKARAN, V., KOTLA, R., BALAKR- ISHNAN, M., AGUILERA, M. K., AND ABU-LIBDEH, H. Consistency-based service level agreements for cloud storage. In SOSP (2013).
  51. THOMSON, A., DIAMOND, T., WENG, S.-C., REN, K., SHAO, P., AND ABADI, D. J. Calvin: fast distributed trans- actions for partitioned database systems. In SIGMOD (2012).
  52. WADA, H., FEKETE, A., ZHAO, L., LEE, K., AND LIU, A. Data consistency properties and the trade-offs in commercial cloud storage: the consumers' perspective. In CIDR (2011).
  53. XIE, C., SU, C., KAPRITSOS, M., WANG, Y., YAGH- MAZADEH, N., ALVISI, L., AND MAHAJAN, P. Salt: com- bining acid and base in a distributed database. In OSDI (2014).
  54. ZELLAG, K., AND KEMME, B. How consistent is your cloud application? In SOCC (2012).
  55. ZHANG, Y., POWER, R., ZHOU, S., SOVRAN, Y., AGUIL- ERA, M. K., AND LI, J. Transaction chains: achieving serial- izability with low latency in geo-distributed storage systems. In SOSP (2013).