evan tschannen
play

Evan Tschannen 1 Evan Tschannen Worked on FoundationDB for 8 - PowerPoint PPT Presentation

Evan Tschannen 1 Evan Tschannen Worked on FoundationDB for 8 years Touched every core component of the database Recently added multi-region asynchronous replication https://www.foundationdb.org


  1. Evan Tschannen � 1

  2. Evan Tschannen • Worked on FoundationDB for 8 years • Touched every core component of the database • Recently added multi-region asynchronous replication

  3. • https://www.foundationdb.org • https://github.com/apple/foundationdb • Open Source, Apache License (v2)

  4. Why are there so many databases? � 4

  5. Why are there so many databases? • Tension between performance, scalability, and consistency • A wide variety of data models � 5

  6. FoundationDB Performance • Organizes many instances of a single process database into a single database • Read and write throughput 90% of the aggregate individual read and write throughput • Single hop read latencies • Four hop write latencies

  7. FoundationDB is a… • Highly performant, • Scalable, • Ordered key value store, • That supports ACID transactions.

  8. Servers A Writer Reader Wait for 2 of 3 responses Wait for 2 of 3 responses B C � 8

  9. Servers A Writer Reader Wait for 2 of 3 responses Wait for 2 of 3 responses B C � 9

  10. Servers A Writer Reader Wait for 3 of 3 responses Wait for 1 of 3 responses B C � 10

  11. Servers A Writer Reader Wait for 3 of 3 responses Wait for 1 of 3 responses B C � 11

  12. 0: A,B,C 101: B,C,D Versions (Stored in a di ff erent database) Servers A Writer Reader Wait for 3 of 3 responses Wait for 1 of 3 responses B C D � 12

  13. Coordinators ZooKeeper (Failure Handling) Storage Servers Transaction Logs SQLite (Reads) FoundationDB (Writes) � 13

  14. Coordinators Cluster Controller Storage Servers Transaction Logs � 14

  15. Coordinators Cluster Controller Storage Servers Transaction Logs � 15

  16. FoundationDB API Versions A : apple 100 Get Read Version (200) 200 Read (A, 200) Write (B, banana) Commit 400 � 16

  17. FoundationDB API Versions A : apple 100 Get Read Version (200) 200 Read (A, 200) 300 A : orange Write (B, banana) Commit 400 � 17

  18. Coordinators Cluster Controller Master Storage Servers Proxies Resolvers Transaction Logs � 18

  19. Coordinators Get Read Version Reads Cluster Controller Writes Commit Master Storage Servers Proxies Resolvers Transaction Logs � 19

  20. Coordinators Get Read Version (200) Reads (A, 200) Cluster Controller Writes (B : banana) Commit Master Data Distribution Storage Servers Proxies Resolvers Transaction Logs � 20

  21. Coordinators Get Read Version (200) Reads (A, 200) Cluster Controller Writes (B : banana) Commit Master (400) Storage Servers Proxies Resolvers Transaction Logs � 21

  22. Coordinators Get Read Version (200) Reads (A, 200) Cluster Controller Writes (B : banana) Commit Master (400) Storage Servers Proxies Resolvers Transaction Logs � 22

  23. Coordinators Get Read Version (200) Reads (A, 200) Cluster Controller Writes (B : banana) Commit Master Storage Servers Proxies Resolvers Transaction Logs � 23

  24. Coordinators Get Read Version (200) Reads (A, 200) Cluster Controller Writes (B : banana) Commit (400) Master Storage Servers Proxies Resolvers Transaction Logs � 24

  25. Coordinators Get Read Version Reads Cluster Controller Writes Commit Master Storage Servers Proxies Resolvers Transaction Logs � 25

  26. Coordinators Get Read Version Reads Cluster Controller Writes Commit Master Storage Servers Proxies Resolvers Transaction Logs (400) (300) (200) � 26

  27. Coordinators Get Read Version (400) Reads Cluster Controller Writes Commit Master Storage Servers Proxies Resolvers Transaction Logs (400) (300) (200) � 27

  28. Coordinators Get Read Version Reads Cluster Controller Writes Commit Master Storage Servers Proxies Resolvers Transaction Logs � 28

  29. Coordinators Get Read Version Reads Cluster Controller Writes Commit Master Storage Servers Proxies Resolvers Transaction Logs � 29

  30. Coordinators Get Read Version Reads Cluster Controller Writes Commit Master Storage Servers Proxies Resolvers Transaction Logs � 30

  31. Coordinators Get Read Version Reads Cluster Controller Writes Commit Master Data Distribution Storage Servers Proxies Resolvers Transaction Logs � 31

  32. Coordinators Get Read Version Reads Cluster Controller Writes Commit Master Storage Servers Proxies Resolvers Transaction Logs � 32

  33. FoundationDB Performance • Organizes many instances of a single process database into a single database • Read and write throughput 90% of the aggregate individual read and write throughput • Single hop read latencies • Four hop write latencies

  34. Does it work? • Run the entire distributed database in a single process • Inject random failures • Check correctness • Reproduce errors

  35. https://www.foundationdb.org � 35

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend