HighLoad ++, Mikhail Tyulenev (MongoDB): Matsakaicin dalili: daga ka'idar zuwa aiki

Za a gudanar da taron HighLoad++ na gaba a ranar 6 da 7 ga Afrilu, 2020 a St. Petersburg.
Cikakkun bayanai da tikiti mahada. HighLoad++ Siberiya 2019. Hall "Krasnoyarsk". Yuni 25, 12:00. Wadannan da gabatarwa.

HighLoad ++, Mikhail Tyulenev (MongoDB): Matsakaicin dalili: daga ka'idar zuwa aiki

Yana faruwa cewa buƙatun aiki sun ci karo da ka'idar, inda ba a la'akari da abubuwan da ke da mahimmanci ga samfurin kasuwanci ba. Wannan magana tana gabatar da tsari don zaɓar da haɗa hanyoyi daban-daban don ƙirƙirar abubuwan daidaitawar Causal dangane da binciken ilimi dangane da buƙatun samfurin kasuwanci. Masu sauraro za su koyi game da hanyoyin da ake amfani da su na ka'idar agogo mai ma'ana, bin diddigin dogaro, tsarin tsaro, aiki tare da agogo, da kuma dalilin da yasa MongoDB ya daidaita kan wasu mafita.

Mikhail Tyulenev (wanda ake kira MT): - Zan yi magana game da daidaiton Causal - wannan sigar da muka yi aiki akai a MongoDB. Ina aiki a cikin rukuni na tsarin rarraba, mun yi shi kimanin shekaru biyu da suka wuce.

HighLoad ++, Mikhail Tyulenev (MongoDB): Matsakaicin dalili: daga ka'idar zuwa aiki

A cikin wannan tsari, dole ne in fahimci kaina da yawancin binciken ilimi, saboda an yi nazarin wannan fasalin sosai. Ya juya cewa babu labarin guda ɗaya da ya dace da abin da ake buƙata a cikin bayanan samarwa saboda ƙayyadaddun buƙatun da ƙila ke kasancewa a cikin kowane aikace-aikacen samarwa.

Zan yi magana game da yadda mu, a matsayinmu na masu amfani da Bincike na ilimi, muna shirya wani abu daga gare shi wanda za mu iya gabatar wa masu amfani da mu azaman abincin da aka ƙera wanda ya dace kuma mai aminci don amfani.

Daidaituwar sanadi. Bari mu ayyana ra'ayoyi

Da farko, Ina so in faɗi a cikin sharuddan gabaɗaya menene daidaiton Causal. Akwai haruffa guda biyu - Leonard da Penny (jerin TV "The Big Bang Theory"):

HighLoad ++, Mikhail Tyulenev (MongoDB): Matsakaicin dalili: daga ka'idar zuwa aiki

Bari mu ce Penny tana Turai kuma Leonard yana son ya jefa mata liyafa ta ban mamaki. Kuma ba zai iya tunanin wani abu mafi kyau fiye da jefar da ita daga jerin abokansa ba, yana aika duk abokansa sabuntawa akan abinci: "Bari mu sa Penny farin ciki!" (Tana Turai, a lokacin da take barci, ba ta ga duk wannan ba kuma ba za ta iya gani ba, don ba ta nan). A ƙarshe, ta share wannan post ɗin, ta goge shi daga Ciyar kuma ta dawo da damar don kada ta lura da komai kuma babu abin kunya.
Wannan duk yana da kyau kuma yana da kyau, amma bari mu ɗauka cewa an rarraba tsarin kuma abubuwa sun ɗan yi kuskure. Yana iya, alal misali, ya faru cewa ƙuntatawar samun damar Penny ta faru bayan wannan post ɗin ya bayyana, idan abubuwan da suka faru ba su da alaƙa ta hanyar dalili da sakamako. A zahiri, wannan shine misalin lokacin da ake buƙatar daidaiton Causal don yin aikin kasuwanci (a wannan yanayin).

A haƙiƙa, waɗannan ƙaƙƙarfan kaddarorin bayanai ne marasa mahimmanci - mutane kaɗan ne ke tallafa musu. Bari mu matsa zuwa samfurori.

Samfuran daidaito

Menene ainihin samfurin daidaito a cikin bayanan bayanai? Waɗannan su ne wasu tabbacin da tsarin da aka rarraba ke bayarwa game da bayanan da abokin ciniki zai iya karɓa kuma a cikin wane tsari.

A ka'ida, duk nau'ikan daidaito sun sauko zuwa yadda tsarin da aka rarraba yake kama da tsarin da ke gudana, alal misali, akan kulli ɗaya akan kwamfutar tafi-da-gidanka. Kuma wannan shine yadda tsarin da ke gudana akan dubban "Nodes" masu rarraba geo-rarrabuwa zuwa kwamfutar tafi-da-gidanka, wanda duk waɗannan kaddarorin ana yin su ta atomatik bisa manufa.

Sabili da haka, ana amfani da samfuran daidaito kawai ga tsarin rarrabawa. Duk tsarin da suka wanzu kuma suna aiki a sikeli ɗaya a tsaye ba su fuskanci irin waɗannan matsalolin ba. Akwai cache na Buffer guda ɗaya, kuma koyaushe ana karanta komai daga gare ta.

Samfurin Karfi

A zahiri, samfurin farko shine Karfi (ko layin iya tashi, kamar yadda ake yawan kiransa). Wannan samfurin daidaito ne wanda ke tabbatar da cewa kowane canji, da zarar an tabbatar da cewa ya faru, yana bayyane ga duk masu amfani da tsarin.

Wannan yana haifar da tsari na duniya na duk abubuwan da ke faruwa a cikin ma'ajin bayanai. Wannan dukiya ce mai ƙarfi sosai, kuma yana da tsada sosai. Duk da haka, yana da goyon baya sosai. Yana da tsada sosai kuma a hankali - ba kasafai ake amfani da shi ba. Wannan ake kira iya tashi.

Akwai wata, ƙaƙƙarfan kadarorin da ake tallafawa a cikin Spanner - ana kiranta Ƙaddamarwa na waje. Za mu yi magana game da shi kadan kadan.

Dalilin

Na gaba shine Causal, wanda shine ainihin abin da nake magana akai. Akwai ƙarin ƙananan matakai da yawa tsakanin Ƙarfafa da Causal waɗanda ba zan yi magana a kansu ba, amma duk sun gangara zuwa Causal. Wannan samfuri ne mai mahimmanci saboda shi ne mafi ƙarfi a cikin duk samfuran, mafi ƙarfin daidaito a gaban hanyar sadarwa ko ɓangarori.

