Diamond: Automating Data Management and Storage for Wide-area, Reactive Applications Irene Zhang Niel Lebeck Pedro Fonseca Brandon Holt Raymond Cheng Ariadna Norberg Arvind Krishnamurthy Henry M. Levy 1
Diamond: Automating Data Management and Storage for Wide-area, Reactive Applications Irene Zhang Niel Lebeck Pedro Fonseca Brandon Holt Raymond Cheng Ariadna Norberg Arvind Krishnamurthy Henry M. Levy 1
Reactive applications automatically propagate updates across mobile devices and the cloud. 2
Reactive applications automatically propagate updates across mobile devices and the cloud. Pin The Advisor Pin The Advisor Irene Niel Niel Irene 0 0 0 0 2
Reactive applications automatically propagate updates across mobile devices and the cloud. Pin The Advisor Pin The Advisor You earned 5 pts! Irene Niel Niel Irene 0 0 0 5 0 2
Reactive applications automatically propagate updates across mobile devices and the cloud. Pin The Advisor Pin The Advisor It’s your turn! Irene Niel Niel Irene 0 0 0 5 0 5 2
Reactive applications automatically propagate updates across mobile devices and the cloud. Pin The Advisor Pin The Advisor It’s your turn! Availability Irene Niel Niel Irene 0 0 0 5 0 5 2
Reactive applications automatically propagate updates across mobile devices and the cloud. Pin The Advisor Pin The Advisor It’s your turn! Fault-tolerance Availability Irene Niel Niel Irene 0 0 0 5 0 5 2
Reactive applications automatically propagate updates across mobile devices and the cloud. Pin The Advisor Pin The Advisor It’s your turn! Fault-tolerance Availability Consistency Irene Niel Niel Irene 0 0 0 5 0 5 2
Which poses a challenge for app programmers. Pin The Advisor Pin The Advisor You earned 5 pts! Irene Niel Niel Irene 5 0 0 0 3
Which poses a challenge for app programmers. Pin The Advisor Pin The Advisor App App You earned 5 pts! player1 0 player1 0 player1 0 player1 0 Irene Niel Niel Irene turn irene 5 0 turn irene 0 0 3
Which poses a challenge for app programmers. Storage irene 0 Pin The Advisor Pin The Advisor niel 0 App App You earned 5 pts! turn irene player1 0 player1 0 player1 0 player1 0 Irene Niel Niel Irene turn irene 5 0 turn irene 0 0 3
Which poses a challenge for app programmers. Storage irene 0 Pin The Advisor Pin The Advisor niel 0 App App You earned 5 pts! turn irene player1 0 5 player1 0 player1 0 player1 0 Irene Niel Niel Irene turn irene 5 0 turn irene 0 0 3
Which poses a challenge for app programmers. Storage irene 0 Pin The Advisor Pin The Advisor niel 0 App App You earned 5 pts! turn irene player1 0 5 player1 0 player1 0 player1 0 Irene Niel Niel Irene turn irene 5 0 turn irene niel 0 0 3
Which poses a challenge for app programmers. Storage write 5 irene 0 Pin The Advisor Pin The Advisor niel 0 App App You earned 5 pts! turn irene niel player1 0 5 player1 0 player1 0 player1 0 Irene Niel Niel Irene turn irene 5 0 turn irene niel 0 0 3
Which poses a challenge for app programmers. Storage write 1 5 irene 0 Pin The Advisor Pin The Advisor niel 0 App App You earned 5 pts! turn irene niel player1 0 5 player1 0 player1 0 player1 0 Irene Niel Niel Irene turn irene 5 0 turn irene niel 0 0 3
Which poses a challenge for app programmers. Storage write 1 5 irene 0 Pin The Advisor Pin The Advisor niel 0 App App You earned 5 pts! turn irene niel player1 0 5 player1 0 player1 0 player1 0 Irene Niel Niel Irene turn irene 5 0 turn irene niel 0 0 Notification Service 3
Which poses a challenge for app programmers. Storage write 1 5 irene 0 Pin The Advisor Pin The Advisor niel 0 App App You earned 5 pts! turn irene niel player1 0 5 player1 0 player1 0 player1 0 Irene Niel Niel Irene 2 turn irene notify 5 0 turn irene niel 0 0 notify 3 Notification Service 3
Which poses a challenge for app programmers. Storage r e write a d 4 1 5 irene 0 Pin The Advisor Pin The Advisor niel 0 App App You earned 5 pts! It’s your turn! turn irene niel 5 player1 0 5 player1 0 player1 0 player1 0 Irene Niel Niel Irene 2 niel turn irene notify 5 0 turn irene niel 0 0 5 notify 3 Notification Service 3
Which poses a challenge for app programmers. Storage r e write a d 4 1 5 irene 0 Pin The Advisor niel 0 App App It’s your turn! turn irene niel 5 player1 0 5 player1 0 player1 0 player1 0 Niel Irene 2 niel turn irene notify turn irene niel 0 0 5 notify 3 Notification Service 3
Which poses a challenge for app programmers. Storage write 4 1 5 irene 0 Pin The Advisor niel 0 App App turn irene niel player1 0 5 player1 0 player1 0 player1 0 Niel Irene 2 turn irene turn irene niel 0 0 3 Notification Service 3
Which poses a challenge for app programmers. Storage write 4 1 5 irene 0 Pin The Advisor Pin The Advisor niel 0 App App You earned 5 pts! turn irene niel player1 0 5 player1 0 player1 0 player1 0 Irene Niel Niel Irene 2 turn irene 5 0 turn irene niel 0 0 3 Notification Service 3
Which poses a challenge for app programmers. This is a complex, distributed data management problem! Storage write 4 1 5 irene 0 Pin The Advisor Pin The Advisor niel 0 App App You earned 5 pts! turn irene niel player1 0 5 player1 0 player1 0 player1 0 Irene Niel Niel Irene 2 turn irene 5 0 turn irene niel 0 0 3 Notification Service 3
Which poses a challenge for app programmers. This is a complex, distributed data management problem! Storage write 4 1 5 irene 0 Pin The Advisor Pin The Advisor niel 0 App App You earned 5 pts! turn irene niel player1 0 5 player1 0 player1 0 player1 0 Irene Niel Niel Irene 2 turn irene 5 0 turn irene niel 0 0 3 Conclusion: Reactive applications require end-to-end Notification Service data management with strong guarantees. 3
Which poses a challenge for app programmers. Conclusion: Reactive applications require end-to-end data management with strong guarantees. 4
Which poses a challenge for app programmers. Conclusion: Reactive applications require end-to-end data management with strong guarantees. 4
Which poses a challenge for app programmers. Conclusion: Reactive applications require end-to-end data management with strong guarantees. 4
Which poses a challenge for app programmers. Conclusion: Reactive applications require end-to-end data management with strong guarantees. 4
Which poses a challenge for app programmers. Conclusion: Reactive applications require end-to-end data management with strong guarantees. 4
Which poses a challenge for app programmers. Conclusion: Reactive applications require end-to-end data management with strong guarantees. 4
Diamond Diamond is the first reactive data management service, which provides the following guarantees: • Ensures updates to shared data are consistent and durable • Coordinates and synchronizes updates reliably across mobile clients and cloud storage • Automatically triggers application code in response to updates to shared data 5
Talk Outline Diamond System & Programming Model What does Diamond provide for reactive apps? Diamond Guarantees & Implementation What does Diamond guarantee for reactive apps? Evaluation How does Diamond impact app complexity and performance? 6
Diamond System Model Diamond Cloud Client Devices Front-end Servers App Process libDiamond Distributed Key-Value Store App Process libDiamond 7
Diamond Programming Model Read-write Transactions Reactive Data Types (RDTs) Read-write transactions to update Shared, persistent data structures shared RDTs. Reactive Data Map (rmap) Reactive Transactions Binding between RDTs in the app Read-only transactions that re-execute and the Diamond store app code when the read set updates. Store App App Diamond Cloud libDiamond libDiamond 8
Reactive Data Types (RDTs) Shared, persistent data structures App Pin The Advisor Simple data structures including primitives • (e.g., string, long), collections (e.g., list) and Irene Niel 0 0 libDiamond Conflict-free Data Types (e.g., counter, set) PinAdvisor.cc - x + Data type semantics avoid false sharing and • enable commutative operations Defined in libDiamond language bindings • 9
Reactive Data Types (RDTs) Shared, persistent data structures App Pin The Advisor player1 Simple data structures including primitives • (e.g., string, long), collections (e.g., list) and Irene Niel 0 0 libDiamond Conflict-free Data Types (e.g., counter, set) PinAdvisor.cc - x + Data type semantics avoid false sharing and • DCounter player1; enable commutative operations Defined in libDiamond language bindings • 9
Recommend
More recommend