3 ms·
What the author of that blog post expects isn't realistically possible in a general async multi master system. You can't really have conflict free changes, that
by anarazel 11y ago
What the author of that blog post expects isn't realistically possible in a general async multi master system. You can't really have conflict free changes, that are consistent across values to boot, across distributed nodes unless you:
a) are synchronous in some way (e.g. distributed locks) - which you don't really want in a geographically distributed system because of the heavy latency impact
or
b) partition your data in a way that doesn't requir any changes to span nodes.
In many scenarios these restrictions are unacceptable, and dealing with potential inconsistencies is the smaller (but y no means small) evil. If you indeed need it, you need to design your spoliation accordingly.
There are workloads where it's easy to deal with such problems. If there are only inserts, without constraints there often not much to do. In other cases you can simply accept rare inconsistencies.
Quite often the majority of writes don't need to care, but a small portion needs to be much more careful. E.g by using distributed 2pc, or BT always going through a specific node.