← Dukan kayan aiki

Naɗin UUID (v4 GUID)

Kirkira UUID (GUID) v4 na bazuwar nan take a bincikenka. Koyi ma'anar UUID mai bit 128, bambancin sigogi, yiwuwar karo, da lokacin da za a yi amfani da su.

Menene UUID a zahiri

UUID, gajarcewar Universally Unique Identifier, darajar 128-bit ce da ake amfani da ita don yiwa wani abu suna ba tare da neman izini daga kowa a farko ba. Za ka iya ganin ana kiranta GUID kuma, ko Globally Unique Identifier, wanda kawai sunan da Microsoft ta bai wa wannan ra'ayi guda a cikin Windows da duniyar .NET. Kalmomin biyu suna bayyana lambar 128-bit ɗaya a kusan kowace kalma da take da muhimmanci, don haka lokacin da abokin aiki ya ce GUID kai kuma ka ce UUID, kusan koyaushe kuna magana ne game da abu ɗaya daidai.

Waɗannan bits 128 ɗin ana rubuta su yawanci a matsayin lambobin hexadecimal 32 an raba su zuwa ƙungiyoyi biyar ta hanyar layukan haɗi, cikin tsarin 8-4-4-12. Darajar da aka saba gani take kama da 123e4567-e89b-12d3-a456-426614174000. Layukan haɗin ba su da ma'ana kansu; suna wanzuwa ne kawai domin mutum ya karanta darajar ba tare da ɓatar da wurin da yake ba. Kowane harafi lambar hex ce daga 0 zuwa f, shi ya sa UUID take jin kama fiye da lambar yau da kullum ko da yake, a ƙarƙashinta, kawai babbar lamba ɗaya ce mai girma sosai.

Alama mai haske ta hexadecimal tana wakiltar lambar ganewa ta 128-bit ta musamman a bango mai duhun indigo
UUID lamba ɗaya ce ta 128-bit, an rubuta ta a matsayin lambobi hex 32 cikin ƙungiyoyi biyar da aka haɗa da layukan.

Sigogi, da dalilin da ya sa v4 take rinjaya

Ma'aunin yana bayyana sigogi da yawa, kuma sun bambanta a yadda ake cika bits ɗin. Sigar 1 tana dogara ne akan lokaci: tana haɗa lokacin yanzu tare da adireshin MAC na hanyar sadarwar na'urar. Wannan yana sa darajojin v1 su zama masu tsarin lokaci, amma kuma yana bayyana bayani game da inda da kusan lokacin da aka yi su, wanda ba koyaushe ake so ba. Sigogi 3 da 5 sun dogara ne akan suna, suna haɗa namespace da suna don a sami lambar ganewa ɗaya daga shigarwa iri ɗaya koyaushe.

Sigar 4 tana ɗaukar hanya dabam gaba ɗaya. Kusan tsarki ne na bazuwar. Daga cikin bits 128, an keɓe shida don yiwa sigar da bambancin alama, an bar bits 122 don a cika su da bayanai bazuwar. Babu lokaci, babu adireshin MAC, babu namespace, kawai hayaniya. Wannan shi ne dalilin da ya sa yawancin janareto, hada da wannan, suke samar da v4 ta atomatik. Ba ta bayyana komai game da na'urar ko lokacin ƙirƙira ba, kuma ba ta buƙatar haɗin gwiwa tsakanin ɓangarorin da suka yi ta. Kayan aikin a wannan shafi yana gudana gaba ɗaya a cikin burauzarka, don haka darajojin bazuwar ba su taɓa barin na'urarka ba.

Yadda haɗuwa take da wuya sosai

Damuwar da take da hankali ita ce cewa UUID biyu bazuwar wata rana za su iya zama iri ɗaya. Da bits 122 bazuwar, sararin darajojin v4 masu yiwuwa shi ne 2 zuwa iko na 122, wanda kusan 5.3 sai sifili 36. Don sa hakan a fahimtar ɗan adam, za ka buƙaci ka ƙirƙiri biliyoyin UUID kowace daƙiƙa na shekaru masu yawa kafin damar samun kwafi guda ta hau zuwa wani abu da za ka iya aunawa. Ma'aunin kanta yana bayyana yiwuwar haɗuwa a matsayin kusa da sifili sosai har ya zama ba shi da muhimmanci. A aikace ƙungiyoyi suna ɗaukar v4 a matsayin ta musamman kuma su ci gaba, kuma sun yi daidai.

Mabuɗai da yawa daban-daban masu haske suna shawagi a babban wuri mai duhu ba tare da kwafi ba, launukan shuɗi da zinariya
Sararin darajojin v4 masu yiwuwa yana da girma sosai har haɗuwa ba ta yiwuwa a zahiri.

