Flake: A Decentralized, K-Ordered Unique ID Generator in Erlang
From the post:
At Boundary we have developed a system for unique id generation. This started with two basic goals:
- Id generation at a node should not require coordination with other nodes.
- Ids should be roughly time-ordered when sorted lexicographically. In other words they should be k-ordered 1, 2.
All that is required to construct such an id is a monotonically increasing clock and a location 3. K-ordering dictates that the most-significant bits of the id be the timestamp. UUID-1 contains this information, but arranges the pieces in such a way that k-ordering is lost. Still other schemes offer k-ordering with either a questionable representation of ‘location’ or one that requires coordination among nodes.
Just in case you are looking for a decentralized source of K-ordered unique IDs. 😉
First seen at: myNoSQL as: Flake: A Decentralized, K-Ordered Unique ID Generator in Erlang.