A methodical makeover for CTDB
Presented by Martin Schwenke and Amitay Isaacs
CTDB is the Clustered Trivial Database (TDB) and is used to provide clustering support for Samba. CTDB is a monolithic daemon that provides several different services: clustered database, service monitoring, management of a pool of IP addresses for NAS services, various types of consistency checking... and logging. It isn't exactly monolithic - there are 2 main daemons but functionality isn't cleanly split and there is duplication. Additionally, the protocols are not well defined: just structs on the wire. Things could be better.
In an ideal world we would stop everything else we're doing for a few months, define protocols, restructure everything and, after some time, suddenly release a shiny, brand new version of CTDB. However, that's not going to happen. So, is it possible to do a major restructure of CTDB, with new protocols, in a methodical, step-by-step manner, maintaining some amount of backward compatibility as we go? With CTDB now merged into the Samba source tree, we can't break the Samba build at any stage.
What is the plan? What are the really clever ideas? Is this really possible? Join us on a hacker's tale where we describe where we started, the problems we encountered, where we got to before Linux.conf.au 2015 ... and what still needs to be done.
Martin Schwenke has been developing Open Source software for about 15 years. Before that he did research into functional programming, lectured in computer science and did system administration. His early hacks mostly relate to Emacs. In recent years he has been hacking on CTDB, the Clustered Trivial DataBase used for clustering Samba.
Amitay Isaacs has been a Linux hacker for the last 20 years and he has been using Linux in Engineering and Scientific Computing. His interests are distributed systems, high performance computing and optimization algorithms. In recent years he has been working on Samba and is the current maintainer of CTDB.