CTDB internals

Amitay Isaacs amitay at gmail.com
Thu Nov 1 23:00:35 MDT 2012

Hi Chris,

On Fri, Nov 2, 2012 at 3:28 PM, Christopher R. Hertel <crh at ubiqx.mn.org> wrote:
> Amitay, Obnox, et. al.,
> I just want to make sure that I've got this right...
> Reviewing Michael's tutoral, given in 2009 at SambaXP, here's what I get:
> * The underlying tables are all TDB tables.
> * These TDB tables are of three types:
>   1) Persistent
>   2) Normal ("volatile")
>   3) Recovery

There are only two types of databases persistent and normal. Recovery
file is just a regular file and not tdb database.

> I think I generally understand how these work.  I have some questions about
> the sequence of events when writing to a Persistent TDB, but those can wait.
> My immediate questions are:
> Q: Is the CTDB_RECOVERY_LOCK file the only tdb file that will be stored on
>    shared disk and concurrently accessed by multiple nodes?

Yes, CTDB_RECOVERY_LOCK file is the only file that is stored on the
shared storage for concurrent access to resolve split-brain situations
and doing recoveries.

> Q: For the other two types (Persistent and Normal), is the ctdbd daemon
>    the only reader/writer to the local TDBs?  For Normal LTDBs in
>    particular, is fcntl byte-range locking used to manage access in any
>    way?

For non-persistent databases smbd and ctdbd can read/write to local
TDBs. The access is ordered by fcntl byte-range locks. smbd accesses a
record from local TDBs only when the local CTDB node is data master
for that record.

For persistent databases, CTDB transaction API is used to write data to TDBs.

> Thanks.
> Chris -)-----
> --
> "Implementing CIFS - the Common Internet FileSystem" ISBN: 013047116X
> Samba Team -- http://www.samba.org/     -)-----   Christopher R. Hertel
> jCIFS Team -- http://jcifs.samba.org/   -)-----   ubiqx development, uninq.
> ubiqx Team -- http://www.ubiqx.org/     -)-----   crh at ubiqx.mn.org
> OnLineBook -- http://ubiqx.org/cifs/    -)-----   crh at ubiqx.org


More information about the samba-technical mailing list