4 ms·
> Lexicographically sortable identifiers are critical for any distributed data store if you want anything close to consistency. wat? This doesn't make any sen
by joatmon-snoo 8y ago
> Lexicographically sortable identifiers are critical for any distributed data store if you want anything close to consistency.
wat?
This doesn't make any sense to me. Requiring that events be partially ordered if not totally ordered is a consistency requirement, sure, but I'm failing to understand how a database's consistency depends on the data you're putting in the database.
- cryptonector 8y agoAnd now you need every host to have an atomic clock too. Maybe CRDTs would be better.
- edoceo 8y agoI use ULID in a distributed system where some clocks are off by a bit, still works well, untill the skew is way off. The time can be extracted from the ULID for verification before INSERT.
- riffraff 8y agoWon't removing time bizs increase the chance of collisions? UUIDs rely on a lot of randomness to avoid the issue, but in ULID this is much more limited, and the timestamp fills in for some of it, afaiu
- edoceo 8y agoWe don't remove the time bits, we inspect them for reasonable values. Eg: never ever older than 2014-01-01 and older than 24h from our clock gets extra logging+meta-data.
- advisedwang 8y agoI think they're talking about data locality. If a single processing step access data that are "neighbours", in some systems that data is likely served from a single server. This means a) better performance and b) higher likelihood of consistency. Of course the guarantee is still merely eventual consistency, but data locality does reduce the chance this becomes visible.