-
Notifications
You must be signed in to change notification settings - Fork 172
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Is this repository still active? #55
Comments
I also question this, and am sad I missed the initial development of this idea. Most of the PRs appear to be language-specific implementations, or references to such. The developer has been otherwise active, which relieves me a bit. In my toolbox, this has been an already-solved problem for years using coordination-free ObjectIDs—link to my slightly more functional clean–room reimplementation—which also offers additional room for taint/tracing/origin information. Plus all of the other goodness of replacing a creation time field, being range filterable and sortable, and so on. For more compact than hexadecimal representation (which would be 24 characters), I use HHC, treating the ObjectID as a 96-bit integer. The timestamp not being millisecond accurate is resolved by the inclusion of a per-process counter with random IV, but does harm replacement of a creation time field if milliseconds are required. Two generations within the same second from the same process on the same machine will have unique counters.
I'm… too often "that asshole", but I have to ask: why is? Kudos for formalizing a specification, though, independent of a specific use case. |
Thanks for sharing. For me it can be anything that meets my requirements. In the first place I was considered to use Twitter Snowflake but it required machine identifier, which is not container friendly. I don't remember how I found ULID but it meet all my requirements. |
@ultimaweapon The clean-room ObjectID implementation I linked (already-solved problem) allows for all official forms of "machine identifier" generation from MongoDB, their modern "random identifier on startup" approach, as well as implements hardware MAC hashing (last byte used to XOR all prior bytes of the MAC) and fully custom identifiers. In virtual machine cases (i.e. containers) you have complete control over the MAC, hostname, and absolutely can specify the internal identifier explicitly. From the module docstring:
One potential use is in client-side identifier generation. Each user may be given a HWID for this purpose, permitting auditing of which records were populated by which users—one possible use. The variants using an actual machine identifier of some kind are useful for auditing of server-side behavior. |
Thanks for information. My application don't need extra information in the identifier so ULID is sufficient. |
Just wonder due to there are a lot of opened PRs.
The text was updated successfully, but these errors were encountered: