DBA bot Joe. Anatoly Stansler (Postgres.ai)

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Kif jifhem żviluppatur backend li mistoqsija SQL se taħdem tajjeb fuq "prod"? F'kumpaniji kbar jew li qed jikbru malajr, mhux kulħadd għandu aċċess għall-"prodott". U bl-aċċess, mhux it-talbiet kollha jistgħu jiġu ċċekkjati mingħajr tbatija, u l-ħolqien ta 'kopja tad-database spiss jieħu sigħat. Biex issolvi dawn il-problemi, ħloqna DBA artifiċjali - Joe. Diġà ġie implimentat b'suċċess f'diversi kumpaniji u jgħin lil aktar minn tużżana żviluppaturi.

Video:

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Hi kollha! Jisimni Anatoly Stansler. Jien naħdem għal kumpanija postgres.ai. Aħna impenjati li nħaffu l-proċess ta 'żvilupp billi tneħħi d-dewmien assoċjat max-xogħol ta' Postgres mill-iżviluppaturi, DBAs u QAs.

Għandna klijenti kbar u llum parti mir-rapport se tkun iddedikata għal każijiet li ltqajna magħhom waqt li naħdmu magħhom. Se nitkellem dwar kif għenhom isolvu problemi pjuttost serji.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Meta nkunu qed niżviluppaw u nagħmlu migrazzjonijiet kumplessi ta' tagħbija għolja, nistaqsu lilna nfusna l-mistoqsija: "Din il-migrazzjoni se titlaq?". Aħna nużaw reviżjoni, nużaw l-għarfien ta 'kollegi aktar esperjenza, esperti DBA. U jistgħu jgħidu jekk se jtir jew le.

Imma forsi jkun aħjar jekk nistgħu nittestjawha aħna stess fuq kopji ta' daqs sħiħ. U llum se nitkellmu biss dwar liema approċċi għall-ittestjar huma issa u kif jista 'jsir aħjar u b'liema għodod. Se nitkellmu wkoll dwar il-vantaġġi u l-iżvantaġġi ta 'approċċi bħal dawn, u dak li nistgħu nirranġaw hawn.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Min qatt għamel indiċi direttament fuq prod jew għamel xi tibdil? Pjuttost ta '. U għal min wassal dan għall-fatt li d-dejta ntilfet jew kien hemm waqfien? Imbagħad taf dan l-uġigħ. Grazzi lil Alla hemm backups.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

L-ewwel approċċ huwa l-ittestjar fil-prod. Jew, meta żviluppatur joqgħod fuq magna lokali, ikollu dejta tat-test, hemm xi tip ta 'għażla limitata. U aħna roll out għall-prod, u jkollna din is-sitwazzjoni.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Iweġġgħu, huwa għali. Huwa probabbilment aħjar li ma.

U x'inhu l-aħjar mod biex tagħmel dan?

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Ejja nieħdu l-istadji u agħżel xi parti mill-prod hemmhekk. Jew fl-aħjar, ejja nieħdu prod reali, id-dejta kollha. U wara li niżviluppawha lokalment, se niċċekkjaw ukoll għall-istadji.

Dan se jippermetti li nneħħu xi wħud mill-iżbalji, jiġifieri ma jħallihomx ikunu fuq prod.

X'inhuma l-problemi?

  • Il-problema hi li naqsmu din il-waqfien mal-kollegi. U ħafna drabi jiġri li tagħmel xi tip ta 'bidla, bam - u m'hemm l-ebda data, ix-xogħol huwa fl-fossa. Il-waqfien kien multi-terabyte. U trid tistenna ħafna biex terġa’ tqum. U niddeċiedu li nifinalizzawha għada. Dak hu, għandna żvilupp.
  • U, ovvjament, għandna ħafna kollegi jaħdmu hemm, ħafna timijiet. U jrid isir manwalment. U dan huwa inkonvenjenti.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

U ta 'min jgħid li għandna tentattiv wieħed biss, sparatura waħda, jekk irridu nagħmlu xi bidliet fid-database, tmiss id-data, nibdlu l-istruttura. U jekk xi ħaġa marret ħażin, jekk kien hemm żball fil-migrazzjoni, allura aħna mhux se nerġgħu lura malajr.

Dan huwa aħjar mill-approċċ preċedenti, iżda għad hemm probabbiltà għolja li xi tip ta 'żball imur għall-produzzjoni.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

X'jżommna milli nagħtu lil kull żviluppatur bank tat-test, kopja ta' daqs sħiħ? Naħseb li huwa ċar dak li jfixkel.

Min għandu database akbar minn terabyte? Aktar minn nofs il-kamra.

U huwa ċar li ż-żamma ta 'magni għal kull żviluppatur, meta jkun hemm produzzjoni daqshekk kbira, hija għalja ħafna, u barra minn hekk, tieħu żmien twil.

