CTDB and Recovery lock

Martin Schwenke martin at meltin.net
Wed Nov 18 08:18:50 UTC 2015


Hi Partha,

On Tue, 17 Nov 2015 14:00:11 -0800, Partha Sarathi
<parthasarathi.bl at gmail.com> wrote:

> > > Also we don't have our Clustered Filesystem with Posix locking
> > > support but we do have Consensus/Conspiracy service available in
> > > cluster, is it possible to make use of that infrastructure to
> > > mimic the recovery file lock mechanism ?  

> > Not today.  Hopefully soon.  As I untangle some of this I will make the
> > "exclusive" lock code call out to a configurable helper program.

> Thanks a lot Martin for your detailed answers.
> 
> Now I am more interested about the "configurable helper program" you
> mentioned  which replaces the recovery lock mechanism. May I know little
> more about it ?.

We are thinking of an executable similar to the current
ctdb_event_helper.  This would take some file descriptors for status
and logging, and whatever other arguments are needed - for the fcntl(2)
helper the only other argument would probably be the filename.

The behaviour would be something like this:

* If the cluster-wide mutex can be taken then write 0 to the status file
  descriptor and hold the mutex until terminated with a signal or the
  parent exits.

* If the cluster-wide mutex can't be taken then write non-0 (or nothing)
  to the status file descriptor, potentially write some messages to the
  logging file descriptor, and exit.  It would probably make sense to
  write an errno to the status file descriptor so CTDB can tell if
  there was contention for the mutex (e.g. EACCES or EAGAIN) or some
  other error.  We would need some sort of convention - I won't invent
  it now.  :-)

* When CTDB wants to release the mutex it could send SIGTERM.

* If the parent exits then release the mutex and exit.

How does that sound?

As I said, there is probably a bit more untangling to do before this
can be implemented.  I hope this can be done before Samba 4.4 is
released in March 2016.

peace & happiness,
martin



More information about the samba-technical mailing list