CTDB - the 'Mainz' plan for clustered Samba

simo idra at samba.org
Sat Sep 30 14:37:20 GMT 2006

On Sat, 2006-09-30 at 11:07 +1000, an unknown sender wrote:

> --------------------
>    uint32  DMASTER (VNN of requested new DMASTER)
>    uint32  KEYLEN
>    uint8   KEY[]
>    uint32  DATALEN
>    uint8   DATA[]
> The CTDB_REQUEST_DMASTER request is unusual in that it is always sent
> to the LMASTER, and may be sent in response to a different request
> from another node. It asks the LMASTER to hand over the DMASTER status
> to another node, along with the current data for the record.
> If LMASTER is equal to the requested new DMASTER then no further
> packets need to be sent, as the LMASTER has now become the DMASTER. If
> the requested DMASTER is not equal to the LMASTER then the LMASTER
> will send a CTDB_REPLY_DMASTER to the new requested DMASTER.
> This message will have the same REQID as the incoming
> message that triggered it.
> ------------------
>    uint32  DATALEN
>    uint8   DATA[]
> This message always comes from the LMASTER, and tells a node that it
> it is now the DMASTER for a record.
> This message will have the same REQID as the incoming
> CTDB_REQUEST_DMASTER that triggered it.

In this snipped you say that REQID is the same as the incoming REQID
that triggered it.

If I understand this correctly it means that hostA sends to hostB
(LMASTER) a CTDB_REQUEST_DMASTER with REQID 100, hostB then sends a
CTDB_REPLY_DMASTER to hostC (the requested DMASTER) with REQID 100.

Now how do you assure that REQID does not conflicts with another request
issued by hostC ? Is there a mechanism to keep REQIDs unique
cluster-wide? (May be using the VNN * 1^X as a base?)


Simo Sorce
Samba Team GPL Compliance Officer
email: idra at samba.org

More information about the samba-technical mailing list