Għandna klijenti li rrealizzaw li huwa importanti ħafna li tittestja l-bidliet kollha fuq kopji ta 'daqs sħiħ, iżda d-database tagħhom hija inqas minn terabyte, u m'hemm l-ebda riżorsi biex iżommu bank tat-test għal kull żviluppatur. Għalhekk, iridu jniżżlu l-miżbliet lokalment fil-magna tagħhom u jittestjaw b'dan il-mod. Huwa jieħu ħafna ħin.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Anke jekk tagħmel dan ġewwa l-infrastruttura, allura t-tniżżil ta’ terabyte wieħed ta’ data fis-siegħa huwa diġà tajjeb ħafna. Imma jużaw miżbliet loġiċi, iniżżlu lokalment mis-sħaba. Għalihom, il-veloċità hija ta 'madwar 200 gigabytes fis-siegħa. U għad jieħu ż-żmien biex iddur mill-miżbla loġika, roll up l-indiċi, eċċ.

Iżda huma jużaw dan l-approċċ għaliex jippermettilhom li jżommu l-prod affidabbli.

X'nistgħu nagħmlu hawn? Ejja nagħmlu l-bankijiet tat-test irħas u nagħtu lil kull żviluppatur il-bank tat-test tiegħu stess.

U dan huwa possibbli.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

U f'dan l-approċċ, meta nagħmlu kloni rqaq għal kull żviluppatur, nistgħu naqsmuh fuq magna waħda. Pereżempju, jekk għandek database 10TB u trid tagħtiha lil 10 żviluppaturi, m'għandekx bżonn li jkollok databases XNUMX x XNUMXTB. Għandek bżonn biss magna waħda biex tagħmel kopji iżolati irqaq għal kull żviluppatur bl-użu ta 'magna waħda. Ngħidlek kif taħdem ftit aktar tard.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Eżempju reali:

  • DB - 4,5 terabytes.

  • Nistgħu niksbu kopji indipendenti fi 30 sekonda.

M'għandekx għalfejn tistenna stand tat-test u tiddependi fuq kemm hu kbir. Tista 'tikseb f'sekondi. Se jkunu ambjenti kompletament iżolati, iżda li jaqsmu d-dejta bejniethom.

Dan huwa kbir. Hawnhekk qed nitkellmu dwar il-maġija u l-univers parallel.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Fil-każ tagħna, dan jaħdem bl-użu tas-sistema OpenZFS.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

OpenZFS hija sistema ta 'fajls kopja fuq il-kitba li tappoġġja snapshots u kloni barra mill-kaxxa. Huwa affidabbli u skalabbli. Hija faċli ħafna biex timmaniġġjaha. Jista 'litteralment jiġi skjerat f'żewġ timijiet.

Hemm għażliet oħra:

  • lvm,

  • Ħażna (per eżempju, Ħażna Pura).

Il-Lab tad-Database li qed nitkellem dwaru huwa modulari. Jista 'jiġi implimentat bl-użu ta' dawn l-għażliet. Imma għalissa, iffukajna fuq OpenZFS, għax kien hemm problemi b'LVM speċifikament.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Kif taħdem? Minflok ma nikteb fuqu d-dejta kull darba li nibdluha, nissejvjaha billi sempliċement nimmarkaw li din id-dejta ġdida hija minn punt ġdid fiż-żmien, stampa ġdida.

U fil-futur, meta rridu nġibu lura jew irridu nagħmlu klonu ġdid minn xi verżjoni anzjani, ngħidu biss: "OK, agħtina dawn il-blokki ta 'dejta li huma mmarkati bħal dan."

U dan l-utent se jaħdem ma 'tali sett ta' data. Huwa se jibdelhom gradwalment, jagħmel snapshots tiegħu stess.

U aħna se fergħa. Kull żviluppatur fil-każ tagħna se jkollu l-opportunità li jkollu l-klonu tiegħu stess li jeditja, u d-dejta li tinqasam bejn kulħadd.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Biex tuża sistema bħal din id-dar, għandek bżonn issolvi żewġ problemi:

  • L-ewwel huwa s-sors tad-dejta, minn fejn se teħodha. Tista 'twaqqaf replikazzjoni mal-produzzjoni. Diġà tista' tuża l-backups li kkonfigurajt, nittama. WAL-E, WAL-G jew Barman. U anki jekk qed tuża xi tip ta 'soluzzjoni Cloud bħal RDS jew Cloud SQL, allura tista' tuża miżbliet loġiċi. Imma xorta nagħtuk parir biex tuża backups, għax b'dan l-approċċ iżżomm ukoll l-istruttura fiżika tal-fajls, li tippermettilek tkun saħansitra eqreb lejn il-metriċi li tara fil-produzzjoni sabiex taqbad dawk il-problemi li jeżistu.

  • It-tieni huwa fejn trid tospita l-Lab tad-Database. Jista 'jkun Cloud, jista' jkun On-premise. Huwa importanti li ngħidu hawnhekk li ZFS jappoġġja l-kompressjoni tad-dejta. U tagħmel dan pjuttost tajjeb.

