[{"data":1,"prerenderedAt":571},["ShallowReactive",2],{"project-25870482":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":35,"aspects":36,"strip":47,"post_text":49,"what":50,"said":64,"maker_in_thread":153,"shape":162,"grid":167,"attempts":532,"same_week":533,"maker_shows":31,"maker_hidden":563,"reader_version":564,"card":565},"25870482","Timeflake","128-bit, roughly-ordered, URL-safe UUIDs","title","Show HN: 128-bit, roughly-ordered, URL-safe UUIDs","https:\u002F\u002Fgithub.com\u002Fanthonynsimon\u002Ftimeflake","github.com","amzans",1611312543,2021,205,137,220,2533,9,"notable","dev_tools","id generation library","library",[24,25,26,27],"uuid alternative","sortable id","database primary key","ulid","curious",-0.177,{"positive":31,"neutral":32,"mixed":33,"critical":34},4,26,1,13,44,{"design":37,"performance":40,"execution":41,"idea":42,"privacy":45,"docs":46},{"positive":38,"critical":39},0,2,{"positive":38,"critical":33},{"positive":38,"critical":33},{"positive":43,"critical":44},3,6,{"positive":38,"critical":43},{"positive":38,"critical":38},[38,38,33,33,38,43,33,33,33,48,43,38,33,38,43,33,33,38,38,38,38,38,38,38,38,38,38,43,43,33,39,43,43,43,43,43,43,43,38,43],5,null,{"problem":51,"audience":49,"pricing":49,"motivation":58,"time_to_build":49,"stack":62,"openness":63,"stage":63,"team_size":63},{"value":52,"source":53,"evidence":54},"Random UUIDs hurt database index performance and cause fragmentation","maker",[55],{"id":56,"by":11,"text":57},"25871668","For those interested, here's (IMO) a good explanation on why completely random UUIDs hurt performance, and can lead to database fragmentation issues down the road (on MySQL):…",{"value":59,"source":53,"evidence":60},"Make IDs that stay fast in database indexes while remaining random",[61],{"id":56,"by":11,"text":57},[],"unknown",{"praise":65,"objections":78,"requests":102,"questions":114,"alternatives":130},[66],{"value":67,"source":68,"evidence":69},"Ordered IDs help database index performance","commenter",[70,74],{"id":71,"by":72,"text":73},"25870854","caleblloyd","This approach has become my preferred way of generating IDs for database rows. It is relatively space efficient and doesn't require a round trip to the database to generate an ID…",{"id":75,"by":76,"text":77},"25870714","abhishekjha","Query : For people who recommend UUIDs as a unique identifier in a distributed sytem, does the above satisfy the need? In the SO answer[0] uuid v4 is being recommended but that…",[79,90,98],{"value":80,"source":68,"evidence":81},"Timestamps in IDs leak creation time, a privacy concern",[82,86],{"id":83,"by":84,"text":85},"25870747","sltkr","This isn't strictly speaking a UUID. It's just a 128-bit identifier. It's \"compatible with UUID\" only in the sense that both are 128 bits wide, but this scheme doesn't have the…",{"id":87,"by":88,"text":89},"25877758","mleonhard","I filed an issue on the project, \"Point out the privacy risks of timestamps in object IDs\" [0]. ---- Non-random object IDs have privacy issues. Developers need to learn about…",{"value":91,"source":68,"evidence":92},"Not a valid UUID despite claiming compatibility",[93,94],{"id":83,"by":84,"text":85},{"id":95,"by":96,"text":97},"25870865","Ellipsis753","I'd worry a bit about the chance of collisions. They correctly state you can generate 50 million of them per millisecond with only a one in a billion chance of a collision (per…",{"value":99,"source":68,"evidence":100},"Collision risk is high at the stated generation rate",[101],{"id":95,"by":96,"text":97},[103,107],{"value":104,"source":68,"evidence":105},"Add a privacy section to the readme",[106],{"id":87,"by":88,"text":89},{"value":108,"source":68,"evidence":109},"Provide a NodeJS version",[110],{"id":111,"by":112,"text":113},"25870895","rafaelturk","This is really nice, anyone aware of a NodeJs alternative?",[115],{"value":116,"source":68,"evidence":117},"How does it compare to ULID, Snowflake and KSUID",[118,122,126],{"id":119,"by":120,"text":121},"25877452","josephernest","Just to see the big picture, what are the main differences between this and Snowflake, or ULID (https:\u002F\u002Fgithub.com\u002Fulid\u002Fspec)?",{"id":123,"by":124,"text":125},"25870772","sudhirj","There’s a spec called ULID that’s pretty much this with default base32 encoding https:\u002F\u002Fgithub.com\u002Fulid\u002Fspec I’ve also worked on a UUID-ULID bridge for Go…",{"id":127,"by":128,"text":129},"25870955","hankchinaski","not quite sure why the requirement of being compatible with the UUID 128-bit representation. i personally try to use KSUID (160bit) when possible and can’t see any downside so far",[131,135,139,146],{"value":132,"source":68,"evidence":133},"ULID",[134],{"id":123,"by":124,"text":125},{"value":136,"source":68,"evidence":137},"KSUID",[138],{"id":127,"by":128,"text":129},{"value":140,"source":68,"evidence":141},"Datomic squuid",[142],{"id":143,"by":144,"text":145},"25871380","m45t3r","Datomic uses a similar approach by default. They called it squuid: https:\u002F\u002Fdocs.datomic.com\u002Fon-prem\u002Fidentity.html#squuids",{"value":147,"source":68,"evidence":148},"MongoDB ObjectId",[149],{"id":150,"by":151,"text":152},"25880067","Too","How does this compare to Mongodbs ObjectId? They have roughly the same structure of timestamp+random but an additional incrementing counter-field at the end, sec-resolution…",{"comments":43,"answered":33,"key":154},[155,156,159],{"id":56,"text":57},{"id":157,"text":158},"25871975","Thanks, I updated the comment to mention that the link is in the context of MySQL's case.",{"id":160,"text":161},"25872009","Thanks for the comment! Yes, I'd like to clarify Timeflake (and many alternatives suggested) is NOT meant to be used for security. There's an important note on the readme about…",{"commenters":163,"max_depth":164,"maker_replies":43,"first_comment_mins":165,"lifespan_hours":166},78,15,43,195,[168,170,174,176,180,183,186,188,191,193,197,200,203,207,210,213,216,218,221,225,228,230,234,236,240,243,245,247,250,253,256,259,263,265,266,268,271,274,277,279,281,284,286,288,290,293,296,299,302,305,308,311,313,316,319,322,324,327,330,332,334,336,338,340,343,346,348,351,353,356,359,362,365,367,369,371,373,375,378,380,382,384,386,388,390,392,394,397,399,402,404,406,408,409,412,416,418,421,424,426,429,432,435,438,440,442,444,448,452,455,457,459,462,465,467,468,472,476,478,480,482,485,489,493,495,499,502,504,506,510,514,517,520,522,525,527,530],[56,38,38,169,11,33],"project\u002Fpositive\u002Fidea",[171,38,38,172,173,38],"25871920","commenter\u002Fneutral\u002Fnone","ForHackernews",[157,38,38,175,11,33],"maker\u002Fneutral\u002Fdocs",[177,38,38,178,179,38],"25874864","other\u002Fneutral\u002Fnone","fastball",[181,38,38,172,182,38],"25875025","calpaterson",[184,38,38,172,185,38],"25875028","zerd",[83,33,33,187,84,38],"project\u002Fcritical\u002Fdesign",[189,33,38,172,190,38],"25870791","skissane",[192,33,38,172,84,38],"25870827",[194,33,38,195,196,38],"25873570","other\u002Fneutral\u002Fidea","withinboredom",[198,33,38,178,199,38],"25969077","Already__Taken",[201,33,38,172,202,38],"25870844","liversage",[204,39,33,205,206,38],"25873669","project\u002Fcritical\u002Fperformance","advisedwang",[208,39,38,172,209,38],"25874091","crescentfresh",[211,39,38,172,212,38],"25874148","zug_zug",[214,39,38,172,215,38],"25874355","electricshampo1",[217,39,38,172,212,38],"25879777",[219,39,38,172,220,38],"25876103","majormajor",[222,43,43,223,224,38],"25872675","project\u002Fneutral\u002Fdesign","j-pb",[226,43,38,178,227,38],"25872917","Tostino",[229,43,38,172,224,38],"25873064",[231,43,33,232,233,38],"25875173","project\u002Fcritical\u002Fexecution","Sytten",[235,43,38,178,227,38],"25875763",[237,43,33,238,239,38],"25873750","project\u002Fcritical\u002Fidea","dkarl",[241,43,38,172,242,38],"25874024","Quekid5",[244,43,38,172,224,38],"25876066",[246,43,38,172,242,38],"25876480",[248,43,38,172,249,38],"25880147","Can_Not",[251,43,33,238,252,38],"25876527","mywittyname",[254,43,38,172,255,38],"25906397","XCSme",[257,43,38,172,258,38],"25951617","saagarjha",[260,43,43,261,262,38],"25876600","project\u002Fneutral\u002Fidea","Bogdanp",[264,43,38,172,224,38],"25878111",[71,31,48,169,72,38],[267,31,43,261,76,38],"25870957",[269,31,38,172,270,38],"25871144","masklinn",[272,31,38,172,273,38],"25871571","kevincox",[275,31,38,172,276,38],"25871676","SigmundA",[278,31,38,172,273,38],"25871809",[280,31,38,172,252,38],"25876560",[282,48,38,195,283,38],"25871337","techdragon",[285,44,43,261,182,38],"25870815",[287,44,38,195,196,38],"25873519",[95,289,33,238,96,38],7,[291,289,38,172,292,38],"25870900","doersino",[294,289,38,172,295,38],"25870953","jychang",[297,289,38,172,298,38],"25871069","hoseja",[300,289,38,172,301,38],"25871671","alpaca128",[303,289,38,172,304,38],"25871031","onetoo",[306,289,38,172,307,38],"25871087","mytailorisrich",[309,289,43,261,310,38],"25870925","ktpsns",[312,289,38,172,96,38],"25871325",[314,289,38,172,315,38],"25873251","phkahler",[317,289,33,238,318,38],"25871051","zuzun",[320,289,33,238,321,38],"25871146","pas",[75,323,43,261,76,38],8,[325,323,38,172,326,38],"25870746","tomsmeding",[328,323,38,172,329,38],"25870880","rapidlua",[331,323,38,172,326,38],"25872645",[333,323,38,178,227,38],"25873982",[335,323,38,172,307,38],"25870762",[337,323,38,172,76,38],"25870968",[339,323,38,172,307,38],"25871036",[341,323,38,195,342,38],"25870769","StreamBright",[344,323,38,172,345,38],"25870798","DJBunnies",[347,323,38,172,190,38],"25870826",[349,323,38,172,350,38],"25870916","pbronez",[352,323,38,172,190,38],"25870997",[354,323,38,172,355,38],"25870875","globular-toast",[357,323,38,195,358,38],"25871092","seppel",[360,323,38,361,355,38],"25871211","commenter\u002Fneutral\u002Fidea",[363,323,38,172,364,38],"25871508","kube-system",[366,323,38,172,355,38],"25871577",[368,323,38,172,364,38],"25871666",[370,323,38,361,358,38],"25871890",[372,323,38,172,276,38],"25871961",[374,323,38,172,342,38],"25872019",[376,323,38,377,276,38],"25872048","commenter\u002Fneutral\u002Fperformance",[379,323,38,172,358,38],"25872134",[381,323,38,172,276,38],"25872698",[383,323,38,172,358,38],"25872834",[385,323,38,172,276,38],"25873252",[387,323,38,172,358,38],"25877533",[389,323,38,172,276,38],"25878328",[391,323,38,172,358,38],"25878607",[393,323,38,172,276,38],"25882358",[395,323,38,172,396,38],"25875965","jamescampbell",[398,323,38,361,342,38],"25871994",[400,323,38,172,401,38],"25878122","williamdclt",[403,323,38,172,276,38],"25871649",[405,323,38,172,342,38],"25871970",[407,323,38,172,276,38],"25872122",[123,18,43,261,124,38],[410,18,38,172,411,38],"25870893","mfollert",[413,18,43,414,415,38],"25871005","project\u002Fneutral\u002Fperformance","mgkimsal",[417,18,38,377,283,38],"25871234",[419,18,48,169,420,38],"25871232","spiffytech",[422,18,33,423,224,38],"25871981","project\u002Fcritical\u002Fprivacy",[160,18,38,425,11,33],"maker\u002Fneutral\u002Fprivacy",[427,18,43,428,224,38],"25872074","project\u002Fmixed\u002Fprivacy",[430,18,33,423,431,38],"25872996","remcob",[433,18,38,434,224,38],"25873729","commenter\u002Fneutral\u002Fprivacy",[436,18,43,437,124,38],"25872402","project\u002Fneutral\u002Fprivacy",[439,18,43,261,124,38],"25872436",[441,18,33,238,224,38],"25872601",[443,18,38,361,124,38],"25873225",[445,446,43,261,447,38],"25871095",10,"varispeed",[449,450,43,414,451,38],"25870964",11,"chrisacky",[453,450,43,414,454,38],"25871058","kijin",[456,450,43,414,321,38],"25871082",[458,450,43,414,270,38],"25871112",[460,450,43,414,461,38],"25871124","101008",[463,450,43,414,464,38],"25871126","thristian",[143,466,43,261,144,38],12,[119,34,43,261,120,38],[469,470,43,261,471,38],"25871175",14,"solicode",[473,470,43,474,475,38],"25871302","project\u002Fneutral\u002Fexecution","httgp",[477,470,43,474,471,38],"25871389",[479,470,38,178,227,38],"25874050",[481,470,43,175,233,38],"25875262",[483,470,38,484,227,38],"25875780","commenter\u002Fneutral\u002Fdocs",[486,164,38,487,488,38],"25878269","other\u002Fneutral\u002Fprivacy","epakai",[490,491,38,361,492,38],"25878925",16,"qwerty456127",[150,494,43,261,151,38],17,[496,497,43,414,498,38],"25870898",18,"sparkling",[500,497,43,414,501,38],"25871117","theta_d",[127,503,38,361,128,38],19,[505,503,48,169,227,38],"25874069",[507,508,33,187,509,38],"25875073",20,"Dylan16807",[511,508,38,512,513,38],"25875149","commenter\u002Fneutral\u002Fdesign","zamalek",[515,508,38,516,509,38],"25875845","commenter\u002Fcritical\u002Fdesign",[518,508,38,512,519,38],"25875219","cuspycode",[521,508,38,516,509,38],"25875830",[111,523,48,524,112,38],21,"project\u002Fpositive\u002Fnone",[526,523,38,178,415,38],"25870971",[528,523,38,178,529,38],"25871831","audionerd",[87,531,33,423,88,38],22,[],[534,539,543,548,553,558],{"id":535,"name":536,"points":537,"category":538},"25872922","Iconduck",528,"creative",{"id":540,"name":541,"points":542,"category":538},"25885760","Filmulator",282,{"id":544,"name":545,"points":546,"category":547},"25902165","I made an alarm clock",271,"hardware",{"id":549,"name":550,"points":551,"category":552},"25879238","Rysolv",250,"web_saas",{"id":554,"name":555,"points":556,"category":557},"25889420","Gutensearch",202,"learning_science",{"id":559,"name":560,"points":561,"category":562},"25934270","vnav.io",198,"games",false,"v2",{"id":566,"name":5,"line":6,"ai":563,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":567,"top":18,"kw":568,"maker":11,"domain":10,"tier":19,"attempts":38,"strip":569,"url":9,"mix":570,"praise":67,"objection":80,"sub":21},25870482,-0.18,[24,25,26,27],"0011031115301031100000000003312333333303",[31,32,33,34],1794036601779]