

The IDs generated by this service are roughly time sortable. Twitter snowflake is a dedicated network service for generating 64-bit unique IDs at high scale. Moreover, you introduce one more component in your infrastructure that you need to manage and scale. The problem with this approach is that the ticket server can become a write bottleneck. This approach uses a centralized database server to generate unique incrementing IDs. But again the size is relatively longer than what we normally have in a single MySQL auto-increment field (a 64-bit bigint value). This is smaller than the earlier 128-bit UUID. a 3-byte counter, starting with a random value.MongoDB’s ObjectIDs are 12-byte (96-bit) hexadecimal numbers that are made up of. When your dataset increases, the index size increases as well and the query performance takes a hit. The problem with UUIDs is that they are very big in size and don’t index well. The chances of the same UUID getting generated twice is negligible. UUIDs are 128-bit hexadecimal numbers that are globally unique. I’ll also outline other existing solutions and discuss their pros and cons. In this article, I’ll share a simplified version of the unique ID generator that will work for any use-case of generating unique IDs in a distributed environment, not just sharded databases. So I looked at various existing solutions for this, and finally wrote a simple 64-bit unique ID generator that was inspired by a similar service by Twitter called Twitter snowflake. When you’re working with a single MySQL database, you can simply use an auto-increment ID as the primary key, But this won’t work in a sharded MySQL database. While working on this application, I needed to generate unique IDs that could be used as the primary keys in the tables. I was recently working on an application that had a sharded MySQL database. Generating unique IDs in a distributed environment at high scale Rajeev Singh System Design J3 mins read