Immaġina li għal kull klonu bħal dan, skont l-operazzjonijiet li nagħmlu mal-bażi, se jikber xi tip ta 'dev. Għal dan, dev se jkollu bżonn ukoll spazju. Iżda minħabba l-fatt li ħadna bażi ta '4,5 terabytes, ZFS se tikkompressa għal 3,5 terabytes. Dan jista 'jvarja skond is-settings. U għad għandna spazju għal dev.

Sistema bħal din tista' tintuża għal każijiet differenti.

  • Dawn huma żviluppaturi, DBAs għall-validazzjoni tal-mistoqsijiet, għall-ottimizzazzjoni.

  • Dan jista 'jintuża fl-ittestjar tal-QA biex tiġi ttestjata migrazzjoni partikolari qabel ma nwettquha biex prod. U nistgħu wkoll ngħollu ambjenti speċjali għall-QA b'dejta reali, fejn jistgħu jittestjaw funzjonalità ġdida. U se tieħu sekondi minflok sigħat ta 'stennija, u forsi jiem f'xi każijiet oħra fejn kopji rqaq ma jintużawx.

  • U każ ieħor. Jekk il-kumpanija m'għandhiex sistema analitika stabbilita, allura nistgħu niżolaw klonu rqiq tal-bażi tal-prodott u nagħtuh għal mistoqsijiet twal jew indiċi speċjali li jistgħu jintużaw fl-analitika.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

B'dan l-approċċ:

  1. Probabbiltà baxxa ta 'żbalji fuq il-"prod", minħabba li ttestjajna l-bidliet kollha fuq data ta' daqs sħiħ.

  2. Għandna kultura ta 'ttestjar, għaliex issa m'għandekx għalfejn tistenna għal sigħat għall-istand tiegħek.

  3. U m'hemm l-ebda ostaklu, l-ebda stennija bejn it-testijiet. Inti tista 'attwalment tmur u tiċċekkja. U se jkun aħjar b'dan il-mod hekk kif nħaffu l-iżvilupp.

  • Se jkun hemm inqas refactoring. Inqas bugs se jispiċċaw fi prod. Aħna se nirrefactorizzawhom inqas aktar tard.

  • Nistgħu ireġġgħu lura l-bidliet irriversibbli. Dan mhuwiex l-approċċ standard.

  1. Dan huwa ta 'benefiċċju għaliex aħna naqsmu r-riżorsi tal-bankijiet tat-test.

Diġà tajjeb, imma x'iktar jista 'jiġi aċċellerat?

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Grazzi għal sistema bħal din, nistgħu nnaqqsu bil-kbir il-limitu biex nidħlu tali ttestjar.

Issa hemm ċirku vizzjuż, meta żviluppatur, sabiex ikollu aċċess għal data reali ta 'daqs sħiħ, irid isir espert. Huwa għandu jkun fdat b'tali aċċess.

Imma kif tikber jekk ma jkunx hemm. Imma x'jiġri jekk għandek biss sett żgħir ħafna ta 'dejta tat-test disponibbli għalik? Imbagħad ma jkollok ebda esperjenza reali.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Kif toħroġ minn dan iċ-ċirku? Bħala l-ewwel interface, konvenjenti għall-iżviluppaturi ta 'kull livell, għażilna l-bot Slack. Iżda jista 'jkun kwalunkwe interface ieħor.

X'jippermettilek tagħmel? Tista' tieħu mistoqsija speċifika u tibgħatha lil kanal speċjali għad-database. Aħna se niskjeraw awtomatikament klonu rqiq f'sekondi. Ejja nwettqu din it-talba. Aħna niġbru metriċi u rakkomandazzjonijiet. Ejja nuru viżwalizzazzjoni. U allura dan il-klonu se jibqa 'biex din il-mistoqsija tista' tkun b'xi mod ottimizzata, żid indiċijiet, eċċ.

U wkoll Slack jagħtina opportunitajiet għal kollaborazzjoni barra mill-kaxxa. Peress li dan huwa biss kanal, tista 'tibda tiddiskuti din it-talba eżatt hemmhekk fil-ħajt għal tali talba, ping lill-kollegi tiegħek, DBAs li huma ġewwa l-kumpanija.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Iżda hemm, ovvjament, problemi. Minħabba li din hija d-dinja reali, u qed nużaw server li jospita ħafna kloni f'daqqa, irridu nikkompressaw l-ammont ta 'memorja u qawwa tas-CPU disponibbli għall-kloni.

Iżda biex dawn it-testijiet ikunu plawsibbli, trid b'xi mod issolvi din il-problema.

Huwa ċar li l-punt importanti huwa l-istess data. Imma diġà għandna. U rridu niksbu l-istess konfigurazzjoni. U nistgħu nagħtu tali konfigurazzjoni kważi identika.

Ikun jibred li jkollok l-istess ħardwer bħal fil-produzzjoni, iżda jista 'jkun differenti.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Ejja niftakru kif Postgres jaħdem bil-memorja. Għandna żewġ caches. Wieħed mis-sistema tal-fajls u wieħed nattiv Postgres, jiġifieri Shared Buffer Cache.

Huwa importanti li wieħed jinnota li l-Shared Buffer Cache huwa allokat meta Postgres jibda, skont liema daqs tispeċifika fil-konfigurazzjoni.

