[Tarantool-patches] [PATCH v11 1/8] box: fix bootstrap comment
Cyrill Gorcunov
gorcunov at gmail.com
Sun Apr 5 10:56:22 MSK 2020
On Sun, Apr 05, 2020 at 10:31:40AM +0300, Konstantin Osipov wrote:
> * Cyrill Gorcunov <gorcunov at gmail.com> [20/04/05 05:06]:
> > We're not starting new master node but
> > a new instance instead. The comment simply
> > leftover from older modifications.
>
> I wrote it and it had a meaning. If we call bootstrap, it's
> definitely a new master here, because we're creating a new
> replicaset uuid.
Wait, this looks vague. Here what we have inside
/**
* Bootstrap a new instance either as the first master in a
* replica set or as a replica of an existing master.
*
* @param[out] is_bootstrap_leader set if this instance is
* the leader of a new cluster
*/
static void
bootstrap(const struct tt_uuid *instance_uuid,
const struct tt_uuid *replicaset_uuid,
bool *is_bootstrap_leader)
{
...
/* Use the first replica by URI as a bootstrap leader */
struct replica *master = replicaset_leader();
assert(master == NULL || master->applier != NULL);
if (master != NULL && !tt_uuid_is_equal(&master->uuid, &INSTANCE_UUID)) {
bootstrap_from_master(master);
/* Check replica set UUID */
if (!tt_uuid_is_nil(replicaset_uuid) &&
!tt_uuid_is_equal(replicaset_uuid, &REPLICASET_UUID)) {
tnt_raise(ClientError, ER_REPLICASET_UUID_MISMATCH,
tt_uuid_str(replicaset_uuid),
tt_uuid_str(&REPLICASET_UUID));
}
} else {
bootstrap_master(replicaset_uuid);
*is_bootstrap_leader = true;
}
...
}
Either comment in the function description is wrong, either the
comment I modified was wrong. Or maybe I don't understand terminology.
Who is master and who is slave node?
More information about the Tarantool-patches
mailing list