Inda masu haɓaka software suke amfani da su

Domin ta musamman ba ta buƙatar wata hukuma ta tsakiya, UUID suna haskakawa a wuraren da haɗin gwiwa yake da tsada ko ba zai yiwu ba. Sun dace sosai da mabuɗan farko na database, musamman lokacin da sabis da yawa kowanne yake shigar da layuka kuma ba za ka iya dakatawa ka nemi lambar gaba daga wani counter na gama gari ba. A cikin tsare-tsare da aka rarraba, nodes biyu a gefuna daban-daban na duniya za su iya duka su ƙirƙiri lambobin ganewa a lokaci guda ba tare da haɗuwa ba. Suna kuma ƙarfafa mabuɗan idempotency na API, inda mai amfani ke haɗa UUID zuwa buƙata don uwar garke ta iya yin watsi da kwafi cikin lafiya idan hanyar sadarwa ta sake gwadawa. Alamomin zaman, sunayen fayil, ID na abubuwan da suka faru, da mabuɗan saƙo duk suna dogara da wannan halayya ɗaya.

UUID da lambobin auto-increment

Zaɓi na gargajiya dabam shi ne lambar auto-increment: 1, 2, 3, da sauransu. ID na jere sun fi ƙanƙanta, suna tsari yadda ya kamata, kuma suna da sauƙin karantawa, amma suna da matsaloli na gaskiya. Suna bayyana yawan bayanan da suke wanzuwa kuma suna barin wasu su iya hasashen darajojin makwabta, kuma suna tilasta kowace shigarwa ta wuce ta counter ɗaya, wanda ke zama cikas lokacin da ka raba database ko ka haɗa bayanai daga tushe da yawa. UUID suna warware waɗannan matsalolin ta hanyar barin kowane ɓangare ya ƙirƙiri mabuɗi da kansa kuma ba tare da bayyana komai game da yawa ko tsari ba. Musanyar ita ce girma da ɗan ƙarancin wuri a cikin indexes. Ga tsare-tsaren da ke haɓaka ko da dole su ɓoye ciki-cikinsu, wannan musanya yawanci tana da amfani. Za ka iya bincika wannan da irin waɗannan kayan aiki ta tarin dukkan janareto namu, ko ka bincika mafi girman tarin kayan aikin masu haɓakawa don ƙarin abubuwan gini masu alaƙa.

Tambayoyin da ake yawan yi

GUID iri ɗaya ne da UUID?

Don manufofin yau da kullum, eh. GUID sunan Microsoft ne ga lambar ganewa ta 128-bit ɗaya. Bambanci na gaskiya kaɗai shi ne tsarin byte a cikin tsari na binary na asali a wasu tsare-tsaren Windows; a cikin tsarin string ɗaya ne kuma za a iya musanya su.

Wace sigar UUID wannan kayan aikin yake ƙirƙira?

Yana ƙirƙira sigar 4, wanda ke bazuwar. Daga cikin bits 128, an cika 122 da bayanai bazuwar, wanda yake sa kowace darajar ba ta yiwuwa sosai ta maimaita kuma ba ta ɗauke da bayanin lokaci ko na'ura.

UUID biyu za su iya zama iri ɗaya?

A ka'ida yiwuwar ba sifili sosai ba ce, amma da kusan 5.3 sau 10 zuwa 36 darajojin v4 masu yiwuwa yana ƙarami sosai har ake ɗauke shi a matsayin ba shi da muhimmanci. Za ka buƙaci ƙirƙirar adadi masu yawa sosai kafin haɗuwa ta zama mai yiwuwa.

Me ya sa a yi amfani da UUID maimakon lambar auto-increment?

UUID za a iya ƙirƙira su da kanta ta kowace sabis ba tare da counter na gama gari ba, ba sa bayyana adadin bayanai ko tsari, kuma suna sa haɗa bayanai daga tushe da yawa ya zama mai sauƙi. ID na auto-increment sun fi ƙanƙanta amma suna zama cikas kuma suna zubar da bayani a girma.

UUID ana ƙirƙira su a kan uwar garke?

A'a. Wannan kayan aikin yana gudana gaba ɗaya a cikin burauzarka, don haka ana samar da darajojin bazuwar a gida kuma ba a taɓa aika su zuwa ko'ina ba. Wannan yana sa yana da lafiya a yi amfani da shi ga mabuɗai da alamomi da kake son riƙe su a sirri.

Menene ma'anar tsarin layin haɗi?

Tsarin ƙungiya 8-4-4-4-12 kawai al'ada ce ta sauƙin karantawa. Layukan haɗin ba su ɗauke da bayani; suna raba lambobin hex 32 zuwa gutsuttsura don mutane su iya duba da kwatanta darajoji cikin sauƙi.