U t-tieni cache juża l-ispazju kollu disponibbli.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

U meta nagħmlu diversi kloni fuq magna waħda, jirriżulta li gradwalment nimlew il-memorja. U b'mod tajjeb, Shared Buffer Cache hija 25% tal-ammont totali ta 'memorja li hija disponibbli fuq il-magna.

U jirriżulta li jekk ma nbiddlux dan il-parametru, allura nkunu nistgħu nħaddmu każijiet 4 biss fuq magna waħda, jiġifieri, 4 minn dawn il-kloni rqaq b'kollox. U dan, ovvjament, huwa ħażin, għax irridu jkollna ħafna aktar minnhom.

Iżda min-naħa l-oħra, Buffer Cache tintuża biex tesegwixxi mistoqsijiet għall-indiċi, jiġifieri, il-pjan jiddependi fuq kemm huma kbar il-caches tagħna. U jekk nieħdu dan il-parametru u nnaqqsuh, allura l-pjanijiet tagħna jistgħu jinbidlu ħafna.

Pereżempju, jekk ikollna cache kbira fuq il-prod, allura Postgres jippreferi juża indiċi. U jekk le, allura jkun hemm SeqScan. U x’se jkun il-punt jekk il-pjanijiet tagħna ma jikkoinċidux?

Imma hawn naslu għall-konklużjoni li fil-fatt il-pjan f'Postgres ma jiddependix fuq id-daqs speċifiku speċifikat fil-Shared Buffer fil-pjan, jiddependi fuq effective_cache_size.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Effective_cache_size huwa l-ammont stmat ta 'cache li huwa disponibbli għalina, jiġifieri s-somma ta' Buffer Cache u cache tas-sistema tal-fajls. Dan huwa stabbilit mill-konfigurazzjoni. U din il-memorja mhix allokata.

U minħabba dan il-parametru, nistgħu tip ta 'trick Postgres, billi ngħidu li fil-fatt għandna ħafna dejta disponibbli, anki jekk ma jkollniex din id-dejta. U għalhekk, il-pjanijiet se jikkoinċidu kompletament mal-produzzjoni.

Iżda dan jista 'jaffettwa ż-żmien. U nottimizzaw il-mistoqsijiet skont il-ħin, iżda huwa importanti li l-ħin jiddependi fuq ħafna fatturi:

  • Jiddependi mit-tagħbija li bħalissa tinsab fuq il-prod.

  • Jiddependi fuq il-karatteristiċi tal-magna nnifisha.

U dan huwa parametru indirett, iżda fil-fatt nistgħu ottimizzaw eżattament bl-ammont ta 'dejta li din il-mistoqsija se taqra sabiex tikseb ir-riżultat.

U jekk trid li ż-żmien ikun qrib dak li se naraw fil-prod, allura rridu nieħdu l-aktar hardware simili u, possibilment, saħansitra aktar sabiex il-kloni kollha joqogħdu. Iżda dan huwa kompromess, jiġifieri se tikseb l-istess pjanijiet, se tara kemm se taqra data mistoqsija partikolari u tkun tista’ tikkonkludi jekk din il-mistoqsija hijiex tajba (jew migrazzjoni) jew ħażina, għad trid tiġi ottimizzata .

Ejja nagħtu ħarsa lejn kif Joe huwa speċifikament ottimizzat.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Ejja nieħdu talba minn sistema reali. F'dan il-każ, id-database hija terabyte 1. U rridu ngħoddu n-numru ta 'postijiet ġodda li kellhom aktar minn 10 likes.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Qed niktbu messaġġ lill-kanal, klonu ġie skjerat għalina. U naraw li talba bħal din titlesta fi żmien 2,5 minuti. Din hija l-ewwel ħaġa li ninnutaw.

B Joe jurik rakkomandazzjonijiet awtomatiċi bbażati fuq il-pjan u l-metriċi.

Se naraw li l-mistoqsija tipproċessa wisq dejta biex tikseb numru relattivament żgħir ta 'ringieli. U huwa meħtieġ xi tip ta 'indiċi speċjalizzat, peress li aħna ndunat li hemm wisq ringieli ffiltrati fil-mistoqsija.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Ejja nagħtu ħarsa aktar mill-qrib lejn dak li ġara. Tabilħaqq, naraw li qrajna kważi gigabytes u nofs ta 'data mill-cache tal-fajls jew saħansitra mid-disk. U dan mhux tajjeb, għax aħna ltqajna biss 142 linja.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

U, jidher, għandna skan ta 'l-indiċi hawn u suppost ħadmu malajr, iżda peress li ffiltrajna wisq linji (kellna ngħodduhom), it-talba ħarġet bil-mod.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

U dan ġara fil-pjan minħabba l-fatt li l-kundizzjonijiet fil-mistoqsija u l-kundizzjonijiet fl-indiċi parzjalment ma jaqblux.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Ejja nippruvaw nagħmlu l-indiċi aktar preċiż u naraw kif l-eżekuzzjoni tal-mistoqsija tinbidel wara dan.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Il-ħolqien ta 'l-indiċi ħa żmien pjuttost twil, iżda issa niċċekkjaw il-mistoqsija u naraw li l-ħin minflok 2,5 minuti huwa biss 156 millisekondi, li huwa tajjeb biżżejjed. U naqraw biss 6 megabytes ta 'data.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