Abubuwan da ke haifar da haƙiƙa yanayi ne waɗanda abubuwan da suka faru ke haɗuwa ta hanyar alaƙa da tasiri. Sau da yawa ana fahimtar su azaman karanta haƙƙoƙin ku daga ra'ayin abokin ciniki. Idan abokin ciniki ya lura da wasu dabi'u, ba zai iya ganin ƙimar da suka kasance a baya ba. Ya riga ya fara ganin karatun prefix. Duk ya zo ga abu ɗaya.
Abubuwan da ke haifar da daidaito a matsayin tsarin daidaitawa wani sashi ne na odar abubuwan da suka faru a kan uwar garke, wanda ake lura da abubuwan da suka faru daga duk abokan ciniki a cikin jeri ɗaya. A wannan yanayin, Leonard da Penny.

A ƙarshe

Samfurin na uku shine Ƙarshen Ƙarshe. Wannan shine abin da gaba ɗaya duk tsarin da aka rarraba ke tallafawa, ƙaramin ƙirar da ke da ma'ana kwata-kwata. Yana nufin abubuwa masu zuwa: idan muna da wasu canje-canje a cikin bayanan, a wani lokaci sun zama daidai.

A irin wannan lokacin ba ta ce komai ba, in ba haka ba za ta juya zuwa ga daidaito na waje - zai zama labari na daban. Duk da haka, wannan sanannen samfurin ne, wanda ya fi kowa. Ta hanyar tsoho, duk masu amfani da tsarin da aka rarraba suna amfani da Ƙarshen Ƙarshe.

Ina so in ba da wasu misalan kwatance:

HighLoad ++, Mikhail Tyulenev (MongoDB): Matsakaicin dalili: daga ka'idar zuwa aiki

Menene waɗannan kiban ke nufi?

  • Latency Yayin da ƙarfin daidaito ya karu, ya zama ya fi girma don dalilai masu ma'ana: kana buƙatar yin ƙarin rikodin, samun tabbaci daga duk runduna da nodes waɗanda ke shiga cikin gungu cewa bayanan sun riga sun kasance a can. Dangane da haka, Ƙarshen Ƙarshen yana da amsa mafi sauri, saboda a can, a matsayin mai mulkin, za ku iya yin shi har zuwa ƙwaƙwalwar ajiya kuma wannan zai, bisa manufa, ya isa.
  • Kasancewa. Idan muka fahimci wannan a matsayin ikon tsarin don amsawa a gaban raguwa na cibiyar sadarwa, ɓangarori, ko wani nau'i na rashin nasara, rashin haƙuri yana ƙaruwa yayin da tsarin daidaituwa ya ragu, tun da ya ishe mu cewa mai watsa shiri ɗaya yana rayuwa kuma a daidai wannan. lokaci yana samar da wasu bayanai. Ƙarshen Ƙarshe baya bada garantin komai game da bayanan kwata-kwata - yana iya zama komai.
  • Abubuwan da ba a sani ba. A lokaci guda, ba shakka, adadin anomalies yana ƙaruwa. A cikin Ƙarfin Ƙarfafawa kusan bai kamata su kasance ba kwata-kwata, amma a Ƙarshen Ƙarshe suna iya zama wani abu. Tambayar ta taso: me yasa mutane ke zaɓar Ƙarshen Ƙarfafawa idan ya ƙunshi abubuwan da ba su dace ba? Amsar ita ce, ƙirar Ƙarshen Ƙarshe suna aiki kuma akwai abubuwan da ba su da kyau, alal misali, a cikin ɗan gajeren lokaci; yana yiwuwa a yi amfani da mayen don karantawa da ƙari ko žasa karanta daidaitattun bayanai; Sau da yawa yana yiwuwa a yi amfani da samfurori masu ƙarfi masu ƙarfi. A aikace wannan yana aiki, kuma sau da yawa adadin anomalies yana iyakance a cikin lokaci.

Ka'idar CAP

Lokacin da ka ga kalmomin daidaito, samuwa - menene ya zo zuciyarka? Haka ne - CAP theorem! Yanzu ina so in kawar da tatsuniya ... Ba ni ba - Martin Kleppmann ne, wanda ya rubuta wani labari mai ban mamaki, littafi mai ban mamaki.

HighLoad ++, Mikhail Tyulenev (MongoDB): Matsakaicin dalili: daga ka'idar zuwa aiki

Ka'idar CAP ƙa'ida ce da aka ƙirƙira a cikin 2000s cewa Daidaituwa, Kasancewa, Rarraba: ɗauki kowane biyu, kuma ba za ku iya zaɓar uku ba. Wata ƙa'ida ce. Gilbert da Lynch sun tabbatar da shi azaman ka'idar bayan 'yan shekaru. Sa'an nan aka fara amfani da wannan a matsayin mantra - tsarin ya fara rarraba zuwa CA, CP, AP da sauransu.

