Evolution ya UUID: Kuelewa Toleo la 1, 6, na 7
Kitambulisho cha Kipekee Ulimwenguni (UUID) kimekuwa nguzo ya mifumo iliyosambazwa kwa miongo kadhaa, kikitoa njia ya kuaminika ya kuzalisha funguo za kipekee bila uratibu wa kati. Ingawa UUID toleo la 4 (ambalo linategemea nambari za nasibu kabisa) ndilo linalojulikana na kutumiwa zaidi, lina vizuizi vya asili linapotumiwa kama funguo kuu katika mifumo ya usimamizi wa hifadhidata za mahusiano (RDBMS). Unasibu ni mzuri kwa kutotabirika, lakini ni mbaya sana kwa uwekaji fahirisi wa hifadhidata. Unapoingiza UUID ya nasibu kwenye fahirisi ya B-tree, inasababisha migawanyiko mikubwa ya kurasa na ufragmentishaji wa fahirisi, na kupelekea kupungua kwa utendaji wa uandishi baada ya muda. Hapa ndipo UUID zinazotegemea muda—kunusurika matoleo ya 1, 6, na 7—jinapoingia, zikitoa mbadala uliopangwa unaoheshimu upekee na mpangilio wa nyakati.
UUID toleo la 1 lilikuwa jaribio la kwanza la kuchanganya upekee na muda. Inazalisha kitambulisho kwa kutumia muhuri wa muda wa sasa, mfuatano wa saa, na anwani ya MAC ya nodi. Kuingizwa kwa anwani ya MAC kilihakikisha upekee wa nafasi kwenye mashine tofauti, wakati muhuri wa muda kilihakikisha upekee wa wakati. Hata hivyo, UUID v1 ilikuwa na kasoro kubwa kwa uwekaji fahirisi wa hifadhidata: muhuri wake wa muda ulipangwa hivi kwamba biti muhimu zaidi ziliwakilisha mchanganuo wa chini kabisa wa muda. Kwa maneno rahisi, muda ulivyozidi kwenda, mwanzo wa mfuatano wa UUID ulibadilika haraka na bila kutabirika, ikiharibu uwezekano wowote wa upangaji wa mfuatano. Zaidi ya hayo, kufichua anwani ya MAC kuliibua wasiwasi mkubwa wa usalama na faragha, na kuwafanya waendelezaji wengi kuacha v1 kabisa.
Ili kutatua matatizo hayo ya wazi, jamii ya wahandisi ilitambulisha UUID toleo la 6 na toleo la 7. UUID v6 kimsingi ni UUID v1 iliyopangwa upya. Inachukua vifaa vya muhuri wa muda wa v1 na kuvipanga upya ili biti muhimu zaidi ziwakilishe mchanganuo wa juu zaidi wa muda (miaka, miezi, siku), ikishuka hadi sehemu za sekunde. Mpangilio huu rahisi unahakikisha kuwa thamani za UUID v6 zinaweza kupangwa kwa mpangilio wa herufi na muda. Ukizalisha UUID v6 leo na nyingine kesho, UUID ya kesho itapangwa baada ya ya leo, ikilingana kikamilifu na jinsi B-trees za hifadhidata zinavyotarajia data kuingizwa. Hii inaondoa mgawanyiko wa fahirisi unaohusishwa na v4 na kutowezekana kwa upangaji wa v1, huku ikibaki inaendana na mifumo inayotarajia muundo wa kijadi wa UUID.
UUID toleo la 7 inachukua uboreshaji huu hatua moja zaidi na inawakilisha kiwango cha dhahabu cha kisasa cha funguo kuu za hifadhidata. Badala ya kutegemea kipindi cha zamani cha Gregorian kinachotumiwa na v1 na v6, UUID v7 inatumia muhuri wa muda wa kawaida wa Unix Epoch (milisekunde tangu usiku wa manane 1 Jan 1970 UTC). Muhuri huu wa muda unachukua bit 48 za kwanza za kitambulisho. Biti zilizobaki zinajazwa na data za nasibu zenye nguvu za kikriptografia. Njia hii ya mseto inaleta bora zaidi ya pande zote mbili: uwezo thabiti wa upangaji mfuatano unaohitajika kwa uingizaji wa hifadhidata wenye utendaji wa juu, ukichanganywa na usalama na usiri wa uzalishaji wa data za nasibu. Kwa kutumia jenereta yetu ya UUID ya bure 100% kwenye kivinjari, unaweza kuunda vitambulisho hivi vya kisasa papo hapo bila kuhatarisha data yako kwani hakuna data inayopakiwa kwenye seva.