U issa nużaw l-indiċi biss scan.

Storja oħra importanti hija li rridu nippreżentaw il-pjan b'xi mod li jinftiehem aktar. Implimentajna l-viżwalizzazzjoni bl-użu ta’ Flame Graphs.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Din hija talba differenti, aktar intensa. U nibnu Flame Graphs skont żewġ parametri: dan huwa l-ammont ta 'dejta li node partikolari għadd fil-pjan u fil-ħin, jiġifieri l-ħin tal-eżekuzzjoni tan-nodu.

Hawnhekk nistgħu nqabblu nodi speċifiċi ma 'xulxin. U se jkun ċar liema minnhom jieħu aktar jew inqas, li normalment huwa diffiċli li tagħmel f'metodi oħra ta ' rendering.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Ovvjament, kulħadd jaf explic.depesz.com. Karatteristika tajba ta 'din il-viżwalizzazzjoni hija li nissejvjaw il-pjan tat-test u npoġġu wkoll xi parametri bażiċi f'tabella sabiex inkunu nistgħu nissortjaw.

U l-iżviluppaturi li għadhom ma ħarġux f'dan is-suġġett jużaw ukoll explic.depesz.com, għaliex huwa aktar faċli għalihom biex insemmu liema metriċi huma importanti u liema mhumiex.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Hemm approċċ ġdid għall-viżwalizzazzjoni - dan huwa explic.dalibo.com. Huma jagħmlu viżwalizzazzjoni tas-siġra, iżda huwa diffiċli ħafna li tqabbel in-nodi ma 'xulxin. Hawnhekk tista 'tifhem sew l-istruttura, madankollu, jekk ikun hemm talba kbira, allura jkollok bżonn tiskrollja 'l quddiem u lura, iżda wkoll għażla.

kollaborazzjoni

DBA bot Joe. Anatoly Stansler (Postgres.ai)

U, kif għedt, Slack jagħtina l-opportunità li nikkollaboraw. Pereżempju, jekk niltaqgħu ma 'mistoqsija kumplessa li mhix ċara kif ottimizzaw, nistgħu niċċaraw din il-kwistjoni mal-kollegi tagħna f'ħajta f'Slack.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Jidhirna li huwa importanti li tittestja fuq data ta 'daqs sħiħ. Biex tagħmel dan, għamilna l-għodda Update Database Lab, li hija disponibbli f'sors miftuħ. Tista' tuża wkoll il-bot Joe. Tista' teħodha dritt issa u timplimentah f'postek. Il-gwidi kollha huma disponibbli hemmhekk.

Huwa wkoll importanti li wieħed jinnota li s-soluzzjoni nnifisha mhix rivoluzzjonarja, għaliex hemm Delphix, iżda hija soluzzjoni ta 'intrapriża. Huwa kompletament magħluq, huwa għali ħafna. Aħna speċifikament jispeċjalizzaw fil Postgres. Dawn huma kollha prodotti open source. Ingħaqad magħna!

Dan huwa fejn nispiċċa. Grazzi!

mistoqsijiet

Bongu! Grazzi tar-rapport! Interessanti ħafna, speċjalment għalija, għax solvejt dwar l-istess problema xi żmien ilu. U għalhekk għandi numru ta’ mistoqsijiet. Nisperaw li nikseb mill-inqas parti minnha.

Nistaqsi kif tikkalkula l-post għal dan l-ambjent? It-teknoloġija tfisser li taħt ċerti ċirkostanzi, il-kloni tiegħek jistgħu jikbru għad-daqs massimu. Bejn wieħed u ieħor, jekk għandek database ta 'għaxar terabyte u 10 kloni, allura huwa faċli li tissimula sitwazzjoni fejn kull klonu jiżen 10 data unika. Kif tikkalkula dan il-post, jiġifieri dik id-delta li tkellimt dwarha, li fiha se jgħixu dawn il-kloni?

Mistoqsija tajba. Huwa importanti li żżomm rekord ta 'kloni speċifiċi hawn. U jekk klonu jkollu xi bidla kbira wisq, jibda jikber, allura nistgħu l-ewwel noħorġu twissija lill-utent dwar dan, jew immedjatament waqqaf dan il-klonu sabiex ma jkollniex sitwazzjoni ta 'falliment.

Iva, għandi mistoqsija nested. Jiġifieri, kif tiżgura ċ-ċiklu tal-ħajja ta 'dawn il-moduli? Għandna din il-problema u storja sħiħa separata. Kif jiġri dan?

Hemm xi ttl għal kull klonu. Bażikament, għandna ttl fiss.

X'jiġri, jekk mhux sigriet?

