Claret Using Data Types for High Contention Distributed Transactions Brandon Holt, Irene Zhang, Dan Ports, Mark Oskin, Luis Ceze PaPoC’15 @ EuroSys
Brandon Holt @holtbg At #EuroSys right now! ••• EuroSys 2015 @EuroSys2015 EuroSys 2015 Co-located workshop: Principles and Practice of Consistency for Distributed Data. papoc.di.uminho.pt ••• 16 9 Ellen DeGeneres @TheEllenShow If only Bradley's arm was longer. Best photo ever. #oscars ••• 2M 3.4M 2 PaPoC’15 @ EuroSys – Claret
{ } author: user:92 post[1003] ⟹ Post Brandon Holt @holtbg content: "If only Bradley’s arm was longer. At #EuroSys right now! Best photo ever. #oscars" ••• EuroSys 2015 @EuroSys2015 EuroSys 2015 Co-located workshop: Principles and Practice of Consistency for Distributed Data. papoc.di.uminho.pt ••• 16 9 Ellen DeGeneres @TheEllenShow If only Bradley's arm was longer. Best photo ever. #oscars ••• 3.4M 2M 3 PaPoC’15 @ EuroSys – Claret
{ } author: user:92 post[1003] ⟹ Post Brandon Holt @holtbg content: "If only Bradley’s arm was longer. At #EuroSys right now! Best photo ever. #oscars" ••• EuroSys 2015 @EuroSys2015 EuroSys 2015 Co-located workshop: Principles and Practice { } of Consistency for Distributed Data. papoc.di.uminho.pt user:43 user:10 ••• 16 9 retweets[1003] ⟹ Set user:29 Ellen DeGeneres @TheEllenShow user:74 If only Bradley's arm was longer. Best photo user:89 ever. #oscars ••• 3.4M 2M 3 PaPoC’15 @ EuroSys – Claret
{ } author: user:92 post[1003] ⟹ Post Brandon Holt @holtbg content: "If only Bradley’s arm was longer. At #EuroSys right now! Best photo ever. #oscars" ••• EuroSys 2015 @EuroSys2015 EuroSys 2015 Co-located workshop: Principles and Practice { } of Consistency for Distributed Data. papoc.di.uminho.pt user:43 user:10 ••• 16 9 retweets[1003] ⟹ Set user:29 Ellen DeGeneres @TheEllenShow user:74 If only Bradley's arm was longer. Best photo user:89 ever. #oscars Retweet retweets[1003].add("user:53") ••• 3.4M 2M 3 PaPoC’15 @ EuroSys – Claret
{ } author: user:92 post[1003] ⟹ Post Brandon Holt @holtbg content: "If only Bradley’s arm was longer. At #EuroSys right now! Best photo ever. #oscars" ••• EuroSys 2015 @EuroSys2015 EuroSys 2015 Co-located workshop: Principles and Practice { } of Consistency for Distributed Data. papoc.di.uminho.pt user:43 user:10 ••• 16 9 retweets[1003] ⟹ Set user:29 Ellen DeGeneres @TheEllenShow user:74 If only Bradley's arm was longer. Best photo user:89 ever. #oscars Retweet retweets[1003].add("user:53") View post ••• 3.4M 2M retweet_count = retweets[1003].size() # ... 3 PaPoC’15 @ EuroSys – Claret
{ } author: user:92 post[1003] ⟹ Post Brandon Holt @holtbg content: "If only Bradley’s arm was longer. At #EuroSys right now! Best photo ever. #oscars" ••• EuroSys 2015 @EuroSys2015 EuroSys 2015 Co-located workshop: Principles and Practice { } of Consistency for Distributed Data. papoc.di.uminho.pt user:43 user:10 ••• 16 9 retweets[1003] ⟹ Set user:29 Ellen DeGeneres @TheEllenShow user:74 How do we make this scale? If only Bradley's arm was longer. Best photo user:89 ever. #oscars Retweet retweets[1003].add("user:53") View post ••• 3.4M 2M retweet_count = retweets[1003].size() # ... 4 PaPoC’15 @ EuroSys – Claret
{ } author: user:92 post[1003] ⟹ Post Brandon Holt @holtbg content: "If only Bradley’s arm was longer. At #EuroSys right now! Best photo ever. #oscars" ••• EuroSys 2015 @EuroSys2015 EuroSys 2015 Co-located workshop: Principles and Practice { } of Consistency for Distributed Data. papoc.di.uminho.pt user:43 user:10 ••• 16 9 retweets[1003] ⟹ Set user:29 Ellen DeGeneres @TheEllenShow user:74 How do we make this scale? If only Bradley's arm was longer. Best photo NoSQL user:89 ever. #oscars Retweet retweets[1003].add("user:53") View post ••• 3.4M 2M retweet_count = retweets[1003].size() # ... 4 PaPoC’15 @ EuroSys – Claret
NoSQL post:1003:author ⟹ 92 Brandon Holt @holtbg post:1003:content ⟹ "If only Bradley’s arm was longer. At #EuroSys right now! Best photo ever. #oscars" ••• EuroSys 2015 @EuroSys2015 retweeters:1003 ⟹ "user29,user:89,user:74, EuroSys 2015 Co-located workshop: Principles and Practice user:10,user:43" of Consistency for Distributed Data. papoc.di.uminho.pt ••• 16 9 Ellen DeGeneres @TheEllenShow If only Bradley's arm was longer. Best photo Retweet ever. #oscars s = get("retweeters:1003") if "user:43" not not in s: s += "user:43" put("retweeters:1003", s) must be atomic View post ••• retweets = get("retweeters:1003") 3.4M 2M # ... which retweets will this contain? 5 PaPoC’15 @ EuroSys – Claret
NoSQL post:1003:author ⟹ 92 Brandon Holt @holtbg post:1003:content ⟹ "If only Bradley’s arm was longer. At #EuroSys right now! Transactions? "Too expensive." Best photo ever. #oscars" ••• EuroSys 2015 @EuroSys2015 "Don’t scale." retweeters:1003 ⟹ "user29,user:89,user:74, EuroSys 2015 Co-located workshop: Principles and Practice user:10,user:43" of Consistency for Distributed Data. papoc.di.uminho.pt What if the datastore knew more? ••• 16 9 Ellen DeGeneres @TheEllenShow More information → more chance for optimization If only Bradley's arm was longer. Best photo Retweet ever. #oscars s = get("retweeters:1003") if "user:43" not not in s: s += "user:43" Opportunity: put("retweeters:1003", s) Use data types provided by the programmer must be atomic View post ••• retweets = get("retweeters:1003") 3.4M 2M # ... which retweets will this contain? 6 PaPoC’15 @ EuroSys – Claret
NoSQL post:1003:author ⟹ 92 Abstract Data Types in NoSQL Brandon Holt @holtbg post:1003:content ⟹ "If only Bradley’s arm was longer. At #EuroSys right now! Best photo ever. #oscars" ••• - programmers express intent through types EuroSys 2015 @EuroSys2015 retweeters:1003 ⟹ "user29,user:89,user:74, EuroSys - flexible data model, no fixed schema 2015 Co-located workshop: Principles and Practice user:10,user:43" of Consistency for Distributed Data. - leverage ADT properties for transaction performance papoc.di.uminho.pt ••• 16 9 - sanely trade off consistency for scalability Ellen DeGeneres @TheEllenShow If only Bradley's arm was longer. Best photo Retweet ever. #oscars s = get("retweeters:1003") if "user:43" not not in s: s += "user:43" put("retweeters:1003", s) must be atomic View post ••• retweets = get("retweeters:1003") 3.4M 2M # ... which retweets will this contain? 7 PaPoC’15 @ EuroSys – Claret
Leveraging Abstract Data Types in NoSQL Commutativity - Transactional boosting - Combining Approximate data types - Bounded inconsistency - Isolated eventual consistency (CRDTs) - Probabilistic data types Evaluation: Claret prototype 8 PaPoC’15 @ EuroSys PaPoC’15 @ EuroSys – Claret
Leveraging Abstract Data Types in NoSQL Commutativity - Transactional boosting - Combining Approximate data types - Bounded inconsistency - Isolated eventual consistency (CRDTs) - Probabilistic data types Evaluation: 9 PaPoC’15 @ EuroSys PaPoC’15 @ EuroSys – Claret
Commutativity { } Brandon Holt @holtbg author: 92 post:1003 ⟹ At #EuroSys right now! content: "If only Bradley’s arm was longer. Best photo ever. #oscars" ••• EuroSys 2015 @EuroSys2015 EuroSys Co-located workshop: Principles and Practice 2015 of Consistency for Distributed Data. user:43 papoc.di.uminho.pt user:10 ••• 16 9 retweeters:1003 ⟹ user:29 Ellen DeGeneres @TheEllenShow If only Bradley's arm was longer. Best photo user:89 user:74 ever. #oscars many reads → okay View post post = Map("post:1003").get() retweets = Set("retweeters:1003").size() # ... ••• 3.4M 2M 11 PaPoC’15 @ EuroSys – Claret
Commutativity { } Brandon Holt @holtbg author: 92 post:1003 ⟹ At #EuroSys right now! content: "If only Bradley’s arm was longer. Best photo ever. #oscars" ••• EuroSys 2015 @EuroSys2015 EuroSys Co-located workshop: Principles and Practice 2015 of Consistency for Distributed Data. user:43 papoc.di.uminho.pt user:10 ••• 16 9 retweeters:1003 ⟹ user:29 Ellen DeGeneres @TheEllenShow If only Bradley's arm was longer. Best photo user:89 user:74 ever. #oscars Retweet Set("retweeters:1003").add("user:53") ••• 3.4M 2M Retweet Set("retweeters:1003").add("user:53") 11 PaPoC’15 @ EuroSys – Claret
Recommend
More recommend