An tabbatar da wannan ka'idar a zahiri don lokuta masu zuwa ... Da fari dai, Ba a yi la'akari da samuwa ba a matsayin ci gaba da ƙima daga sifili zuwa ɗaruruwa (0 - tsarin "matattu", 100 - yana amsawa da sauri; ana amfani da mu don yin la'akari da haka). , amma a matsayin dukiya na algorithm , wanda ke ba da tabbacin cewa ga duk ayyukansa yana dawo da bayanai.

Babu wata kalma game da lokacin amsa kwata-kwata! Akwai algorithm wanda ke dawo da bayanai bayan shekaru 100 - ingantaccen algorithm na samuwa, wanda wani bangare ne na ka'idar CAP.
Na biyu: an tabbatar da ka'idar don canje-canje a cikin ƙimar maɓalli guda ɗaya, duk da cewa waɗannan canje-canjen suna iya canzawa. Wannan yana nufin cewa a zahiri ba a yi amfani da su a zahiri ba, saboda samfuran sun bambanta Madaidaicin Ƙarshe, Ƙarfafa ƙarfi (wataƙila).

Menene duk wannan? Bugu da ƙari, ka'idar CAP a daidai hanyar da aka tabbatar da ita ba ta da amfani kuma ba a cika amfani da ita ba. A cikin ka'idar tsari, ko ta yaya ya iyakance komai. Ya fito da wata ka'ida wacce ke daidai da fahimta, amma gabaɗaya ba a tabbatar da ita ba.

Daidaitaccen dalili shine mafi ƙarfi samfurin

Abin da ke faruwa a yanzu shi ne cewa za ku iya samun duk abubuwa uku: daidaito, samuwa ta amfani da Partitions. Musamman ma, daidaituwa na Causal shine mafi girman samfurin daidaituwa, wanda har yanzu yana aiki a gaban Partitions (karye a cikin hanyar sadarwa). Shi ya sa yake da matukar sha’awa, kuma shi ya sa muka dauke shi.

HighLoad ++, Mikhail Tyulenev (MongoDB): Matsakaicin dalili: daga ka'idar zuwa aiki

Da farko, yana sauƙaƙa aikin masu haɓaka aikace-aikacen. Musamman, kasancewar babban goyon baya daga uwar garken: lokacin da duk bayanan da ke faruwa a cikin abokin ciniki ɗaya an ba da tabbacin isa ga jeri ɗaya akan wani abokin ciniki. Abu na biyu, yana jure wa partitions.

MongoDB Kitchen na ciki

Tunawa da cewa abincin rana ne, muka matsa zuwa kicin. Zan gaya muku game da tsarin tsarin, wato, menene MongoDB ga waɗanda ke jin irin wannan bayanan a karon farko.

HighLoad ++, Mikhail Tyulenev (MongoDB): Matsakaicin dalili: daga ka'idar zuwa aiki

HighLoad ++, Mikhail Tyulenev (MongoDB): Matsakaicin dalili: daga ka'idar zuwa aiki

MongoDB (wanda ake kira "MongoDB") shine tsarin rarrabawa wanda ke goyan bayan sikelin kwance, wato sharding; kuma a cikin kowane shard kuma yana goyan bayan sakewa bayanai, wato, maimaitawa.

Sharding a MongoDB (ba bayanan da ke da alaƙa ba) yana aiwatar da daidaitawa ta atomatik, wato, kowane tarin takardu (ko “tebur” dangane da bayanan alaƙa) an kasu kashi-kashi, kuma uwar garken tana motsa su ta atomatik tsakanin shards.

The Query Router, wanda ke rarraba buƙatun, ga abokin ciniki wani abokin ciniki ne wanda ta hanyarsa yake aiki. Ya riga ya san inda kuma menene bayanan ke samuwa kuma yana jagorantar duk buƙatun zuwa madaidaicin shard.

Wani muhimmin batu: MongoDB jagora ne guda ɗaya. Akwai Primary guda ɗaya - yana iya ɗaukar bayanan da ke goyan bayan maɓallan da ya ƙunshi. Ba za ku iya rubuta Multi-master ba.

Mun sanya saki 4.2 - sababbin abubuwa masu ban sha'awa sun bayyana a can. Musamman ma, sun shigar da Lucene - bincike - wato java mai aiwatarwa kai tsaye cikin Mongo, kuma a can ya zama mai yiwuwa a yi bincike ta hanyar Lucene, daidai da na Elastica.

Kuma sun yi sabon samfuri - Charts, ana kuma samunsa akan Atlas (Mongo's own Cloud). Suna da Tier Free - zaku iya wasa tare da shi. Ina matukar son Charts - duban bayanai, da fahimta sosai.

Sinadaran Halin daidaito

Na kirga kusan labarai 230 da aka buga akan wannan batu - daga Leslie Lampert. Yanzu daga ƙwaƙwalwar ajiya zan isar muku da wasu sassa na waɗannan kayan.

HighLoad ++, Mikhail Tyulenev (MongoDB): Matsakaicin dalili: daga ka'idar zuwa aiki

An fara ne da labarin da Leslie Lampert ta rubuta, wanda aka rubuta a cikin 1970s. Kamar yadda kuke gani, wasu bincike kan wannan batu har yanzu suna ci gaba. Yanzu daidaituwar Causal yana fuskantar sha'awa dangane da ci gaban tsarin rarrabawa.

Ƙuntatawa

Wane hane-hane akwai? Wannan a haƙiƙa yana ɗaya daga cikin mahimman abubuwan, saboda ƙuntatawa da tsarin samarwa ya sha bamban da ƙuntatawa da ke akwai a cikin labaran ilimi. Yawancin lokaci suna da wucin gadi.

HighLoad ++, Mikhail Tyulenev (MongoDB): Matsakaicin dalili: daga ka'idar zuwa aiki

  • Da farko, "MongoDB" jagora ne guda ɗaya, kamar yadda na riga na faɗa (wannan yana sauƙaƙa sosai).
  • Mun yi imanin cewa tsarin ya kamata ya goyi bayan shards dubu 10. Ba za mu iya yin kowane yanke shawara na gine-ginen da za su iyakance wannan ƙimar ba.
  • Muna da gajimare, amma muna ɗauka cewa har yanzu mutum ya kamata ya sami dama lokacin da ya zazzage binary, yana gudanar da shi akan kwamfutar tafi-da-gidanka, kuma komai yana aiki sosai.
  • Muna ɗaukar wani abu wanda Bincike da wuya ya ɗauka: abokan ciniki na waje na iya yin duk abin da suke so. MongoDB shine tushen budewa. Saboda haka, abokan ciniki na iya zama masu wayo da fushi - suna iya so su karya komai. Muna tsammanin cewa Byzantine Feilors na iya samo asali.
  • Ga abokan ciniki na waje waɗanda ke waje da kewaye, akwai ƙayyadaddun mahimmanci: idan wannan fasalin ya kasance naƙasasshe, to bai kamata a lura da lalata aikin ba.
  • Wani batu gabaɗaya anti-ilimi: dacewa da sigogin baya da na gaba. Tsofaffin direbobi dole ne su goyi bayan sabbin sabuntawa, kuma dole ne ma'aunin bayanan ya goyi bayan tsoffin direbobi.

Gabaɗaya, duk wannan yana sanya hani.

Abubuwan daidaiton dalili

Yanzu zan yi magana game da wasu sassan. Idan muka yi la'akari da daidaiton Causal gabaɗaya, zamu iya zaɓar tubalan. Mun zaɓi daga ayyukan da ke cikin wani yanki: Binciken Dogara, zabar agogo, yadda waɗannan agogo za su iya aiki tare da juna, da kuma yadda muke tabbatar da tsaro - wannan shine ƙayyadaddun abin da zan yi magana akai:

HighLoad ++, Mikhail Tyulenev (MongoDB): Matsakaicin dalili: daga ka'idar zuwa aiki

Cikakkun Dogara

Me yasa ake bukata? Don haka lokacin da aka maimaita bayanai, kowane rikodin, kowane canjin bayanai ya ƙunshi bayanai game da canje-canjen da ya dogara da su. Canji na farko da butulci shine lokacin da kowane saƙon da ke ɗauke da rikodin ya ƙunshi bayanai game da saƙonnin da suka gabata:

HighLoad ++, Mikhail Tyulenev (MongoDB): Matsakaicin dalili: daga ka'idar zuwa aiki

A cikin wannan misali, lambar a cikin maƙallan lanƙwasa ita ce lambobin rikodin. Wani lokaci waɗannan bayanan tare da ƙima ana canja su gaba ɗaya, wani lokacin wasu nau'ikan ana canja su. Maganar ƙasa ita ce kowane canji ya ƙunshi bayani game da wanda ya gabata (ba shakka yana ɗaukar duk wannan a cikin kanta).

Me ya sa muka yanke shawarar cewa ba za mu yi amfani da wannan hanyar ba (cikakken bin diddigi)? Babu shakka, saboda wannan hanyar ba ta da amfani: duk wani canji zuwa hanyar sadarwar zamantakewa ya dogara da duk canje-canjen da suka gabata zuwa waccan hanyar sadarwar zamantakewa, canja wurin, ce, Facebook ko VKontakte a kowane sabuntawa. Duk da haka, akwai bincike da yawa akan Cikakkun Dogaro da Bin-sawu - waɗannan cibiyoyin sadarwar zamani ne; ga wasu yanayi yana aiki da gaske.

Bibiyan Dogaro Bayyananne

Na gaba ya fi iyaka. Ana kuma la'akari da canja wurin bayanai a nan, amma kawai abin da ke dogara a fili. Abin da ya dogara da abin da, a matsayin ka'ida, aikace-aikacen ya ƙaddara. Lokacin da aka kwaikwayi bayanai, tambayar tana mayar da martani ne kawai lokacin da aka gamsu da abin dogaro na baya, wato, nunawa. Wannan shine ainihin yadda daidaiton Causal ke aiki.

HighLoad ++, Mikhail Tyulenev (MongoDB): Matsakaicin dalili: daga ka'idar zuwa aiki

Ta ga cewa rikodin 5 ya dogara da bayanan 1, 2, 3, 4 - saboda haka, ta jira kafin abokin ciniki ya sami damar yin amfani da canje-canjen da Penny ta yanke shawarar samun damar, lokacin da duk canje-canjen da suka gabata sun riga sun wuce ta cikin bayanan.

Wannan ma bai dace da mu ba, saboda har yanzu akwai bayanai da yawa, kuma zai rage al'amura. Akwai wata hanya...

Agogon Lamport

Sun tsufa sosai. Agogon Lamport yana nufin cewa waɗannan abubuwan dogara an naɗe su cikin aikin sikeli, wanda ake kira agogon Lamport.

Ayyukan scalar wasu ƙididdiga ne. Yawancin lokaci ana kiransa lokacin ma'ana. Tare da kowane taron, wannan counter yana ƙaruwa. Counter, wanda a halin yanzu aka sani ga tsari, yana aika kowane sako. A bayyane yake cewa matakai na iya zama daga aiki tare, suna iya samun lokuta daban-daban. Koyaya, tsarin ko ta yaya yana daidaita agogo da irin wannan saƙon. Menene ya faru a wannan yanayin?

Na raba wancan babban shard ɗin gida biyu don bayyanawa: Abokai na iya rayuwa a cikin kulli ɗaya, wanda ya ƙunshi guntun tarin, kuma Feed na iya rayuwa a cikin wani kumburi, wanda ya ƙunshi guntun wannan tarin. Shin ya bayyana yadda za su iya fita daga layi? Ciyarwar Farko za ta ce: “An sake maimaitawa”, sannan Abokai. Idan tsarin bai samar da wani nau'i na garantin cewa ba za a nuna Ciyar ba har sai an isar da amintattun abokai a cikin tarin abokai, to za mu sami ainihin yanayin da na ambata.

Kuna ganin yadda lokacin ƙidayar akan Ciyar ke ƙaruwa cikin hikima:

HighLoad ++, Mikhail Tyulenev (MongoDB): Matsakaicin dalili: daga ka'idar zuwa aiki

Don haka babban dukiyar wannan agogon Lamport da daidaiton dalili (wanda aka bayyana ta hanyar agogon Lamport) ita ce: idan muna da Events A da B, kuma Event B ya dogara da Event A*, to ya biyo baya cewa Logical Time of Event A bai kai ba. LogicalTime daga Event B.

* Wani lokaci kuma suna cewa A ya faru kafin B, wato, A ya faru kafin B - wannan wata dangantaka ce da ke ba da umarni ga dukan abubuwan da suka faru a gaba ɗaya.

Akasin hakan ba daidai ba ne. Wannan haƙiƙa yana ɗaya daga cikin manyan rashin lahani na agogon Lamport - oda na ɓangarori. Akwai ra'ayi game da abubuwan da suka faru a lokaci guda, wato, abubuwan da ba (A ya faru kafin B) ko (A ya faru kafin B). Misali zai zama daidaitaccen ƙari na Leonard na wani a matsayin aboki (ba ma Leonard ba, amma Sheldon, alal misali).
Wannan shine kadarorin da ake amfani da su sau da yawa lokacin aiki tare da agogon Lamport: suna duban aikin musamman kuma daga wannan sun yanke shawarar cewa watakila waɗannan abubuwan sun dogara. Domin hanya ɗaya gaskiya ce: idan LogicalTime A bai kai LogicalTime B ba, to B ba zai iya faruwa ba kafin A; kuma idan ya fi yawa, to watakila.

Agogon Vector

Haɓaka ma'ana na agogon Lamport shine agogon Vector. Sun bambanta da cewa kowane kumburin da ke nan yana ɗauke da nasa agogon daban, kuma ana ɗaukar su azaman vector.
A wannan yanayin, za ka ga cewa sifili index na vector ne alhakin ciyar, da kuma farkon index vector ne na Friends (kowanne daga cikin wadannan nodes). Kuma yanzu za su karu: sifili index na "Feed" yana ƙaruwa lokacin rubutawa - 1, 2, 3:

HighLoad ++, Mikhail Tyulenev (MongoDB): Matsakaicin dalili: daga ka'idar zuwa aiki

Me yasa Vector Clock ya fi kyau? Domin suna ba ku damar gano abubuwan da ke faruwa a lokaci ɗaya da kuma lokacin da suka faru akan nodes daban-daban. Wannan yana da mahimmanci ga tsarin sharding kamar MongoDB. Duk da haka, ba mu zaɓi wannan ba, ko da yake abu ne mai ban mamaki, kuma yana aiki mai girma, kuma zai iya dacewa da mu ...

Idan muna da shards dubu 10, ba za mu iya canja wurin abubuwa 10 dubu XNUMX ba, ko da mun danne shi ko kuma mun fito da wani abu dabam - nauyin da ake biya zai kasance sau da yawa fiye da girman wannan vector. Saboda haka, muna ƙoƙarta zukatanmu da haƙoranmu, mun yi watsi da wannan tsarin kuma muka koma wani.

Spanner TrueTime. Agogon atomatik

Na ce za a sami labari game da Spanner. Wannan abu ne mai sanyi, kai tsaye daga karni na XNUMX: agogon atomic, aiki tare na GPS.

Menene ra'ayin? "Spanner" tsarin Google ne wanda kwanan nan ya zama samuwa ga mutane (sun ƙara SQL zuwa gare shi). Kowace ma'amala a wurin tana da tambarin lokaci. Tun lokacin da aka daidaita lokaci *, kowane taron ana iya sanya takamaiman lokaci - agogon atomatik suna da lokacin jira, bayan haka an ba da garantin lokaci daban-daban don “faru”.

HighLoad ++, Mikhail Tyulenev (MongoDB): Matsakaicin dalili: daga ka'idar zuwa aiki

Don haka, ta hanyar rubutawa kawai zuwa bayanan bayanan kuma jira na ɗan lokaci, Serializability na taron yana da tabbacin ta atomatik. Suna da mafi ƙaƙƙarfan tsarin daidaito wanda za'a iya tunanin bisa ka'ida - shi ne Ƙarfafawa na waje.

* Wannan ita ce babbar matsalar agogon Lampart - ba su taɓa daidaitawa akan tsarin da aka rarraba ba. Suna iya bambanta; ko da tare da NTP, har yanzu ba sa aiki sosai. "Spanner" yana da agogon atomic da aiki tare, ga alama, microseconds ne.

Me ya sa ba mu zaba ba? Ba mu ɗauka cewa masu amfani da mu suna da ginanniyar agogon atomic. Lokacin da suka bayyana, ana gina su a cikin kowane kwamfutar tafi-da-gidanka, za a sami wani nau'in haɗin gwiwar GPS mai kyau - to ... .

Hybrid Clock

Wannan shine ainihin abin da ke cikin MongoDB yayin tabbatar da daidaiton Causal. Ta yaya suke matasan? Hybrid ƙima ce mai ƙima, amma tana da abubuwa guda biyu:

HighLoad ++, Mikhail Tyulenev (MongoDB): Matsakaicin dalili: daga ka'idar zuwa aiki

  • Na farko shine zamanin Unix (dakika nawa suka shude tun daga “farkon duniyar kwamfuta”).
  • Na biyu shine wasu haɓaka, kuma 32-bit int ba a sanya hannu ba.

Wannan ke nan, a zahiri. Akwai wannan hanya: ɓangaren da ke da alhakin lokaci yana aiki tare da agogo kowane lokaci; duk lokacin da sabuntawa ya faru, wannan ɓangaren yana aiki tare da agogo kuma yana nuna cewa lokaci yana ƙara ko žasa daidai, kuma haɓaka yana ba ka damar bambance tsakanin abubuwan da suka faru a lokaci guda.

Me yasa wannan yake da mahimmanci ga MongoDB? Domin yana ba ku damar yin wasu nau'ikan gidajen cin abinci na ajiyar kuɗi a wani lokaci na lokaci, wato, ana ƙididdige taron da lokaci. Wannan yana da mahimmanci lokacin da ake buƙatar wasu al'amura; Don bayanan bayanai, abubuwan da suka faru canje-canje ne a cikin bayanan da suka faru a wasu tazara a cikin lokaci.

Zan gaya muku dalili mafi mahimmanci gare ku kawai (don Allah, kar ku gaya wa kowa)! Mun yi wannan saboda wannan shine abin da aka tsara, bayanan da aka yiwa alama a cikin MongoDB OpLog. OpLog tsarin bayanai ne wanda ya ƙunshi cikakken duk canje-canje a cikin bayanan: suna fara zuwa OpLog, sannan a yi amfani da su akan Storage kanta a cikin akwati lokacin da aka sake maimaita kwanan wata ko shard.

Wannan shi ne babban dalili. Har ila yau, akwai kuma buƙatu masu amfani don haɓaka bayanan bayanai, wanda ke nufin cewa ya kamata ya zama mai sauƙi - ƙananan code, ƙananan abubuwan da suka karya kamar yadda ya kamata a sake rubutawa da gwadawa. Gaskiyar cewa oplogs ɗinmu an tsara su ta hanyar agogon matasan ya taimaka da yawa kuma ya ba mu damar yin zaɓin da ya dace. Ya biya da gaske kuma ko ta yaya sihiri yayi aiki akan samfurin farko. Yayi sanyi sosai!

Aiki tare na agogo

Akwai hanyoyin aiki tare da yawa da aka bayyana a cikin adabin kimiyya. Ina magana ne game da aiki tare lokacin da muke da shards guda biyu daban-daban. Idan akwai saitin kwafi ɗaya, babu buƙatar kowane aiki tare: wannan “Ubangiji ɗaya”; Muna da OpLog, wanda duk canje-canje suka faɗo - a cikin wannan yanayin, an riga an ba da umarnin komai a cikin "Oplog" kanta. Amma idan muna da shards guda biyu daban-daban, daidaitawar lokaci yana da mahimmanci a nan. Anan ne agogon vector ya ƙara taimakawa! Amma ba mu da su.

HighLoad ++, Mikhail Tyulenev (MongoDB): Matsakaicin dalili: daga ka'idar zuwa aiki

Na biyu ya dace - wannan shine "Heartbeats". Yana yiwuwa a musanya wasu sigina waɗanda ke faruwa kowace raka'a na lokaci. Amma Heartbeats suna da sannu a hankali, ba za mu iya ba da latency ga abokin cinikinmu ba.

Lokacin gaskiya, ba shakka, abu ne mai ban mamaki. Amma, kuma, wannan shine mai yiwuwa nan gaba... Ko da yake ana iya yin shi a cikin Atlas, an riga an sami masu daidaita lokacin "Amazon" masu sauri. Amma ba zai kasance ga kowa ba.

tsegumi shine lokacin da duk saƙon ya ƙunshi lokaci. Wannan shine kusan abin da muke amfani da shi. Kowane saƙo tsakanin nodes, direba, na'ura mai ba da hanya tsakanin hanyoyin sadarwa na bayanai, kwata-kwata komai na MongoDB wani nau'i ne na sinadari, sashin bayanai wanda ke ɗauke da agogon da ke aiki. Suna da ma'anar lokacin matasan ko'ina, ana watsa shi. 64 bit? Wannan yana ba da damar, wannan yana yiwuwa.

Ta yaya duka yake aiki tare?

Anan ina kallon saitin kwafi ɗaya don sauƙaƙa shi kaɗan. Akwai Primary da Secondary. Sakandare yana yin kwafi kuma ba koyaushe yana aiki tare da Primary ba.

Sakawa yana faruwa a cikin "Firamare" tare da ƙayyadadden ƙimar lokaci. Wannan abun da aka saka yana ƙara ƙidayar ciki ta 11, idan wannan shine matsakaicin. Ko kuma zai duba ƙimar agogo kuma yayi aiki tare da agogo idan ƙimar agogo ta fi girma. Wannan yana ba ku damar tsara ta lokaci.

Bayan ya yi rikodin, wani lokaci mai mahimmanci ya faru. Agogon yana cikin "MongoDB" kuma ana ƙara shi kawai idan an rubuta zuwa "Oplog". Wannan shine lamarin da ke canza yanayin tsarin. A cikin dukkan kasidun gargajiya, ana ɗaukar wani lamari a matsayin lokacin da saƙo ya bugi kumburi: saƙon ya zo, wanda ke nufin tsarin ya canza yanayinsa.

Wannan shi ne saboda gaskiyar cewa yayin bincike ba a bayyana gaba ɗaya yadda za a fassara wannan sakon ba. Mun san tabbas idan ba a nuna shi a cikin "Oplog" ba, to ba za a fassara shi ta kowace hanya ba, kuma canjin yanayin tsarin shine kawai shigarwa a cikin "Oplog". Wannan yana sauƙaƙa mana komai: samfurin yana sauƙaƙe shi, kuma yana ba mu damar tsara shi a cikin saiti guda ɗaya, da sauran abubuwa masu amfani da yawa.

An dawo da darajar da aka riga aka rubuta zuwa "Oplog" - mun san cewa "Oplog" ya riga ya ƙunshi wannan darajar, kuma lokacinsa shine 12. Yanzu, ka ce, karatun yana farawa daga wani kumburi (Na biyu), kuma yana watsawa bayanClusterTime a ciki. sakon. Ya ce: "Ina bukatan duk abin da ya faru aƙalla bayan 12 ko kuma lokacin sha biyu" (duba hoton da ke sama).

Wannan shine abin da ake kira Causal a daidaito (CAT). Akwai irin wannan ra'ayi a cikin ka'idar cewa wannan wani yanki ne na lokaci, wanda ya dace da kansa. A wannan yanayin, zamu iya cewa wannan shine yanayin tsarin da aka lura a lokacin 12.

Yanzu babu wani abu a nan tukuna, saboda irin wannan yana kwatanta yanayin lokacin da kuke buƙatar Sakandare don kwafin bayanai daga Firamare. Yana jira ... Kuma yanzu bayanan sun isa - ya mayar da waɗannan dabi'u baya.

HighLoad ++, Mikhail Tyulenev (MongoDB): Matsakaicin dalili: daga ka'idar zuwa aiki

Wannan shine kyawawan yadda duk yake aiki. Kusan.

Menene ma'anar "kusan"? Bari mu ɗauka cewa akwai wanda ya karanta kuma ya fahimci yadda wannan duka ke aiki. Na gane cewa duk lokacin da ClusterTime ya faru, yana sabunta agogon ma'ana na ciki, sannan shigarwa na gaba yana ƙaruwa da ɗaya. Wannan aikin yana ɗaukar layi 20. Bari mu ce wannan mutumin yana watsa mafi girman lamba 64-bit, ban da ɗaya.

Me yasa "rasa ɗaya"? Saboda za a maye gurbin agogo na ciki a cikin wannan darajar (a fili, wannan shine mafi girman yiwuwar kuma mafi girma fiye da lokacin yanzu), sannan shigarwa zai faru a cikin "Oplog", kuma agogon za a ƙara shi da wani naúrar - kuma za a rigaya ya kasance. zama matsakaicin darajar (akwai kawai duk raka'a, babu inda za a je) , unsaint ints).

A bayyane yake cewa bayan wannan tsarin ya zama cikakken m ga wani abu. Ana iya sauke shi kawai da tsaftace shi - yawancin aikin hannu. Cikakken samuwa:

HighLoad ++, Mikhail Tyulenev (MongoDB): Matsakaicin dalili: daga ka'idar zuwa aiki

Bugu da ƙari, idan an maimaita wannan a wani wuri dabam, to gabaɗayan gungu kawai ya faɗi ƙasa. Halin da ba a yarda da shi ba wanda kowa zai iya tsarawa cikin sauri da sauƙi! Saboda haka, mun dauki wannan lokacin a matsayin daya daga cikin mafi mahimmanci. Yadda za a hana shi?

Hanyarmu ita ce sanya hannu kan clusterTime

Wannan shine yadda ake yada shi a cikin sakon (kafin rubutun shuɗi). Amma kuma mun fara samar da sa hannu (rubutun shuɗi):

HighLoad ++, Mikhail Tyulenev (MongoDB): Matsakaicin dalili: daga ka'idar zuwa aiki

Ana samar da sa hannun ta hanyar maɓalli da aka adana a cikin rumbun adana bayanai, a cikin amintaccen kewaye; kanta yana haifar da sabuntawa (masu amfani ba su ga wani abu game da shi ba). Ana haifar da zanta, kuma kowane saƙo yana sanya hannu lokacin ƙirƙira kuma an inganta shi lokacin karɓa.
Wataƙila tambayar ta taso a cikin zukatan mutane: "Nawa ne wannan ya rage abubuwa?" Na gaya muku cewa ya kamata ya yi aiki da sauri, musamman idan babu wannan fasalin.

Menene ma'anar amfani da daidaiton Causal a cikin wannan yanayin? Wannan shine don nuna ma'aunin bayanClusterTime. Idan ba tare da wannan ba, kawai zai wuce ƙima ta wata hanya. tsegumi, farawa daga sigar 3.6, koyaushe yana aiki.

Idan muka bar sa hannu akai-akai, zai rage tsarin ko da babu wani sifa, wanda bai dace da hanyoyinmu da bukatunmu ba. To me muka yi?

Yi sauri!

Abu ne mai sauƙi mai sauƙi, amma dabarar tana da ban sha'awa - Zan raba shi, watakila wani zai yi sha'awar.
Muna da zanta wanda ke adana bayanan da aka sa hannu. Duk bayanan suna shiga cikin cache. Cache baya sanya hannu kan takamaiman lokacin, amma Range. Lokacin da wata ƙima ta zo, muna samar da Range, mu rufe ragi 16 na ƙarshe, kuma muna sanya hannu kan wannan ƙimar:

HighLoad ++, Mikhail Tyulenev (MongoDB): Matsakaicin dalili: daga ka'idar zuwa aiki

Ta hanyar karɓar irin wannan sa hannu, muna hanzarta tsarin (dangane da) sau dubu 65. Yana aiki mai girma: lokacin da muka gudanar da gwaje-gwaje, lokacin a zahiri ya ragu da sau dubu 10 lokacin da muka sami sabuntawa na jeri. A bayyane yake cewa lokacin da suke cikin rashin jituwa, wannan ba ya aiki. Amma a yawancin lokuta yana aiki. Haɗin sa hannun Range tare da sa hannu ya warware matsalar tsaro.

Menene muka koya?

Darussan da muka koya daga wannan:

  • Muna buƙatar karanta kayan aiki, labarai, labarai, saboda muna da abubuwa masu ban sha'awa da yawa. Lokacin da muka yi aiki akan wasu siffofi (musamman yanzu, lokacin da muka yi ma'amaloli, da sauransu), muna buƙatar karantawa da fahimta. Yana ɗaukar lokaci, amma a zahiri yana da amfani sosai domin yana bayyana inda muke. Da alama ba mu fito da wani sabon abu ba - mun ɗauki kayan aikin ne kawai.

    Gabaɗaya, akwai wani bambanci a cikin tunani lokacin da akwai taron ilimi (Sigmon, alal misali) - kowa yana mai da hankali kan sabbin dabaru. Menene sabo game da algorithm namu? Babu wani sabon abu musamman a nan. Sabon sabon abu ya ta'allaka ne kan yadda muka hada hanyoyin da muke da su tare. Saboda haka, abu na farko shine karanta litattafai, farawa da Lampart.

  • A cikin samarwa, abubuwan da ake buƙata sun bambanta. Na tabbata cewa da yawa daga cikinku ba su fuskantar da ma'ajin bayanai na “spherical” a cikin ɓata lokaci, amma tare da al'ada, ainihin abubuwan da ke da matsala tare da samuwa, latency da rashin haƙuri.
  • Abu na ƙarshe shi ne cewa dole ne mu kalli ra'ayoyi daban-daban kuma mu haɗa labarai da yawa mabanbanta cikin hanya ɗaya, tare. Tunanin game da sanya hannu, alal misali, gabaɗaya ya fito ne daga labarin da yayi la'akari da ka'idar Paxos, wanda ga waɗanda ba na Byzantine Failors ke cikin ka'idar izini ba, na Byzantine - a waje da ka'idar izini ... Gabaɗaya, wannan shine ainihin abin da muke. ya kare yana yi.

    Babu wani sabon abu a nan! Amma da zaran mun haɗa shi duka ... Daidai ne da cewa girke-girke na Olivier ba shi da amfani, saboda qwai, mayonnaise da cucumbers an riga an ƙirƙira ... Labari ɗaya ne.

HighLoad ++, Mikhail Tyulenev (MongoDB): Matsakaicin dalili: daga ka'idar zuwa aiki

Zan gama da wannan. Na gode!

Tambayoyi

Tambaya daga masu sauraro (wanda ake kira B): - Na gode, Mikhail, don rahoton! Batun game da lokaci yana da ban sha'awa. Kuna amfani da tsegumi. Sun ce kowa yana da lokacinsa, kowa ya san lokacin gida. Kamar yadda na fahimta, muna da direba - za'a iya samun abokan ciniki da yawa tare da direbobi, masu tsarawa kuma, shards ma ... Kuma menene tsarin ya sauko idan muka sami sabani ba zato ba tsammani: wani ya yanke shawarar cewa shi ne don minti gaba, wani a bayan minti daya? Ina zamu kare?

MT: – Babban tambaya lalle ne! Ina so in yi magana game da shards. Idan na fahimci tambayar daidai, muna da halin da ake ciki: akwai sharuddan 1 da kuma 2, karatu yana faruwa daga waɗannan ɓangarorin biyu - suna da sabani, ba sa mu'amala da juna, saboda lokacin da suka sani ya bambanta. musamman lokacin da suka wanzu a cikin oplogs.
Bari mu ce shard 1 ya yi rikodin miliyan, shard 2 bai yi komai ba, kuma buƙatar ta zo ga shards biyu. Kuma na farko yana da bayanClusterTime sama da miliyan. A cikin irin wannan yanayin, kamar yadda na bayyana, shard 2 ba zai taba amsawa ba kwata-kwata.

B: – Ina so in san yadda suke aiki tare da zaɓar lokaci ɗaya na ma'ana?

MT: - Mai sauƙin aiki tare. Shard, lokacin da bayanClusterTime ya zo masa kuma bai sami lokaci a cikin "Oplog", ba ya fara ba da izini. Wato yana ɗaga lokacinsa da hannuwansa zuwa ga wannan darajar. Wannan yana nufin cewa ba shi da abubuwan da suka dace da wannan buƙatar. Ya ƙirƙira wannan taron ta hanyar wucin gadi kuma ta haka ya zama Mahimmancin Dalili.

B: - Idan bayan wannan wasu al'amura sun zo masa da suka ɓace a wani wuri a cikin hanyar sadarwa?

MT: – An tsara Shard ta yadda ba za su sake zuwa ba, tun da ubangida ɗaya ne. Idan ya riga ya yi rajista, to ba za su zo ba, amma za su zo daga baya. Ba zai iya faruwa ba cewa wani abu ya makale a wani wuri, to, bai rubuta ba, sannan waɗannan abubuwan sun zo - kuma daidaiton Causal ya karye. Idan bai rubuta ba, sai su zo gaba dayansu (zai jira su).

HighLoad ++, Mikhail Tyulenev (MongoDB): Matsakaicin dalili: daga ka'idar zuwa aiki

B: – Ina da tambayoyi da yawa game da jerin gwano. Daidaitaccen dalili yana ɗauka cewa akwai takamaiman jerin ayyuka waɗanda ke buƙatar aiwatarwa. Me zai faru idan ɗaya daga cikin fakitinmu ya ɓace? Anan ya zo na 10, 11 ... na 12 ya ɓace, kuma kowa yana jira ya zama gaskiya. Kuma ba zato ba tsammani motarmu ta mutu, ba za mu iya yin komai ba. Shin akwai iyakar tsayin layin da ya taru kafin a kashe shi? Wace kasala ce mai kisa ke faruwa idan kowace jiha ta rasa? Bugu da ƙari, idan muka rubuta cewa akwai wata jihar da ta gabata, to ya kamata mu fara daga gare ta? Amma ba su kore shi ba!

MT: – Hakanan babbar tambaya! Me muke yi? MongoDB yana da ra'ayin quorum ya rubuta, quorum yana karantawa. A wane yanayi ne za a iya rasa saƙo? Lokacin da aka rubuta ba ƙididdiga ba ko kuma lokacin da aka karanta ba adadi ba (wasu irin shara na iya tsayawa).
Game da daidaiton Causal, an gudanar da babban gwaji na gwaji, wanda sakamakonsa shine cewa a cikin yanayin lokacin da aka rubuta da karantawa ba su da ƙima, ana samun cin zarafi na daidaiton Causal. Daidai abin da kuke faɗi!

Shawarar mu: yi amfani da aƙalla karatun ƙuƙumi yayin amfani da daidaiton Causal. A wannan yanayin, babu abin da zai rasa, ko da an rasa rikodin ƙididdiga ... Wannan yanayin yanayi ne: idan mai amfani ba ya son a rasa bayanai, yana buƙatar amfani da rikodin ƙididdiga. Daidaituwar sanadi baya bada garantin dorewa. An tabbatar da dorewa ta hanyar kwafi da injinan da ke da alaƙa da kwafi.

B: - Lokacin da muka ƙirƙiri wani misali wanda ke yin sharding a gare mu (ba maigidan ba, amma bawa, bi da bi), ya dogara da lokacin Unix na injin nasa ko kuma a lokacin "maigidan"; Shin yana daidaitawa a karon farko ko lokaci-lokaci?

MT: - Zan bayyana yanzu. Shard (watau bangare a kwance) - koyaushe akwai Primary a can. Kuma shard na iya samun "maigida" kuma ana iya samun kwafi. Amma shard koyaushe yana goyan bayan rikodin, saboda dole ne ya goyi bayan wasu yanki (shard yana da Firamare).

B: – Don haka duk abin dogara zalla a kan "Ubangiji"? Shin ana amfani da lokacin master koyaushe?

MT: - Da. Kuna iya faɗi a alamance: agogon yana yin la'akari lokacin da shigarwa cikin "maigida", cikin "Oplog" ya faru.

B: - Muna da abokin ciniki wanda ke haɗuwa kuma baya buƙatar sanin wani abu game da lokacin?

MT: - Ba kwa buƙatar sanin komai kwata-kwata! Idan muka yi magana game da yadda yake aiki a kan abokin ciniki: lokacin da abokin ciniki yake so ya yi amfani da daidaiton Causal, yana buƙatar buɗe zaman. Yanzu duk abin yana nan: ma'amaloli a cikin zaman, da kuma dawo da haƙƙoƙin ... Wani zaman shine odar abubuwan da ke faruwa tare da abokin ciniki.

Idan ya buɗe wannan zaman kuma ya ce a can yana son daidaiton Causal (idan zaman yana goyan bayan daidaiton Causal ta tsohuwa), komai yana aiki ta atomatik. Direba ya tuna wannan lokacin kuma yana ƙaruwa lokacin da ya karɓi sabon saƙo. Yana tuna irin martanin da wanda ya gabata ya dawo daga uwar garken da ya dawo da bayanan. Buƙatar ta gaba za ta ƙunshi afterCluster("lokacin da ya fi wannan").

Abokin ciniki baya buƙatar sanin cikakken komai! Wannan ba komai ba ne a gare shi. Idan mutane suna amfani da waɗannan abubuwan, menene za su iya yi? Na farko, zaku iya karanta sakandire cikin aminci: kuna iya rubutawa zuwa Firamare kuma ku karanta daga na biyun da aka kwafi a ƙasa kuma ku tabbata yana aiki. A lokaci guda, zaman da aka yi rikodin akan Firamare ana iya ko da shi zuwa Sakandare, watau ba za ku iya amfani da zama ɗaya ba, amma da yawa.

B: - Wani sabon nau'in kimiyyar lissafi - CRDT (Nau'o'in Bayanan da aka kwafi ba tare da rikici ba) nau'ikan bayanai - yana da alaƙa mai ƙarfi da batun daidaiton ƙarshe. Shin kun yi la'akari da haɗa waɗannan nau'ikan bayanai a cikin ma'ajin bayanai kuma me za ku iya cewa game da shi?

MT: - Tambaya mai kyau! CRDT yana da ma'ana don rubuta rikice-rikice: a cikin MongoDB, master guda ɗaya.

B: – Ina da tambaya daga devops. A cikin duniyar gaske, akwai irin waɗannan yanayi na Jesuitical lokacin da gazawar Byzantine ta faru, kuma mugayen mutane a cikin kewayen da aka kiyaye sun fara shiga cikin yarjejeniya, aika fakitin fasaha ta musamman?

HighLoad ++, Mikhail Tyulenev (MongoDB): Matsakaicin dalili: daga ka'idar zuwa aiki

MT: - Mugayen mutane a cikin kewayen kamar dokin Trojan! Mugayen mutane a cikin kewaye suna iya yin abubuwa marasa kyau da yawa.

B: – A fili yake cewa barin, wajen magana, rami a cikin uwar garken ta hanyar da za ku iya sanya gidan zoo na giwaye kuma ku rushe dukan gungu har abada ... Zai ɗauki lokaci don dawo da hannu ... ba daidai ba. A gefe guda, wannan yana da ban sha'awa: a cikin rayuwa ta ainihi, a aikace, akwai yanayi lokacin da irin wannan harin na ciki ya faru?

MT: – Tun da da wuya na gamu da matsalar tsaro a rayuwa, ba zan iya cewa ko sun faru ba. Amma idan muka yi magana game da falsafar ci gaba, muna tunanin kamar haka: muna da kewayen da ke samar da mutanen da ke yin tsaro - wannan katanga ne, bango; kuma a cikin kewaye za ku iya yin duk abin da kuke so. A bayyane yake cewa akwai masu amfani waɗanda ke da ikon duba kawai, kuma akwai masu amfani waɗanda ke da ikon goge kundin adireshi.

Dangane da haƙƙoƙin, lalacewar da masu amfani za su iya yi na iya zama linzamin kwamfuta, ko kuma yana iya zama giwa. A bayyane yake cewa mai amfani da cikakken haƙƙin na iya yin komai kwata-kwata. Mai amfani mai iyakantaccen hakki na iya haifar da ƙarancin lahani. Musamman ma, ba zai iya karya tsarin ba.

B: - A cikin kewayen da aka karewa, wani ya yi ƙoƙari ya ƙirƙiri ka'idojin da ba zato ba don uwar garke don halakar da uwar garke gaba ɗaya, kuma idan kun yi sa'a, dukan gungu ... Shin ya taba samun "mai kyau"?

MT: "Ban taɓa jin irin waɗannan abubuwa ba." Gaskiyar cewa za ku iya lalata uwar garken ta wannan hanya ba asiri ba ne. Rashin ciki, kasancewa daga yarjejeniya, kasancewa mai izini mai amfani wanda zai iya rubuta wani abu kamar wannan a cikin sakon ... A gaskiya ma, ba zai yiwu ba, saboda har yanzu za a tabbatar da shi. Yana yiwuwa a kashe wannan tabbaci ga masu amfani waɗanda ba sa so - to wannan shine matsalar su; su, a wajen magana, sun lalata bangon da kansu kuma kuna iya tura giwa a ciki, wanda zai tattake ... Amma gaba ɗaya, kuna iya yin ado kamar mai gyara, ku zo ku ciro ta!

B: – Godiya ga rahoton. Sergey (Yandex). Akwai akai-akai a Mong wanda ke iyakance adadin mambobi masu jefa kuri'a a cikin Tsarin Replica, kuma wannan akai-akai shine 7 (bakwai). Me yasa wannan ya zama akai? Me yasa wannan ba wani nau'in siga ba ne?

MT: - Muna da Saitunan Kwafi tare da nodes 40. A koyaushe akwai rinjaye. Ban san wace sigar ba...

B: – A cikin Replica Set za ku iya gudanar da membobin da ba masu jefa ƙuri'a ba, amma akwai mafi girman membobi masu jefa ƙuri'a 7. Ta yaya za mu tsira daga rufewar a cikin wannan yanayin idan Saitin Replica ɗinmu ya bazu a cikin cibiyoyin bayanai 3? Ɗayan cibiyar bayanai na iya kashewa cikin sauƙi, kuma wata na'ura na iya faɗuwa.

MT: – Wannan ya riga ya wuce iyakar rahoton. Wannan tambaya ce gabaɗaya. Wataƙila zan iya gaya muku game da shi daga baya.

HighLoad ++, Mikhail Tyulenev (MongoDB): Matsakaicin dalili: daga ka'idar zuwa aiki

Wasu tallace-tallace 🙂

Na gode da kasancewa tare da mu. Kuna son labaran mu? Kuna son ganin ƙarin abun ciki mai ban sha'awa? Goyon bayan mu ta hanyar ba da oda ko ba da shawara ga abokai, girgije VPS don masu haɓakawa daga $ 4.99, analog na musamman na sabar matakin shigarwa, wanda mu muka ƙirƙira muku: Duk gaskiyar game da VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps daga $19 ko yadda ake raba sabar? (akwai tare da RAID1 da RAID10, har zuwa 24 cores kuma har zuwa 40GB DDR4).

Dell R730xd 2x mai rahusa a cibiyar bayanan Equinix Tier IV a Amsterdam? Nan kawai 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV daga $199 a cikin Netherlands! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - daga $99! Karanta game da Yadda ake gina Infrastructure Corp. aji tare da amfani da sabar Dell R730xd E5-2650 v4 masu darajan Yuro 9000 akan dinari?

source: www.habr.com

Add a comment