1 siegħa, jiġifieri idle - 1 siegħa. Jekk ma tintużax, allura aħna bang. Iżda m'hemm l-ebda sorpriża hawnhekk, peress li nistgħu ngħollu l-klonu f'sekondi. U jekk għandek bżonnha mill-ġdid, allura jekk jogħġbok.

Jiena interessat ukoll fl-għażla tat-teknoloġiji, għaliex, pereżempju, nużaw diversi metodi b'mod parallel għal xi raġuni jew oħra. Għaliex ZFS? Għaliex ma użajtx LVM? Semmejt li kien hemm problemi bl-LVM. X'kienu l-problemi? Fl-opinjoni tiegħi, l-aħjar għażla hija bil-ħażna, f'termini ta 'prestazzjoni.

X'inhi l-problema ewlenija ma 'ZFS? Il-fatt li trid taħdem fuq l-istess host, jiġifieri l-istanzi kollha se jgħixu fl-istess OS. U fil-każ tal-ħażna, tista 'tqabbad tagħmir differenti. U l-konġestjoni hija biss dawk il-blokki li huma fuq is-sistema tal-ħażna. U l-kwistjoni tal-għażla tat-teknoloġiji hija interessanti. Għaliex le LVM?

Speċifikament, nistgħu niddiskutu LVM waqt il-laqgħa. Dwar il-ħażna - huwa biss għali. Nistgħu nimplimentaw is-sistema ZFS kullimkien. Tista' tużaha fuq il-magna tiegħek. Tista 'sempliċement tniżżel ir-repożitorju u tużah. ZFS huwa installat kważi kullimkien jekk qed nitkellmu dwar Linux. Jiġifieri jkollna soluzzjoni flessibbli ħafna. U ZFS innifsu jagħti ħafna barra mill-kaxxa. Tista 'upload data kemm tixtieq, qabbad numru kbir ta' diski, hemm snapshots. U, kif għedt, huwa faċli li tamministra. Jiġifieri, jidher pjaċevoli ħafna biex tużah. Huwa ttestjat, għandu ħafna snin. Għandu komunità kbira ħafna li qed tikber. ZFS hija soluzzjoni affidabbli ħafna.

Nikolai Samokhvalov: Nista' nikkummenta aktar? Jisimni Nikolay, naħdmu flimkien ma 'Anatoly. Naqbel li l-ħażna hija kbira. U xi wħud mill-klijenti tagħna għandhom Ħażna Pura eċċ.

Anatoly innota b'mod korrett li aħna ffukati fuq il-modularità. U fil-futur, tista 'timplimenta interface waħda - ħu snapshot, agħmel klonu, teqred il-klonu. Kollox faċli. U l-ħażna hija friska, jekk ikun.

Iżda ZFS huwa disponibbli għal kulħadd. DelPhix diġà huwa biżżejjed, għandhom 300 klijent. Minn dawn, Fortune 100 għandha 50 klijent, jiġifieri huma mmirati lejn in-NASA, eċċ Wasal iż-żmien li kulħadd jieħu din it-teknoloġija. U hu għalhekk li għandna Core sors miftuħ. Għandna parti interface li mhix open source. Din hija l-pjattaforma li se nuru. Imma rridu li tkun aċċessibbli għal kulħadd. Irridu nagħmlu rivoluzzjoni biex dawk kollha li jittestjaw jieqfu jaħslu fuq il-laptops. Irridu niktbu SELECT u immedjatament naraw li huwa bil-mod. Tieqaf tistenna lid-DBA jgħidlek dwarha. Hawn hu l-għan ewlieni. U naħseb li lkoll se naslu għal dan. U nagħmlu din il-ħaġa biex kulħadd ikollu. Għalhekk ZFS, għax se jkun disponibbli kullimkien. Grazzi lill-komunità talli ssolviet problemi u talli għandha liċenzja open source, eċċ.*

Tislijiet! Grazzi tar-rapport! Jisimni Maxim. Ittrattajna l-istess kwistjonijiet. Huma ddeċidew waħedhom. Kif taqsam ir-riżorsi bejn dawn il-kloni? Kull klonu jista’ jagħmel l-affarijiet tiegħu fi kwalunkwe ħin: wieħed jittestja ħaġa, ieħor ieħor, xi ħadd jibni indiċi, xi ħadd għandu xogħol tqil. U jekk xorta tista 'taqsam bis-CPU, imbagħad b'IO, kif taqsam? Din hija l-ewwel mistoqsija.

U t-tieni mistoqsija hija dwar id-differenza bejn l-istands. Ejja ngħidu li għandi ZFS hawn u kollox huwa frisk, iżda l-klijent fuq prod m'għandux ZFS, iżda ext4, per eżempju. Kif f'dan il-każ?

Il-mistoqsijiet huma tajbin ħafna. Semmejt xi ftit din il-problema bil-fatt li naqsmu r-riżorsi. U s-soluzzjoni hija din. Immaġina li qed tittestja fuq l-istadji. Jista 'jkollok ukoll sitwazzjoni bħal din fl-istess ħin li xi ħadd jagħti tagħbija waħda, xi ħadd ieħor. U bħala riżultat, tara metriċi inkomprensibbli. Anke l-istess problema tista 'tkun bi prod. Meta trid tiċċekkja xi talba u tara li hemm xi problema magħha - taħdem bil-mod, allura fil-fatt il-problema ma kinitx fit-talba, iżda fil-fatt li hemm xi tip ta 'tagħbija parallela.

U għalhekk, huwa importanti hawn li niffukaw fuq x'se jkun il-pjan, x'passi se nieħdu fil-pjan u kemm se niġbru dejta għal dan. Il-fatt li d-diski tagħna, pereżempju, se jkunu mgħobbija b'xi ħaġa, se jaffettwa speċifikament iż-żmien. Iżda nistgħu nistmaw kemm din it-talba hija mgħobbija bl-ammont ta 'dejta. Mhux daqshekk importanti li fl-istess ħin ikun hemm xi tip ta’ eżekuzzjoni.

Għandi żewġ mistoqsijiet. Dan huwa għalf jibred ħafna. Kien hemm każijiet fejn id-dejta tal-produzzjoni hija kritika, bħan-numri tal-karti tal-kreditu? Diġà hemm xi ħaġa lesta jew hija kompitu separat? U t-tieni mistoqsija - hemm xi ħaġa bħal din għal MySQL?

Dwar id-data. Aħna se nagħmlu offuskazzjoni sakemm nagħmlu. Imma jekk tiskjera eżattament Joe, jekk ma tagħtix aċċess lill-iżviluppaturi, allura m'hemm l-ebda aċċess għad-dejta. Għaliex? Għax Joe ma jurix data. Juri biss metriċi, pjanijiet u dak hu. Dan sar apposta, għaliex dan huwa wieħed mir-rekwiżiti tal-klijent tagħna. Huma riedu jkunu jistgħu jottimizzaw mingħajr ma jagħtu aċċess lil kulħadd.

Dwar MySQL. Din is-sistema tista 'tintuża għal kull ħaġa li taħżen l-istat fuq disk. U peress li qed nagħmlu Postgres, issa qed nagħmlu l-awtomazzjoni kollha għal Postgres l-ewwel. Irridu nawtomatizzaw il-kisba tad-dejta minn backup. Qed nikkonfiguraw Postgres b'mod korrett. Nafu kif nagħmlu l-pjanijiet jaqblu, eċċ.

Iżda peress li s-sistema hija estensibbli, tista 'tintuża wkoll għal MySQL. U hemm eżempji bħal dawn. Yandex għandu ħaġa simili, iżda ma jippubblikawha imkien. Huma jużawha ġewwa Yandex.Metrica. U hemm biss storja dwar MySQL. Iżda t-teknoloġiji huma l-istess, ZFS.

Grazzi tar-rapport! Għandi wkoll ftit mistoqsijiet. Semmejt li l-klonazzjoni tista' tintuża għall-analiżi, pereżempju biex jinbnew indiċi addizzjonali hemmhekk. Tista' tgħid ftit aktar dwar kif taħdem?

U immedjatament nistaqsi t-tieni mistoqsija dwar ix-xebh tal-istands, ix-xebh tal-pjanijiet. Il-pjan jiddependi wkoll fuq l-istatistika miġbura minn Postgres. Kif issolvi din il-problema?

Skont l-analitiċi, m'hemm l-ebda każijiet speċifiċi, għax għadna ma użajnihx, iżda hemm opportunità bħal din. Jekk qed nitkellmu dwar l-indiċi, allura immaġina li mistoqsija qed tiġri tabella b'mijiet ta 'miljuni ta' rekords u kolonna li normalment ma tkunx indiċjata fi prod. U rridu nikkalkulaw xi dejta hemmhekk. Jekk din it-talba tintbagħat lil prod, allura hemm il-possibbiltà li tkun sempliċi fuq prod, minħabba li t-talba tiġi pproċessata hemm għal minuta.

Ok, ejja nagħmlu klonu rqiq li mhux terribbli biex tieqaf għal ftit minuti. U sabiex tagħmilha aktar komda biex taqra l-analitiċi, se nżidu l-indiċi għal dawk il-kolonni li fihom aħna interessati fid-dejta.

L-indiċi se jinħoloq kull darba?

Tista 'tagħmilha sabiex aħna tmiss id-data, nagħmlu snapshots, allura aħna nirkupraw minn din l-istampa u nsuqu talbiet ġodda. Jiġifieri, tista 'tagħmilha sabiex tkun tista' tqajjem kloni ġodda b'indiċijiet diġà mwaħħla.

Fir-rigward tal-mistoqsija dwar l-istatistika, jekk nirrestawraw minn backup, jekk nagħmlu replikazzjoni, allura l-istatistika tagħna tkun eżattament l-istess. Minħabba li għandna l-istruttura tad-dejta fiżika kollha, jiġifieri, se nġibu d-dejta kif inhi wkoll mal-metriċi tal-istatistika kollha.

Hawnhekk hawn problema oħra. Jekk tuża soluzzjoni sħaba, allura dumps loġiċi biss huma disponibbli hemmhekk, minħabba li Google, Amazon ma jippermettux li tieħu kopja fiżika. Se jkun hemm problema.

Grazzi tar-rapport. Kien hemm żewġ mistoqsijiet tajbin hawn dwar MySQL u l-qsim tar-riżorsi. Iżda, fil-fatt, kollox niżel għall-fatt li dan mhuwiex suġġett ta 'DBMS speċifiku, iżda tas-sistema tal-fajls kollha kemm hi. U, għalhekk, il-kwistjonijiet tal-qsim tar-riżorsi għandhom ukoll jiġu solvuti minn hemm, mhux fl-aħħar li huwa Postgres, iżda fis-sistema tal-fajls, fis-server, per eżempju.

Il-mistoqsija tiegħi hija xi ftit differenti. Huwa eqreb tad-database b'ħafna saffi, fejn hemm diversi saffi. Pereżempju, waqqafna aġġornament tal-immaġni ta 'għaxar terabyte, qed nirreplikaw. U aħna speċifikament nużaw din is-soluzzjoni għal databases. Ir-replikazzjoni għaddejja, id-dejta qed tiġi aġġornata. Hemm 100 impjegat li jaħdmu b'mod parallel hawn, li kontinwament iniedu dawn is-shots differenti. X'tagħmel? Kif tiżgura li m'hemm l-ebda kunflitt, li nedew wieħed, u mbagħad is-sistema tal-fajls inbidlet, u dawn l-istampi marru kollha?

Huma mhux se jmorru għax hekk jaħdem ZFS. Nistgħu nżommu separatament f'ħajt wieħed il-bidliet fis-sistema tal-fajls li jiġu minħabba replikazzjoni. U żomm il-kloni li l-iżviluppaturi jużaw fuq verżjonijiet eqdem tad-dejta. U taħdem għalina, kollox huwa fl-ordni ma 'dan.

Jirriżulta li l-aġġornament se jseħħ bħala saff addizzjonali, u l-istampi l-ġodda kollha se jmorru diġà, ibbażati fuq dan is-saff, hux?

Minn saffi preċedenti li kienu minn repliki preċedenti.

Is-saffi ta 'qabel se jaqgħu, iżda se jirreferu għas-saff l-antik, u se jieħdu immaġini ġodda mill-aħħar saff li wasal fl-aġġornament?

B'mod ġenerali, iva.

Imbagħad bħala konsegwenza jkollna sa tin saffi. U maż-żmien se jkollhom bżonn jiġu kkompressati?

Iva kollox huwa korrett. Hemm xi tieqa. Inżommu snapshots kull ġimgħa. Jiddependi fuq liema riżors għandek. Jekk għandek il-ħila li taħżen ħafna dejta, tista 'taħżen snapshots għal żmien twil. Huma mhux se jmorru waħedhom. Mhux se jkun hemm korruzzjoni tad-data. Jekk il-snapshots huma skaduti, kif jidher lilna, jiġifieri jiddependi fuq il-politika fil-kumpanija, allura nistgħu sempliċement inħassruhom u nilliberaw spazju.

Hello, grazzi għar-rapport! Mistoqsija dwar Joe. Inti għedt li l-klijent ma riedx jagħti aċċess għad-data lil kulħadd. Strettament, jekk persuna għandha r-riżultat ta 'Spjega Analiżi, allura tista' peep id-data.

Huwa hekk. Per eżempju, nistgħu niktbu: "AGĦŻEL FROM FEJN email = għal dak". Jiġifieri, mhux se naraw id-dejta nnifisha, iżda nistgħu naraw xi sinjali indiretti. Dan għandu jinftiehem. Iżda min-naħa l-oħra, kollox hemm. Għandna log audit, għandna kontroll ta' kollegi oħra li jaraw ukoll x'qed jagħmlu l-iżviluppaturi. U jekk xi ħadd jipprova jagħmel dan, allura s-servizz tas-sigurtà jiġi għandu u jaħdem fuq din il-kwistjoni.

Il-waranofsinhar it-tajjeb Grazzi tar-rapport! Għandi mistoqsija qasira. Jekk il-kumpanija ma tużax Slack, hemm xi torbot magħha issa, jew huwa possibbli għall-iżviluppaturi li jużaw istanzi sabiex jgħaqqdu applikazzjoni tat-test mad-databases?

Issa hemm link għal Slack, jiġifieri m'hemm l-ebda messaġġier ieħor, imma nixtieq verament nagħmel appoġġ għal messaġġiera oħra wkoll. X'tista tagħmel? Tista 'skjera DB Lab mingħajr Joe, mur bl-għajnuna tal-API REST jew bl-għajnuna tal-pjattaforma tagħna u toħloq kloni u qabbad ma' PSQL. Iżda dan jista 'jsir jekk inti lest li tagħti lill-iżviluppaturi tiegħek aċċess għad-dejta, minħabba li ma jkunx hemm aktar skrin.

M'għandix bżonn dan is-saff, imma għandi bżonn opportunità bħal din.

Imbagħad iva, jista 'jsir.

Sors: www.habr.com

Żid kumment