ctdb remix
play

CTDB Remix I: Dreaming the Fantasy Amitay Isaacs amitay@samba.org - PowerPoint PPT Presentation

CTDB Remix I: Dreaming the Fantasy Amitay Isaacs amitay@samba.org Samba Team IBM (Australia Development Labs, Linux Technology Center) SambaXP 2017 Amitay Isaacs CTDB Remix - Dreaming the Fantasy CTDB Project Motivation: Support for


  1. CTDB Remix I: Dreaming the Fantasy Amitay Isaacs amitay@samba.org Samba Team IBM (Australia Development Labs, Linux Technology Center) SambaXP 2017 Amitay Isaacs CTDB Remix - Dreaming the Fantasy

  2. CTDB Project Motivation: Support for clustered Samba Multiple nodes active simultaneously Communication between nodes (heartbeat, failover) Distributed databases between nodes Features: Volatile and Persistent databases Cluster-side messaging for Samba IP failover and load balancing Service monitoring Community: ctdb.samba.org git.samba.org/samba.git wiki.samba.org/index.php/CTDB and Clustered Samba Amitay Isaacs CTDB Remix - Dreaming the Fantasy

  3. Overview Dreaming the Fantasy How did we get here? Evolving the design Laying the foundations New Architecture Designing the Reality Amitay Isaacs CTDB Remix - Dreaming the Fantasy

  4. How did we get here? Amitay Isaacs CTDB Remix - Dreaming the Fantasy

  5. 2013 Recap SambaXP 2013 Amitay Isaacs CTDB Remix - Dreaming the Fantasy

  6. 2013 Recap SambaXP 2013 Introduced lock helper, event helper Amitay Isaacs CTDB Remix - Dreaming the Fantasy

  7. 2014 Recap CTDB merges with Samba CTDB merged into Samba tree (Nov 2013) CTDB standalone waf build (Jun 2014) CTDB build integrated in toplevel build (Nov 2014) Amitay Isaacs CTDB Remix - Dreaming the Fantasy

  8. 2015 Recap Parallel Database Recovery Protocol marshalling New abstractions New Communication framework ( tevent req based async) New Client Code Database recovery helper Re-implemented ctdb tool using new client API Amitay Isaacs CTDB Remix - Dreaming the Fantasy

  9. 2015 Recap Parallel Database Recovery Protocol marshalling New abstractions New Communication framework ( tevent req based async) New Client Code Database recovery helper Re-implemented ctdb tool using new client API Introduced natgw helper Amitay Isaacs CTDB Remix - Dreaming the Fantasy

  10. 2016 Recap Introduced killtcp helper, lvs helper Amitay Isaacs CTDB Remix - Dreaming the Fantasy

  11. 2016 Recap Introduced killtcp helper, lvs helper Event daemon New abstractions - run proc , sock daemon Event Protocol Event client code Event handling daemon Amitay Isaacs CTDB Remix - Dreaming the Fantasy

  12. Evolving the design Amitay Isaacs CTDB Remix - Dreaming the Fantasy

  13. Evolving the design Identifying CTDB functions Amitay Isaacs CTDB Remix - Dreaming the Fantasy

  14. Evolving the design Identifying CTDB functions Eventscripts Tunables Monitor Election Disable/Enable Healthy/Unhealthy Recovery Ban/Unban Recovery Lock ReleaseIP TakeIP IPreallocated IP failover Locking Attach/Detach IP allocation Traverse Freeze/Thaw Migration Vacuuming Transaction Consistency Calls Messages Controls Transports Unix Socket ctdb daemon recovery daemon Amitay Isaacs CTDB Remix - Dreaming the Fantasy

  15. Evolving the design Grouping CTDB functions Healthy/Unhealthy Eventscripts Monitor Start/Stop Messages Unix Socket TakeIP/ReleaseIP/IPreallocated IP assignment Disable/Enable Controls Protocol Recovery Transports Election Banning Consistency Calls Attach/Detach Transactions Freeze/Thaw Migrations Locking Vacuuming Traverse ctdb daemon recovery daemon Amitay Isaacs CTDB Remix - Dreaming the Fantasy

  16. Evolving the design New subsystems Service manager IP failover Protocol Protocol Cluster manager Clustered database ctdb daemon recovery daemon Amitay Isaacs CTDB Remix - Dreaming the Fantasy

  17. Evolving the design Redesign of server code Amitay Isaacs CTDB Remix - Dreaming the Fantasy

  18. Evolving the design Redesign of server code First approach Main concern is the transport Amitay Isaacs CTDB Remix - Dreaming the Fantasy

  19. Evolving the design Redesign of server code First approach Main concern is the transport Motivation Avoid m*n*n connections Amitay Isaacs CTDB Remix - Dreaming the Fantasy

  20. Evolving the design Redesign of server code First approach Main concern is the transport Develop parallel transport and proxies (scalability) Motivation Avoid m*n*n connections Amitay Isaacs CTDB Remix - Dreaming the Fantasy

  21. Evolving the design Redesign of server code First approach Main concern is the transport Develop parallel transport and proxies (scalability) Convert CTDB transport to use proxy Motivation Avoid m*n*n connections Amitay Isaacs CTDB Remix - Dreaming the Fantasy

  22. Evolving the design Redesign of server code First approach Main concern is the transport Develop parallel transport and proxies (scalability) Convert CTDB transport to use proxy Motivation Avoid m*n*n connections Unix datagrams (SambaXP 2015) tmsgd - fd passing (SambaXP 2016) Amitay Isaacs CTDB Remix - Dreaming the Fantasy

  23. Evolving the design Redesign of server code First approach Main concern is the transport Develop parallel transport and proxies (scalability) Convert CTDB transport to use proxy Motivation Avoid m*n*n connections Unix datagrams (SambaXP 2015) tmsgd - fd passing (SambaXP 2016) Proxy design never took off Amitay Isaacs CTDB Remix - Dreaming the Fantasy

  24. Evolving the design Redesign of server code Amitay Isaacs CTDB Remix - Dreaming the Fantasy

  25. Evolving the design Redesign of server code Second approach Split code out and create separate daemons Amitay Isaacs CTDB Remix - Dreaming the Fantasy

  26. Evolving the design Redesign of server code Second approach Split code out and create separate daemons Avoid boilerplate, most daemons to use unix domain sockets sock daemon abstraction Amitay Isaacs CTDB Remix - Dreaming the Fantasy

  27. Evolving the design Redesign of server code Second approach Split code out and create separate daemons Avoid boilerplate, most daemons to use unix domain sockets sock daemon abstraction First candidate — event daemon Amitay Isaacs CTDB Remix - Dreaming the Fantasy

  28. Evolving the design Redesign of server code Second approach Split code out and create separate daemons Avoid boilerplate, most daemons to use unix domain sockets sock daemon abstraction First candidate — event daemon eventd Amitay Isaacs CTDB Remix - Dreaming the Fantasy

  29. Evolving the design Redesign of server code Second approach Split code out and create separate daemons Avoid boilerplate, most daemons to use unix domain sockets sock daemon abstraction First candidate — event daemon eventd Does not need any CTDB infrastructure Amitay Isaacs CTDB Remix - Dreaming the Fantasy

  30. Evolving the design Redesign of server code Second approach Split code out and create separate daemons Avoid boilerplate, most daemons to use unix domain sockets sock daemon abstraction First candidate — event daemon eventd Does not need any CTDB infrastructure run proc abstraction Amitay Isaacs CTDB Remix - Dreaming the Fantasy

  31. Evolving the design Redesign of server code Second approach Split code out and create separate daemons Avoid boilerplate, most daemons to use unix domain sockets sock daemon abstraction First candidate — event daemon eventd Does not need any CTDB infrastructure run proc abstraction New protocol - request, reply Amitay Isaacs CTDB Remix - Dreaming the Fantasy

  32. Evolving the design Redesign of server code Second approach Split code out and create separate daemons Avoid boilerplate, most daemons to use unix domain sockets sock daemon abstraction First candidate — event daemon eventd Does not need any CTDB infrastructure run proc abstraction New protocol - request, reply Easy testing Amitay Isaacs CTDB Remix - Dreaming the Fantasy

  33. Evolving the design Redesign of server code Second approach Split code out and create separate daemons Avoid boilerplate, most daemons to use unix domain sockets sock daemon abstraction First candidate — event daemon eventd Does not need any CTDB infrastructure run proc abstraction New protocol - request, reply Easy testing run event abstraction Amitay Isaacs CTDB Remix - Dreaming the Fantasy

  34. Laying the foundations Amitay Isaacs CTDB Remix - Dreaming the Fantasy

  35. Laying the foundations CTDB State management Solved differently for different things tickles - Protocol to sync tickle lists nfs locks - Using persistent database Persistent databases are slow We are in the business of clustered databases New database model? Amitay Isaacs CTDB Remix - Dreaming the Fantasy

  36. Laying the foundations CTDB State management Solved differently for different things tickles - Protocol to sync tickle lists nfs locks - Using persistent database Persistent databases are slow We are in the business of clustered databases New database model? Replicated database State information needed during lifetime of CTDB Volatile ( CLEAR IF FIRST ) Replicated (Re-use existing API) Uses g lock and transactions Amitay Isaacs CTDB Remix - Dreaming the Fantasy

  37. Laying the foundations Database Performance 2 nodes (Intel Xeon E5620, RHEL6), 30 second test Amitay Isaacs CTDB Remix - Dreaming the Fantasy

  38. Laying the foundations Database Performance 2 nodes (Intel Xeon E5620, RHEL6), 30 second test g lock test persistent replicated Amitay Isaacs CTDB Remix - Dreaming the Fantasy

  39. Laying the foundations Database Performance 2 nodes (Intel Xeon E5620, RHEL6), 30 second test on disk tmpfs g lock test fcntl 5718 5750 persistent replicated Amitay Isaacs CTDB Remix - Dreaming the Fantasy

Recommend


More recommend