Splync Inatumia Vitambulisho Viwili kwa ID Nyeti
Kwenye databana ya Splync, kila mtumiaji — na kila mradi — unajulikana kwa kutumia vitambulisho viwili tofauti: UUID na namba inayoongezeka kiotomatiki.
Namba inayoongezeka kiotomatiki ni ile ambayo watu wengi wanaifahamu — ni kama tu kihakiki: 1, 2, 3, na kuendelea. Splync hutumia namba hizi ndani ya databana ya seva ili kupanga karibu kila jedwali kwa sababu ni rahisi, haraka, na yenye ufanisi kwa miunganisho. Hata hivyo, hatuonyeshi namba hizi za ndani kwenye app. Kwa mfano, ikiwa ungekuwa mtumiaji wa 42 kujiandikisha, ID yako ya ndani kwenye databana ingekuwa 42. Lakini app yako ya iOS haitakiona “42.” Badala yake, app hutumia UUID kukuwakilisha. Tunatumia mbinu sawa kwenye miradi — ID ya mradi inaweza kuwa "7" ndani ya databana, lakini app daima hutumia UUID ndefu.
UUID ni Nini
UUID inamaanisha Kitambulisho cha Kipekee cha Ulimwenguni. Splync inatumia UUID za toleo la 4, tofauti ya 1, zinazokubaliana na RFC 4122 — moja ya viwango vilivyokubaliwa sana. Ni mfuatano wa nasibu, unaoonekana kama 949ca11c-a6ed-48a3-b40a-fa9727494917. UUID kawaida huandikwa kama herufi 32 za hexadecimal zilizogawanyika katika sehemu tano zinazotenganishwa na viunganishi. Imekusudiwa kuwa ya kipekee duniani kote, ikimaanisha haitagongana hata kwenye seva au databana tofauti. Kihisabati, kuna takriban 16^32 = 2^128 mchanganyiko unaowezekana. Hata hivyo, kwani biti sita zimehifadhiwa kuonyesha tofauti na toleo, idadi kamili ya UUID za toleo-4, tofauti-1 ni takriban 2^122, au karibu 5.3 x 10^36 — idadi kubwa sana inayohakikisha upekee wa vitendo.
Je, 1 / 5,300,000,000,000,000,000,000,000,000,000,000,000 ni Ndogo Kiasi Gani
Kila jozi ya UUIDv4 ina nafasi ya 1 katika 5.3 × 10^36 za kufanana. Idadi hiyo ni ndogo sana karibu haitaki kuwa katika mawazo ya kibinadamu. Kwa kuiona, fikiria ukirusha kete 47 mara moja. Nafasi ya kupata zote kuwa moja — kila kete ikionyesha “1” — ni kama 1 katika 6^47, au takriban 1 katika 3.7 × 10^36. Hiyo ni ukubwa sawa na mgongano wa UUID. Sasa, fikiria kila mtu duniani — takriban bilioni nane wetu — akirusha hizo kete 47 kila milisekunde kwa miaka trilioni. Hiyo ni takriban 2.5 × 10^32 majaribio yote. Hata baada ya yote hayo, nafasi ya mtu, mahali fulani, kupata 47 kuwa moja kwa wakati mmoja bado ingekuwa moja kwa elfu kumi. Hiyo inaonyesha jinsi isivyowezekana kwa UUIDv4 mbili kugongana. Sio “nadra.” Ni jambo lisiloaminika kabisa — aina ya tukio ambalo lingefanya wanafizikia kutupa kahawa yao na kuangalia ulimwengu kwa makosa.
Je, Ni Rahisi Kuunda UUID
Mwanzoni, kuunda UUID kunaweza kuonekana rahisi — baada ya yote, ni kama mfuatano wa nasibu wa alphanumeric. Lakini jaribu kuandika moja wewe mwenyewe kwa kalamu na karatasi. Unaweza kuandika herufi 36, ndiyo, lakini ukirudia zoezi hilo maelfu ya mara, mifumo wazi itaonekana. Labda unapendelea namba fulani kama 3 au 8, na hutumii herufi kama x. Kompyuta inaweza kugundua mwelekeo huo mara moja. Mdukuzi wa kiovu anaweza kuchanganua tabia zako na kupunguza “siri” yako ya nasibu ndani ya siku moja. Kisha, vipi ikiwa pia utageukia kompyuta na kuita rand(), kazi ya nasibu ya kawaida, kuunda kila namba. Hiyo ni bora — lakini si nzuri vya kutosha. Wawekaji namba “nasibu” katika mazingira ya programu ya kawaida ni pseudorandom, maana wanafuata mfuatano wa hisabati unaotabirika kuanzia mbegu ya ndani, ambayo kawaida inategemea wakati wa mfumo. Ikiwa mtu ataigundua au kuikisia mbegu hiyo, wanaweza kuzaa kila thamani ambayo jenereta yako iliwahi kutoa.
Je, UUID ni ya Nasibu Kamili Kiasi Gani
Nasibu kamili haipo kweli — kama vile kete kamili haipo, au kurusha kete kwa nasibu kamili haipo. Kila mchakato wa kimwili au kidijitali unafuata sheria za msingi. Hata hivyo, wanafizikia na wahandisi wamechukua miongo kadhaa kubuni algorithmu zinazokaribia iwezekanavyo nasibu halisi. Wakati Splync inaunda UUID mpya ya toleo-4, haichagui tu “namba kwa nasibu” kama kurusha kete. Inauliza mfumo wa uendeshaji kwa dalili ndogo za kutotabirika — kwa mfano, wakati halisi CPU yako inamaliza kazi, kelele ndogo ya umeme ndani ya vifaa, au mabadiliko ya muda ya nyuma kwenye kumbukumbu. Vipande hivi vya entropy hukusanywa na kuchanganywa katika biti 128 za data — mfuatano mrefu wa moja na sifuri. Matokeo ni msimbo ambao ni vigumu sana kukisia au kurudia kwa watumiaji wa app au wadukuzi wanaoweza kuwa na nia mbaya.
Mfumo wa Vitambulisho Viwili vya Splync
Splync hutumia UUID kwa vitambulisho nyeti kama vile ID za watumiaji na ID za miradi, kwa sababu ni za nasibu sana na salama.
Wakati huo huo, ndani ya seva yake, Splync inabadilisha UUID hizo kuwa namba zinazoongezeka kiotomatiki kwa utafutaji wa haraka na uchambuzi kwenye dataset kubwa. Mbinu hii ya vitambulisho viwili inafikia usawa kati ya usalama na urahisi — usiri wa nje na utendaji wa ndani. Lengo la Splync ni kuwa app ya kufuatilia bajeti bila wasiwasi, rahisi, na salama. Nyuma ya UI inayoonekana, tunaendelea kuboresha usanifu wetu ili kuweka mambo laini, salama, na smart kimya kimya.