the number of doctors on j1 extensions the us is going to lose over this is going to seriously impact us healthcare. it's also not uncommon for doctors to practice on an o1 and they'll be impacted also
2. If your data store can always accept the write only if
your token is greater than all the past tokens, than it’s a
linearizable store. If you have a linearizable store, you
can just generate an incremental ID for each Redlock
acquired, so this would make Redlock equivalent to
another distributed lock system that provides an
incremental token ID with every new lock. However in the
next point I’ll show how this is not needed.
you confuse which system is the linearizable one in this point. your storage system is just a dumb storage system that simply returns the object version with the highest clock. what makes it linearizable to an outside observer is that the system generating the lock ids is itself linearizable. if every insert is accompanied by an authentic lock id the system is linearizable. if you generate this lock id via the storage system itself then the storage system must also be linearizable 3. However “2” is not a sensible choice anyway: most of the times the
result of working to a shared resource is not writing to a linearizable
store, so what to do? Each Redlock is associated with a large random
token (which is generated in a way that collisions can be ignored. The
Redlock specification assumes textually “20 bytes from /dev/urandom”).
What do you do with a unique token? For example you can implement Check
and Set. When starting to work with a shared resource, we set its state
to “`<token>`”, then we operate the read-modify-write only if the token
is still the same when we write.
would you say this sequence of events is correct: