I've been reading on instagram's approach to generate unique identifiers.
Besides remaining content I'd like to understand on of the points their making as a con of client-generated (by client I mean here an app-server, not untrusted userland), specifically:
- Generally requires more storage space (96 bits or higher) to make reasonable uniqueness guarantees [app-generated ID vs DB generated]
How is current time in millis + shardID + modulo counter in 64bit space (long/bigint) better than app generated something like current time millis + random 23 bits (64bits total)? (So that app generated needs at least 96bits)