{"id":349,"date":"2021-08-31T14:39:27","date_gmt":"2021-08-31T14:39:27","guid":{"rendered":"https:\/\/fde.cat\/?p=349"},"modified":"2021-08-31T14:39:27","modified_gmt":"2021-08-31T14:39:27","slug":"ramp-tao-layering-atomic-transactions-on-facebooks-online-graph-store","status":"publish","type":"post","link":"https:\/\/fde.cat\/index.php\/2021\/08\/31\/ramp-tao-layering-atomic-transactions-on-facebooks-online-graph-store\/","title":{"rendered":"RAMP-TAO: Layering atomic transactions on Facebook\u2019s online graph store"},"content":{"rendered":"<h2><span>What the research is:\u00a0<\/span><\/h2>\n<p><span>RAMP-TAO is a new protocol that improves the developer experience on <\/span><a href=\"https:\/\/engineering.fb.com\/2013\/06\/25\/core-data\/tao-the-power-of-the-graph\/\"><span>TAO<\/span><\/a><span>, Facebook\u2019s online social graph store, by providing stronger transactional guarantees. It is the first protocol to provide transactional semantics over an eventually consistent massive-scale data store while still preserving the system\u2019s overall reliability and performance. RAMP-TAO enables an intuitive read transaction API, so developers do not have to investigate and handle rare anomalies.<\/span><\/p>\n<p><span>Our research has demonstrated that RAMP-TAO can be feasibly deployed in production with 0.42 percent memory overhead and enables the vast majority (over 99.9 percent) of reads to complete in one round-trip to the local cache with tail latency on par with existing TAO reads.<\/span><\/p>\n<h2><span>How it works:\u00a0\u00a0<\/span><\/h2>\n<p><span>RAMP-TAO draws inspiration from the <\/span><a href=\"https:\/\/people.eecs.berkeley.edu\/~alig\/papers\/ramp.pdf\"><span>Read Atomic Multi-Partition (RAMP) protocols<\/span><\/a><span>, which prevent fractured reads but impose unacceptably high performance and storage overheads for TAO.<\/span><\/p>\n<p><span>The RAMP-TAO protocol provides stronger guarantees by layering them on top of TAO and is similar in spirit to the <\/span><a href=\"https:\/\/people.eecs.berkeley.edu\/~alig\/papers\/bolt-on-causal-consistency.pdf\"><span>\u201cbolt-on\u201d approach<\/span><\/a><span>. Since TAO, like most systems, ensures that all data is eventually consistent, we only need to guard against fractured reads for recent, transactionally updated data. We leverage this knowledge to minimize performance and storage overheads, especially for the existing TAO workloads that are not transactional.<\/span><\/p>\n<\/p>\n<h2><span>Why it matters:\u00a0<\/span><\/h2>\n<p><span>TAO serves billions of reads and millions of writes per second and supports many of Facebook\u2019s applications. It has traditionally prioritized availability and scalability to serve its large, read-dominant workloads. By layering stronger transactional guarantees on top of the existing system, we can provide more intuitive system behavior while retaining its reliability and efficiency. This strategy also enables RAMP-TAO to be cache-friendly, hotspot tolerant, and extensible to different data stores. Moreover, we incur overhead only for applications that opt in, rather than causing every application to take a performance hit.<\/span><\/p>\n<p><span>Although we focus on TAO in this work, these properties are crucial to large-scale, read-optimized systems. Our layered approach can be a practical solution for other systems, many of which have sought to strengthen their guarantees.\u00a0<\/span><\/p>\n<h2><span>Read the full paper:<\/span><\/h2>\n<p><a href=\"http:\/\/www.vldb.org\/pvldb\/vol14\/p3014-cheng.pdf\"><span>RAMP-TAO: Layering atomic transactions on Facebook\u2019s online TAO data store<\/span><\/a><\/p>\n<p>The post <a href=\"https:\/\/engineering.fb.com\/2021\/08\/18\/core-data\/ramp-tao\/\">RAMP-TAO: Layering atomic transactions on Facebook\u2019s online graph store<\/a> appeared first on <a href=\"https:\/\/engineering.fb.com\/\">Facebook Engineering<\/a>.<\/p>\n<p><a href=\"https:\/\/engineering.fb.com\/2021\/08\/18\/core-data\/ramp-tao\/\">Read More<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>What the research is:\u00a0 RAMP-TAO is a new protocol that improves the developer experience on TAO, Facebook\u2019s online social graph store, by providing stronger transactional guarantees. It is the first protocol to provide transactional semantics over an eventually consistent massive-scale data store while still preserving the system\u2019s overall reliability and performance. RAMP-TAO enables an intuitive&hellip; <a class=\"more-link\" href=\"https:\/\/fde.cat\/index.php\/2021\/08\/31\/ramp-tao-layering-atomic-transactions-on-facebooks-online-graph-store\/\">Continue reading <span class=\"screen-reader-text\">RAMP-TAO: Layering atomic transactions on Facebook\u2019s online graph store<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":"","footnotes":""},"categories":[7],"tags":[],"class_list":["post-349","post","type-post","status-publish","format-standard","hentry","category-technology","entry"],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":629,"url":"https:\/\/fde.cat\/index.php\/2022\/09\/07\/open-sourcing-taobench-an-end-to-end-social-network-benchmark\/","url_meta":{"origin":349,"position":0},"title":"Open-sourcing TAOBench: An end-to-end social network benchmark","date":"September 7, 2022","format":false,"excerpt":"What the research is: The continued emergence of large social network applications has introduced a scale of data and query volume that challenges the limits of existing data stores. However, few benchmarks accurately simulate these request patterns, leaving researchers in short supply of tools to evaluate and improve upon these\u2026","rel":"","context":"In &quot;Technology&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":779,"url":"https:\/\/fde.cat\/index.php\/2023\/10\/31\/automating-data-removal\/","url_meta":{"origin":349,"position":1},"title":"Automating data removal","date":"October 31, 2023","format":false,"excerpt":"Meta\u2019s Systematic Code and Asset Removal Framework (SCARF) has a subsystem for identifying and removing unused data types. SCARF scans production data systems to identify tables or assets that are unused and safely removes them. SCARF avoids tedious manual work and ensures that product data is correctly removed when a\u2026","rel":"","context":"In &quot;Technology&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":596,"url":"https:\/\/fde.cat\/index.php\/2022\/06\/08\/cache-made-consistent-metas-cache-invalidation-solution\/","url_meta":{"origin":349,"position":2},"title":"Cache made consistent: Meta\u2019s cache invalidation solution","date":"June 8, 2022","format":false,"excerpt":"Caches help reduce latency, scale read-heavy workloads, and save cost. They are literally everywhere. Caches run on your phone and in your browser. For example, CDNs and DNS are essentially geo-replicated caches. It\u2019s thanks to many caches working behind the scenes that you can read this blog post right now.\u2026","rel":"","context":"In &quot;Technology&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":180,"url":"https:\/\/fde.cat\/index.php\/2020\/12\/16\/a-b-testing-at-linkedin-assigning-variants-at-scale\/","url_meta":{"origin":349,"position":3},"title":"A\/B testing at LinkedIn: Assigning variants at scale","date":"December 16, 2020","format":false,"excerpt":"Co-authors: Alexander Ivaniuk and Weitao Duan Editor\u2019s note: This blog post is the second in a series providing an overview and history of LinkedIn\u2019s experimentation platform. The previous post on the history of LinkedIn\u2019s experimentation infrastructure can be found here. Introducing variant assignment Previously on the blog, we\u2019ve shared a\u2026","rel":"","context":"In &quot;External&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":496,"url":"https:\/\/fde.cat\/index.php\/2021\/10\/26\/kangaroo-a-new-flash-cache-optimized-for-tiny-objects\/","url_meta":{"origin":349,"position":4},"title":"Kangaroo: A new flash cache optimized for tiny objects","date":"October 26, 2021","format":false,"excerpt":"What the research is:\u00a0 Kangaroo is a new flash cache that enables more efficient caching of tiny objects (objects that are ~100 bytes or less) and overcomes the challenges presented by existing flash cache designs. Since Kangaroo is implemented within CacheLib, Facebook\u2019s open source caching engine, developers can use Kangaroo\u2026","rel":"","context":"In &quot;Technology&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":307,"url":"https:\/\/fde.cat\/index.php\/2021\/08\/31\/running-border-gateway-protocol-in-large-scale-data-centers\/","url_meta":{"origin":349,"position":5},"title":"Running Border Gateway Protocol in large-scale data centers","date":"August 31, 2021","format":false,"excerpt":"What the research is: A first-of-its-kind study that details the scalable design, software implementation, and operations of Facebook\u2019s data center routing design, based on Border Gateway Protocol (BGP). BGP was originally designed to interconnect autonomous internet service providers (ISPs) on the global internet. Highly scalable and widely acknowledged as an\u2026","rel":"","context":"In &quot;Technology&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/fde.cat\/index.php\/wp-json\/wp\/v2\/posts\/349","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fde.cat\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fde.cat\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fde.cat\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fde.cat\/index.php\/wp-json\/wp\/v2\/comments?post=349"}],"version-history":[{"count":1,"href":"https:\/\/fde.cat\/index.php\/wp-json\/wp\/v2\/posts\/349\/revisions"}],"predecessor-version":[{"id":361,"href":"https:\/\/fde.cat\/index.php\/wp-json\/wp\/v2\/posts\/349\/revisions\/361"}],"wp:attachment":[{"href":"https:\/\/fde.cat\/index.php\/wp-json\/wp\/v2\/media?parent=349"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fde.cat\/index.php\/wp-json\/wp\/v2\/categories?post=349"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fde.cat\/index.php\/wp-json\/wp\/v2\/tags?post=349"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}