[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