[Tarantool-patches] [PATCH v5 1/4] vclock: add an ability to reset individual clock components

Konstantin Osipov kostja.osipov at gmail.com
Mon Apr 6 11:39:04 MSK 2020


* Vladislav Shpilevoy <v.shpilevoy at tarantool.org> [20/04/05 05:06]:
> > +void
> > +vclock_reset(struct vclock *vclock, uint32_t replica_id, int64_t lsn)
> 
> This is probably already discussed, but why do we have general
> reset for arbitrary replica_id+lsn, and yet we have specialized
> copy_ignore0? Why this function was not called vclock_reset0() with
> replica_id == 0 and lsn == 0 always?

It's historical. I also suggest the function should be inlined and
optimized into callers.
> 
> > +{
> > +	assert(lsn >= 0);
> > +	assert(replica_id < VCLOCK_MAX);
> > +	vclock->signature -= vclock_get(vclock, replica_id);
> > +	if (lsn == 0) {
> > +		vclock->map &= ~(1 << replica_id);
> > +		return;
> > +	}
> > +	vclock->lsn[replica_id] = lsn;
> > +	vclock->map |= 1 << replica_id;
> > +	vclock->signature += lsn;
> > +}

-- 
Konstantin Osipov, Moscow, Russia


More information about the Tarantool-patches mailing list