DBA bot Joe. Anatoly Stansler (Postgres.ai)

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Bawo ni olupilẹṣẹ afẹyinti ṣe loye pe ibeere SQL kan yoo ṣiṣẹ daradara lori “prod”? Ni awọn ile-iṣẹ nla tabi ni kiakia, kii ṣe gbogbo eniyan ni iwọle si “ọja”. Ati pẹlu iraye si, kii ṣe gbogbo awọn ibeere ni a le ṣayẹwo laisi irora, ati ṣiṣẹda ẹda ti data nigbagbogbo gba awọn wakati. Lati yanju awọn iṣoro wọnyi, a ṣẹda DBA artificial - Joe. O ti ni imuse ni aṣeyọri ni ọpọlọpọ awọn ile-iṣẹ ati iranlọwọ diẹ sii ju awọn olupolowo mejila kan.

Fidio:

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Bawo ni gbogbo eniyan! Orukọ mi ni Anatoly Stansler. Mo ṣiṣẹ fun ile-iṣẹ kan postgres.ai. A ṣe ipinnu lati yara ilana idagbasoke nipasẹ yiyọ awọn idaduro ti o ni nkan ṣe pẹlu iṣẹ Postgres lati awọn olupilẹṣẹ, DBAs ati QAs.

A ni awọn alabara nla ati loni apakan ti ijabọ naa yoo jẹ iyasọtọ si awọn ọran ti a pade lakoko ṣiṣẹ pẹlu wọn. Emi yoo sọrọ nipa bi a ṣe ṣe iranlọwọ fun wọn lati yanju awọn iṣoro to ṣe pataki.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Nigba ti a ba ndagbasoke ati ṣiṣe awọn irin-ajo ti o ni ẹru giga, a beere lọwọ ara wa ni ibeere: "Ṣe ijira yii yoo lọ?". A lo atunyẹwo, a lo imọ ti awọn ẹlẹgbẹ ti o ni iriri diẹ sii, awọn amoye DBA. Ati pe wọn le sọ boya yoo fo tabi ko.

Ṣugbọn boya yoo dara julọ ti a ba le ṣe idanwo funrara wa lori awọn ẹda iwọn ni kikun. Ati loni a yoo kan sọrọ nipa kini awọn isunmọ si idanwo ni bayi ati bii o ṣe le ṣe dara julọ ati pẹlu awọn irinṣẹ wo. A yoo tun sọrọ nipa awọn anfani ati awọn konsi ti iru awọn isunmọ, ati ohun ti a le ṣatunṣe nibi.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Tani o ti ṣe awọn atọka taara lori prod tabi ṣe awọn ayipada eyikeyi? Oyimbo kan bit ti. Ati fun tani eyi ṣe yorisi otitọ pe data ti sọnu tabi awọn akoko isinmi wa? Lẹhinna o mọ irora yii. Dupẹ lọwọ Ọlọrun pe awọn afẹyinti wa.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Ọna akọkọ jẹ idanwo ni prod. Tabi, nigbati olupilẹṣẹ ba joko lori ẹrọ agbegbe, o ni data idanwo, iru yiyan lopin wa. Ati pe a jade lọ si prod, ati pe a gba ipo yii.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

O dun, o jẹ gbowolori. O ṣee ṣe dara julọ lati ma ṣe.

Ati kini ọna ti o dara julọ lati ṣe?

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Jẹ ki a mu iṣeto ki o yan apakan kan ti prod nibẹ. Tabi ni dara julọ, jẹ ki a mu prod gidi kan, gbogbo data naa. Ati lẹhin ti a ti ni idagbasoke ni agbegbe, a yoo ṣayẹwo ni afikun fun iṣeto.

Eyi yoo gba wa laaye lati yọ diẹ ninu awọn aṣiṣe kuro, ie ṣe idiwọ wọn lati wa lori prod.

Kini awọn iṣoro naa?

  • Iṣoro naa ni pe a pin iṣeto yii pẹlu awọn ẹlẹgbẹ. Ati ni igbagbogbo o ṣẹlẹ pe o ṣe diẹ ninu iru iyipada, bam - ati pe ko si data, iṣẹ naa wa ni isalẹ sisan. Iṣeto wà olona-terabyte. Ati pe o ni lati duro fun igba pipẹ lati dide lẹẹkansi. Ati pe a pinnu lati pari ni ọla. Iyẹn ni, a ni idagbasoke.
  • Ati pe, dajudaju, a ni ọpọlọpọ awọn ẹlẹgbẹ ṣiṣẹ nibẹ, ọpọlọpọ awọn ẹgbẹ. Ati pe o ni lati ṣe pẹlu ọwọ. Ati pe eyi ko nirọrun.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Ati pe o tọ lati sọ pe a ni igbiyanju kan nikan, ibọn kan, ti a ba fẹ ṣe diẹ ninu awọn ayipada si ibi ipamọ data, fọwọkan data, yi eto naa pada. Ati pe ti nkan kan ba jẹ aṣiṣe, ti aṣiṣe ba wa ninu ijira, lẹhinna a kii yoo yara yiyi pada.

Eyi dara julọ ju ọna iṣaaju lọ, ṣugbọn iṣeeṣe giga tun wa pe iru aṣiṣe kan yoo lọ si iṣelọpọ.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Kini o ṣe idiwọ fun wa lati fun oluṣe idagbasoke kọọkan ni ijoko idanwo, ẹda ti o ni kikun? Mo ro pe o jẹ ko o ohun ti n ni ninu awọn ọna.

Tani database ti o tobi ju terabyte lọ? Die e sii ju idaji yara naa lọ.

Ati pe o han gbangba pe titọju awọn ẹrọ fun olupilẹṣẹ kọọkan, nigbati iṣelọpọ nla ba wa, jẹ gbowolori pupọ, ati ni afikun, o gba akoko pipẹ.

A ni awọn alabara ti o rii pe o ṣe pataki pupọ lati ṣe idanwo gbogbo awọn ayipada lori awọn adakọ ni kikun, ṣugbọn data data wọn kere ju terabyte kan, ati pe ko si awọn orisun lati tọju ibujoko idanwo fun idagbasoke kọọkan. Nitorinaa, wọn ni lati ṣe igbasilẹ awọn idalenu ni agbegbe si ẹrọ wọn ati idanwo ni ọna yii. O gba akoko pupọ.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Paapaa ti o ba ṣe inu awọn amayederun, lẹhinna igbasilẹ terabyte kan ti data fun wakati kan ti dara pupọ tẹlẹ. Ṣugbọn wọn lo awọn idalenu ọgbọn, wọn ṣe igbasilẹ ni agbegbe lati inu awọsanma. Fun wọn, iyara jẹ nipa 200 gigabytes fun wakati kan. Ati pe o tun gba akoko lati yipada lati idalẹnu ọgbọn, yipo awọn atọka, ati bẹbẹ lọ.

Ṣugbọn wọn lo ọna yii nitori pe o jẹ ki wọn jẹ ki ọja naa jẹ igbẹkẹle.

Kini a le ṣe nibi? Jẹ ki a ṣe awọn ibujoko idanwo olowo poku ki o fun gbogbo idagbasoke ni ijoko idanwo tirẹ.

Ati pe eyi ṣee ṣe.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Ati ni ọna yii, nigba ti a ba ṣe awọn ere ibeji tinrin fun idagbasoke kọọkan, a le pin lori ẹrọ kan. Fun apẹẹrẹ, ti o ba ni aaye data 10TB kan ati pe o fẹ lati fun awọn olupilẹṣẹ 10, iwọ ko nilo lati ni awọn apoti isura data XNUMX x XNUMXTB. O nilo ẹrọ kan nikan lati ṣe awọn ẹda ti o ya sọtọ tinrin fun idagbasoke kọọkan nipa lilo ẹrọ kan. Emi yoo so fun o bi o ti ṣiṣẹ kekere kan nigbamii.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Apẹẹrẹ gidi:

  • DB - 4,5 terabytes.

  • A le gba awọn ẹda ominira ni iṣẹju-aaya 30.

O ko ni lati duro fun iduro idanwo ati dale lori bi o ti tobi to. O le gba ni iṣẹju-aaya. Yoo jẹ awọn agbegbe ti o ya sọtọ patapata, ṣugbọn eyiti o pin data laarin ara wọn.

Eleyi jẹ nla. Nibi a n sọrọ nipa idan ati Agbaye ti o jọra.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Ninu ọran wa, eyi ṣiṣẹ nipa lilo eto OpenZFS.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

OpenZFS jẹ ẹda-lori-kikọ faili eto ti o ṣe atilẹyin snapshots ati awọn ere ibeji jade kuro ninu apoti. O jẹ igbẹkẹle ati iwọn. O rọrun pupọ lati ṣakoso. O le gangan wa ni ransogun ni meji egbe.

Awọn aṣayan miiran wa:

  • lvm,

  • Ibi ipamọ (fun apẹẹrẹ, Ibi ipamọ mimọ).

Lab Database ti Mo n sọrọ rẹ jẹ apọjuwọn. Le ṣe imuse nipa lilo awọn aṣayan wọnyi. Ṣugbọn fun bayi, a ti dojukọ OpenZFS, nitori awọn iṣoro wa pẹlu LVM pataki.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Bawo ni o ṣe n ṣiṣẹ? Dipo ti atunko data ni gbogbo igba ti a ba yi pada, a fipamọ nipa fifi aami si nirọrun pe data tuntun yii wa lati aaye tuntun ni akoko, aworan tuntun kan.

Ati ni ojo iwaju, nigba ti a ba fẹ lati yi pada tabi ti a fẹ lati ṣe titun kan oniye lati diẹ ninu awọn agbalagba version, a kan sọ: "O DARA, fun wa wọnyi ohun amorindun ti data ti o ti wa ni samisi bi yi."

Ati pe olumulo yii yoo ṣiṣẹ pẹlu iru eto data kan. Oun yoo yi wọn pada diẹ sii, ṣe awọn aworan ti ara rẹ.

Ati pe a yoo ẹka. Olukuluku Olùgbéejáde ninu ọran wa yoo ni aye lati ni ẹda oniye tirẹ ti o ṣatunkọ, ati pe data ti o pin yoo pin laarin gbogbo eniyan.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Lati mu iru eto bẹ ni ile, o nilo lati yanju awọn iṣoro meji:

  • Ni igba akọkọ ti ni awọn orisun ti awọn data, ibi ti o ti yoo gba lati. O le ṣeto atunṣe pẹlu iṣelọpọ. O le ti lo awọn afẹyinti ti o ti tunto, Mo nireti. WAL-E, WAL-G tabi Barman. Ati paapaa ti o ba nlo iru ojutu awọsanma bii RDS tabi Cloud SQL, lẹhinna o le lo awọn idalenu ọgbọn. Ṣugbọn a tun gba ọ ni imọran lati lo awọn afẹyinti, nitori pẹlu ọna yii iwọ yoo tun ṣe idaduro eto ti ara ti awọn faili, eyiti yoo gba ọ laaye lati sunmọ awọn metiriki ti iwọ yoo rii ni iṣelọpọ lati le mu awọn iṣoro wọnyẹn ti o wa.

  • Awọn keji ni ibi ti o fẹ lati gbalejo awọn aaye data Lab. O le jẹ Awọsanma, o le jẹ Lori-ile. O ṣe pataki lati sọ nibi pe ZFS ṣe atilẹyin funmorawon data. Ati pe o ṣe daradara.

Fojuinu pe fun iru oniye kọọkan, da lori awọn iṣẹ ṣiṣe ti a ṣe pẹlu ipilẹ, diẹ ninu iru dev yoo dagba. Fun eyi, dev yoo tun nilo aaye. Ṣugbọn nitori otitọ pe a mu ipilẹ ti terabytes 4,5, ZFS yoo rọpọ si 3,5 terabytes. Eyi le yatọ si da lori awọn eto. Ati pe a tun ni aye fun dev.

Iru eto le ṣee lo fun orisirisi igba.

  • Iwọnyi jẹ awọn idagbasoke, awọn DBA fun afọwọsi ibeere, fun iṣapeye.

  • Eyi le ṣee lo ni idanwo QA lati ṣe idanwo ijira kan pato ṣaaju ki a to yi lọ si prod. Ati pe a tun le gbe awọn agbegbe pataki fun QA pẹlu data gidi, nibiti wọn le ṣe idanwo iṣẹ ṣiṣe tuntun. Ati pe yoo gba awọn iṣẹju-aaya dipo awọn wakati idaduro, ati boya awọn ọjọ ni awọn igba miiran nibiti a ko lo awọn ẹda tinrin.

  • Ati ọran miiran. Ti ile-iṣẹ naa ko ba ni eto eto atupale ti a ṣeto, lẹhinna a le ya sọtọ oniye tinrin ti ipilẹ ọja ati fun ni awọn ibeere gigun tabi awọn atọka pataki ti o le ṣee lo ninu awọn atupale.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Pẹlu ọna yii:

  1. Iṣeeṣe kekere ti awọn aṣiṣe lori “prod”, nitori a ṣe idanwo gbogbo awọn ayipada lori data iwọn-kikun.

  2. A ni aṣa ti idanwo, nitori bayi o ko ni lati duro fun awọn wakati fun iduro tirẹ.

  3. Ati pe ko si idena, ko si idaduro laarin awọn idanwo. O le nitootọ lọ ṣayẹwo. Ati pe yoo dara julọ ni ọna yii bi a ṣe yara idagbasoke.

  • Nibẹ ni yio je kere refactoring. Awọn idun diẹ yoo pari ni prod. A yoo refactor wọn kere nigbamii.

  • A le yiyipada awọn iyipada ti ko ni iyipada. Eyi kii ṣe ọna boṣewa.

  1. Eyi jẹ anfani nitori a pin awọn orisun ti awọn ijoko idanwo.

Tẹlẹ ti o dara, ṣugbọn kini ohun miiran le jẹ iyara?

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Ṣeun si iru eto kan, a le dinku ala-ilẹ fun titẹ iru idanwo naa.

Bayi Circle buburu kan wa, nigbati olupilẹṣẹ kan, lati le ni iraye si data ni kikun ni kikun, gbọdọ di alamọja. O gbọdọ ni igbẹkẹle pẹlu iru wiwọle.

Ṣugbọn bi o ṣe le dagba ti ko ba si nibẹ. Ṣugbọn kini ti o ba ni iwọn kekere ti data idanwo ti o wa si ọ? Lẹhinna iwọ kii yoo ni iriri gidi eyikeyi.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Bawo ni lati jade kuro ninu Circle yii? Gẹgẹbi wiwo akọkọ, rọrun fun awọn olupilẹṣẹ ti ipele eyikeyi, a yan Slack bot. Ṣugbọn o le jẹ eyikeyi miiran ni wiwo.

Kini o gba ọ laaye lati ṣe? O le gba ibeere kan pato ki o firanṣẹ si ikanni pataki kan fun ibi ipamọ data. A yoo mu ẹda oniye tinrin ṣiṣẹ laifọwọyi ni iṣẹju-aaya. Jẹ ki a ṣiṣẹ ibeere yii. A gba awọn metiriki ati awọn iṣeduro. Jẹ ki a ṣe afihan iworan kan. Ati lẹhinna ẹda oniye yii yoo wa nibe ki ibeere yii le jẹ iṣapeye bakan, ṣafikun awọn atọka, ati bẹbẹ lọ.

Ati pe Slack tun fun wa ni awọn aye fun ifowosowopo jade kuro ninu apoti. Niwọn igba ti eyi jẹ ikanni kan, o le bẹrẹ jiroro lori ibeere yii nibe ni okun fun iru ibeere kan, Pingi awọn ẹlẹgbẹ rẹ, awọn DBA ti o wa ninu ile-iṣẹ naa.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Ṣugbọn, dajudaju, awọn iṣoro wa. Nitoripe eyi ni aye gidi, ati pe a nlo olupin ti n gbalejo ọpọlọpọ awọn ere ibeji ni ẹẹkan, a ni lati compress iye iranti ati agbara Sipiyu ti o wa si awọn ere ibeji.

Ṣugbọn fun awọn idanwo wọnyi lati jẹ o ṣeeṣe, o nilo lati bakan yanju iṣoro yii.

O han gbangba pe aaye pataki jẹ data kanna. Ṣugbọn a ti ni tẹlẹ. Ati pe a fẹ lati ṣaṣeyọri iṣeto kanna. Ati awọn ti a le fun iru ohun fere aami iṣeto ni.

Yoo dara lati ni ohun elo kanna bi ni iṣelọpọ, ṣugbọn o le yatọ.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Jẹ ki a ranti bi Postgres ṣe n ṣiṣẹ pẹlu iranti. A ni awọn kaṣe meji. Ọkan lati inu eto faili ati Postgres abinibi kan, ie Kaṣe Buffer Pipin.

O ṣe pataki lati ṣe akiyesi pe Kaṣe Buffer Pipin ti pin nigbati Postgres bẹrẹ, da lori iru iwọn ti o pato ninu iṣeto ni.

Ati kaṣe keji nlo gbogbo aaye to wa.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Ati pe nigba ti a ba ṣe ọpọlọpọ awọn ere ibeji lori ẹrọ kan, o han pe a maa kun iranti naa. Ati ni ọna ti o dara, Pipin Buffer Cache jẹ 25% ti lapapọ iye iranti ti o wa lori ẹrọ naa.

Ati pe o wa ni pe ti a ko ba yi paramita yii pada, lẹhinna a yoo ni anfani lati ṣiṣẹ awọn iṣẹlẹ 4 nikan lori ẹrọ kan, ie 4 ti gbogbo iru awọn ere ibeji tinrin. Ati pe eyi, dajudaju, buru, nitori a fẹ lati ni pupọ diẹ sii ninu wọn.

Ṣugbọn ni apa keji, Buffer Cache ni a lo lati ṣiṣẹ awọn ibeere fun awọn atọka, iyẹn ni, ero naa da lori bii awọn caches wa ṣe tobi to. Ati pe ti a ba kan mu paramita yii ti a dinku, lẹhinna awọn ero wa le yipada pupọ.

Fun apẹẹrẹ, ti a ba ni kaṣe nla lori prod, lẹhinna Postgres yoo fẹ lati lo atọka kan. Ati pe ti kii ba ṣe bẹ, lẹhinna SeqScan yoo wa. Ati kini yoo jẹ aaye ti awọn eto wa ko ba ṣe deede?

Ṣugbọn nibi a wa si ipari pe ni otitọ ero ni Postgres ko dale lori iwọn kan pato ti a ṣalaye ninu Buffer Pipin ninu ero naa, o da lori munadoko_cache_size.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Effective_cache_size jẹ iye ifoju ti kaṣe ti o wa fun wa, ie apao Kaṣe Buffer ati kaṣe eto faili. Eyi ti ṣeto nipasẹ atunto. Ati yi iranti ti ko ba soto.

Ati nitori paramita yii, a le ni iru ẹtan Postgres, sọ pe a ni ọpọlọpọ data ti o wa, paapaa ti a ko ba ni data yii. Ati bayi, awọn ero yoo patapata pekinreki pẹlu gbóògì.

Ṣugbọn eyi le ni ipa lori akoko. Ati pe a mu awọn ibeere pọ si nipasẹ akoko, ṣugbọn o ṣe pataki pe akoko da lori ọpọlọpọ awọn ifosiwewe:

  • O da lori ẹru ti o wa lori ọja lọwọlọwọ.

  • O da lori awọn abuda ti ẹrọ funrararẹ.

Ati pe eyi jẹ paramita aiṣe-taara, ṣugbọn ni otitọ a le mu gaan dara nipasẹ iye data ti ibeere yii yoo ka lati le gba abajade naa.

Ati pe ti o ba fẹ ki akoko naa sunmọ ohun ti a yoo rii ni prod, lẹhinna a nilo lati mu ohun elo ti o jọra julọ ati, o ṣee ṣe, paapaa diẹ sii ki gbogbo awọn ere ibeji baamu. Ṣugbọn eyi jẹ adehun, ie iwọ yoo gba awọn ero kanna, iwọ yoo rii iye data ti ibeere kan pato yoo ka ati pe iwọ yoo ni anfani lati pari boya ibeere yii dara (tabi ijira) tabi buburu, o tun nilo lati wa ni iṣapeye. .

Jẹ ki ká wo ni bi Joe ti wa ni pataki iṣapeye.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Jẹ ká ya a ìbéèrè lati kan gidi eto. Ni idi eyi, aaye data jẹ terabyte 1. Ati pe a fẹ lati ka nọmba awọn ifiweranṣẹ tuntun ti o ni diẹ sii ju awọn ayanfẹ 10 lọ.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

A n kọ ifiranṣẹ si ikanni naa, a ti gbe ẹda oniye kan fun wa. Ati pe a yoo rii pe iru ibeere bẹẹ yoo pari ni iṣẹju 2,5. Eyi ni ohun akọkọ ti a ṣe akiyesi.

B Joe yoo fihan ọ awọn iṣeduro aifọwọyi ti o da lori ero ati awọn metiriki.

A yoo rii pe ibeere naa ṣe ilana data pupọ ju lati gba nọmba kekere ti awọn ori ila. Ati pe diẹ ninu iru atọka pataki ni a nilo, niwọn bi a ti ṣe akiyesi pe awọn ori ila ti a ti yo pupọ lo wa ninu ibeere naa.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Ẹ jẹ́ ká gbé ohun tó ṣẹlẹ̀ yẹ̀ wò dáadáa. Nitootọ, a rii pe a ti ka fere ọkan ati idaji gigabytes ti data lati kaṣe faili tabi paapaa lati disk. Ati pe eyi ko dara, nitori a ni awọn ila 142 nikan.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Ati pe, yoo dabi pe a ni ọlọjẹ atọka nibi ati pe o yẹ ki o ti ṣiṣẹ ni iyara, ṣugbọn niwọn igba ti a ti yọ awọn laini pupọ (a ni lati ka wọn), ibeere naa ṣiṣẹ laiyara.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Ati pe eyi ṣẹlẹ ninu ero naa nitori otitọ pe awọn ipo ti o wa ninu ibeere ati awọn ipo ti o wa ninu atọka apakan ko baramu.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Jẹ ki a gbiyanju lati jẹ ki atọka naa kongẹ diẹ sii ki a wo bii ipaniyan ibeere ṣe yipada lẹhin iyẹn.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Ṣiṣẹda atọka naa gba igba pipẹ, ṣugbọn nisisiyi a ṣayẹwo ibeere naa ki o rii pe akoko dipo awọn iṣẹju 2,5 jẹ 156 milliseconds nikan, eyiti o dara to. Ati pe a ka awọn megabytes 6 nikan ti data.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Ati nisisiyi a lo atọka nikan ọlọjẹ.

Itan pataki miiran ni pe a fẹ lati ṣafihan ero naa ni diẹ ninu awọn ọna oye diẹ sii. A ti ṣe imuse iworan nipa lilo Awọn aworan ina.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Eyi jẹ ibeere ti o yatọ, pupọ diẹ sii. Ati pe a kọ Awọn aworan ina ni ibamu si awọn aye meji: eyi ni iye data ti oju ipade kan pato ka ninu ero ati akoko, ie akoko ipaniyan ti ipade naa.

Nibi a le ṣe afiwe awọn apa kan pato pẹlu ara wọn. Ati pe yoo jẹ kedere eyiti ninu wọn gba diẹ sii tabi kere si, eyiti o nira nigbagbogbo lati ṣe ni awọn ọna ṣiṣe miiran.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Nitoribẹẹ, gbogbo eniyan mọ alaye.depesz.com. Ẹya ti o dara ti iworan yii ni pe a fipamọ ero ọrọ ati tun fi diẹ ninu awọn aye ipilẹ sinu tabili kan ki a le to lẹsẹsẹ.

Ati awọn olupilẹṣẹ ti ko tii lọ sinu koko yii tun lo alaye.depesz.com, nitori pe o rọrun fun wọn lati ṣawari iru awọn metiriki ṣe pataki ati eyiti kii ṣe.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Ọna tuntun wa si iworan - eyi jẹ alaye.dalibo.com. Wọn ṣe iworan igi, ṣugbọn o ṣoro pupọ lati ṣe afiwe awọn apa pẹlu ara wọn. Nibi o le loye eto naa daradara, sibẹsibẹ, ti ibeere nla ba wa, lẹhinna iwọ yoo nilo lati yi lọ sẹhin ati siwaju, ṣugbọn tun aṣayan kan.

ifowosowopo

DBA bot Joe. Anatoly Stansler (Postgres.ai)

Ati pe, bi mo ti sọ, Slack fun wa ni aye lati ṣe ifowosowopo. Fun apẹẹrẹ, ti a ba pade ibeere ti o nipọn ti ko ṣe alaye bi a ṣe le mu ilọsiwaju sii, a le ṣe alaye ọran yii pẹlu awọn ẹlẹgbẹ wa ninu okùn kan ni Slack.

DBA bot Joe. Anatoly Stansler (Postgres.ai)

O dabi fun wa pe o ṣe pataki lati ṣe idanwo lori data iwọn-kikun. Lati ṣe eyi, a ṣe ohun elo Lab Database Update, eyiti o wa ni orisun ṣiṣi. O tun le lo bot Joe. O le mu ni bayi ki o ṣe imuse ni aaye rẹ. Gbogbo awọn itọsọna wa nibẹ.

O tun ṣe pataki lati ṣe akiyesi pe ojutu funrararẹ kii ṣe iyipada, nitori Delphix wa, ṣugbọn o jẹ ojutu ile-iṣẹ kan. O ti wa ni pipade patapata, o jẹ gidigidi gbowolori. A pataki pataki ni Postgres. Iwọnyi jẹ gbogbo awọn ọja orisun ṣiṣi. Darapo mo wa!

Eyi ni ibi ti mo pari. E dupe!

Awọn ibeere

Pẹlẹ o! O ṣeun fun iroyin na! Iyanu pupọ, paapaa si mi, nitori Mo yanju nipa iṣoro kanna ni akoko diẹ sẹhin. Ati nitorinaa Mo ni nọmba awọn ibeere. Ireti Emi yoo gba o kere ju apakan rẹ.

Mo ṣe iyalẹnu bawo ni o ṣe ṣe iṣiro aaye fun agbegbe yii? Imọ-ẹrọ tumọ si pe labẹ awọn ayidayida kan, awọn ere ibeji rẹ le dagba si iwọn ti o pọju. Ni aijọju, ti o ba ni data terabyte mẹwa ati awọn ere ibeji 10, lẹhinna o rọrun lati ṣe afiwe ipo kan nibiti ẹda oniye kọọkan ṣe iwọn data alailẹgbẹ 10. Bawo ni o ṣe ṣe iṣiro ibi yii, iyẹn ni, delta ti o sọ nipa rẹ, ninu eyiti awọn ere ibeji wọnyi yoo gbe?

Ibeere to dara. O ṣe pataki lati tọju abala awọn ere ibeji kan pato nibi. Ati pe ti ẹda oniye kan ba ni diẹ ninu iyipada nla pupọ, o bẹrẹ lati dagba, lẹhinna a le kọkọ ikilọ kan si olumulo nipa rẹ, tabi lẹsẹkẹsẹ da ẹda oniye yii duro ki a ko ni ipo ikuna.

Bẹẹni, Mo ni ibeere itẹ-ẹiyẹ kan. Iyẹn ni, bawo ni o ṣe rii daju pe igbesi aye awọn modulu wọnyi? A ni isoro yi ati ki o kan gbogbo lọtọ itan. Bawo ni eyi ṣe ṣẹlẹ?

Nibẹ ni diẹ ninu ttl fun ẹda oniye kọọkan. Ni ipilẹ, a ni ttl ti o wa titi.

Kini, ti kii ba ṣe aṣiri kan?

1 wakati, ie laišišẹ - 1 wakati. Ti ko ba lo, lẹhinna a bang o. Ṣugbọn ko si iyalẹnu nibi, nitori a le gbe ẹda oniye soke ni iṣẹju-aaya. Ati pe ti o ba nilo lẹẹkansi, lẹhinna jọwọ.

Mo tun nifẹ ninu yiyan awọn imọ-ẹrọ, nitori, fun apẹẹrẹ, a lo awọn ọna pupọ ni afiwe fun idi kan tabi omiiran. Kini idi ti ZFS? Kilode ti o ko lo LVM? O mẹnuba pe awọn iṣoro wa pẹlu LVM. Kini awọn iṣoro naa? Ni ero mi, aṣayan ti o dara julọ jẹ pẹlu ibi ipamọ, ni awọn ofin iṣẹ.

Kini iṣoro akọkọ pẹlu ZFS? Otitọ pe o gbọdọ ṣiṣẹ lori agbalejo kanna, ie gbogbo awọn iṣẹlẹ yoo gbe laarin OS kanna. Ati ninu ọran ti ipamọ, o le sopọ awọn ẹrọ oriṣiriṣi. Ati igo jẹ awọn bulọọki wọnyẹn ti o wa lori eto ipamọ. Ati ibeere ti yiyan awọn imọ-ẹrọ jẹ ohun ti o nifẹ. Kilode ti kii ṣe LVM?

Ni pataki, a le jiroro lori LVM ni ipade. Nipa ibi ipamọ - o kan gbowolori. A le ṣe eto ZFS nibikibi. O le ran o lori ẹrọ rẹ. O le jiroro ṣe igbasilẹ ibi ipamọ naa ki o si fi sii. ZFS ti fi sori ẹrọ fere nibikibi ti a ba n sọrọ nipa Linux. Iyẹn ni, a gba ojutu ti o rọ pupọ. Ati lati inu apoti, ZFS n funni ni pupọ. O le po si bi Elo data bi o ba fẹ, so kan ti o tobi nọmba ti disk, nibẹ ni o wa snapshots. Ati pe, bi mo ti sọ, o rọrun lati ṣakoso. Iyẹn ni, o dabi igbadun pupọ lati lo. O ti ni idanwo, o jẹ ọdun pupọ. O ni agbegbe ti o tobi pupọ ti o dagba. ZFS jẹ ojutu ti o gbẹkẹle pupọ.

Nikolai Samokhvalov: Ṣe Mo le sọ asọye siwaju sii? Orukọ mi ni Nikolay, a ṣiṣẹ pọ pẹlu Anatoly. Mo gba pe ibi ipamọ jẹ nla. Ati diẹ ninu awọn onibara wa ni Ibi ipamọ Pure ati bẹbẹ lọ.

Anatoly ṣe akiyesi ni deede pe a dojukọ modularity. Ati ni ọjọ iwaju, o le ṣe imuse wiwo kan - ya aworan kan, ṣe ẹda oniye kan, pa ẹda oniye run. O rorun. Ati ibi ipamọ jẹ itura, ti o ba jẹ.

Ṣugbọn ZFS wa fun gbogbo eniyan. DelPhix ti to tẹlẹ, wọn ni awọn alabara 300. Ninu awọn wọnyi, Fortune 100 ni awọn onibara 50, ie wọn ṣe ifọkansi si NASA, bbl O to akoko fun gbogbo eniyan lati gba imọ-ẹrọ yii. Ati pe iyẹn ni idi ti a ni orisun ṣiṣi Core. A ni ohun ni wiwo apa ti o ni ko ìmọ orisun. Eyi ni pẹpẹ ti a yoo ṣafihan. Ṣugbọn a fẹ ki o wa fun gbogbo eniyan. A fẹ lati ṣe kan Iyika ki gbogbo testers da lafaimo lori kọǹpútà alágbèéká. A ni lati kọ Yan ati lẹsẹkẹsẹ rii pe o lọra. Duro duro fun DBA lati sọ fun ọ nipa rẹ. Eyi ni ibi-afẹde akọkọ. Ati pe Mo ro pe gbogbo wa yoo wa si eyi. Ati pe a ṣe nkan yii fun gbogbo eniyan lati ni. Nitorina ZFS, nitori o yoo wa nibi gbogbo. Ṣeun si agbegbe fun yiyan awọn iṣoro ati fun nini iwe-aṣẹ orisun ṣiṣi, ati bẹbẹ lọ.

Ẹ kí! O ṣeun fun iroyin na! Orukọ mi ni Maxim. A ti ṣe pẹlu awọn ọran kanna. Wọn pinnu lori ara wọn. Bawo ni o ṣe pin awọn orisun laarin awọn ere ibeji wọnyi? Oniye kọọkan le ṣe ohun ti ara rẹ ni akoko eyikeyi: ọkan ṣe idanwo ohun kan, omiiran miiran, ẹnikan kọ atọka, ẹnikan ni iṣẹ ti o wuwo. Ati pe ti o ba tun le pin nipasẹ Sipiyu, lẹhinna nipasẹ IO, bawo ni o ṣe pin? Eyi ni ibeere akọkọ.

Ati ibeere keji jẹ nipa iyatọ ti awọn iduro. Jẹ ki a sọ pe Mo ni ZFS nibi ati pe ohun gbogbo dara, ṣugbọn alabara lori prod ko ni ZFS, ṣugbọn ext4, fun apẹẹrẹ. Bawo ni ninu ọran yii?

Awọn ibeere dara pupọ. Mo mẹnuba iṣoro yii diẹ pẹlu otitọ pe a pin awọn orisun. Ati ojutu ni eyi. Fojuinu pe o n ṣe idanwo lori iṣeto. O tun le ni iru ipo kan ni akoko kanna ti ẹnikan yoo fun ẹru kan, ẹlomiran. Ati bi abajade, o rii awọn metiriki ti ko ni oye. Paapaa iṣoro kanna le jẹ pẹlu prod. Nigbati o ba fẹ lati ṣayẹwo diẹ ninu awọn ibeere ati pe o rii pe iṣoro kan wa pẹlu rẹ - o ṣiṣẹ laiyara, lẹhinna ni otitọ iṣoro naa ko si ninu ibeere naa, ṣugbọn ni otitọ pe iru ẹru iru kan wa.

Ati nitorinaa, o ṣe pataki nibi lati dojukọ kini ero naa yoo jẹ, awọn igbesẹ wo ni a yoo ṣe ninu ero naa ati iye data ti a yoo gbe soke fun eyi. Otitọ pe awọn disiki wa, fun apẹẹrẹ, yoo jẹ ti kojọpọ pẹlu nkan kan, yoo ni ipa pataki ni akoko naa. Ṣugbọn a le ṣe iṣiro bi o ṣe kojọpọ ibeere yii jẹ nipasẹ iye data. Ko ṣe pataki pupọ pe ni akoko kanna iru ipaniyan yoo wa.

Mo ni ibeere meji. Eyi jẹ nkan ti o tutu pupọ. Njẹ awọn ọran ti wa nibiti data iṣelọpọ jẹ pataki, gẹgẹbi awọn nọmba kaadi kirẹditi? Njẹ nkan ti ṣetan tẹlẹ tabi o jẹ iṣẹ-ṣiṣe lọtọ? Ati ibeere keji - ṣe nkan bii eyi fun MySQL?

Nipa data naa. A yoo ṣe obfuscation titi a yoo ṣe. Ṣugbọn ti o ba ran gangan Joe, ti o ko ba fun ni iwọle si awọn olupilẹṣẹ, lẹhinna ko si iwọle si data naa. Kí nìdí? Nitori Joe ko ṣe afihan data. O fihan awọn metiriki nikan, awọn ero ati pe iyẹn ni. Eyi ni a ṣe ni idi, nitori eyi jẹ ọkan ninu awọn ibeere ti alabara wa. Wọn fẹ lati ni anfani lati mu dara laisi fifun gbogbo eniyan ni iwọle.

Nipa MySQL. Eto yii le ṣee lo fun ohunkohun ti o tọju ipo lori disk. Ati pe niwon a n ṣe Postgres, a n ṣe gbogbo adaṣe fun Postgres akọkọ. A fẹ lati ṣe adaṣe gbigba data lati afẹyinti. A n ṣe atunto Postgres ni deede. A mọ bi a ṣe le ṣe awọn eto baramu, ati bẹbẹ lọ.

Ṣugbọn niwọn igba ti eto naa jẹ extensible, o tun le ṣee lo fun MySQL. Ati pe iru awọn apẹẹrẹ wa. Yandex ni iru nkan kan, ṣugbọn wọn ko ṣe atẹjade nibikibi. Wọn lo ninu Yandex.Metrica. Ati pe itan kan wa nipa MySQL. Ṣugbọn awọn imọ-ẹrọ jẹ kanna, ZFS.

O ṣeun fun iroyin na! Mo tun ni awọn ibeere meji. O mẹnuba pe cloning le ṣee lo fun awọn atupale, fun apẹẹrẹ lati kọ awọn itọka afikun sibẹ. Ṣe o le sọ diẹ sii nipa bi o ṣe n ṣiṣẹ?

Ati pe Emi yoo beere lẹsẹkẹsẹ ibeere keji nipa ibajọra ti awọn iduro, ibajọra ti awọn ero. Eto naa tun da lori awọn iṣiro ti a gba nipasẹ Postgres. Bawo ni o ṣe yanju iṣoro yii?

Gẹgẹbi awọn atupale, ko si awọn ọran kan pato, nitori a ko tii lo sibẹsibẹ, ṣugbọn iru anfani wa. Ti a ba n sọrọ nipa awọn atọka, lẹhinna ro pe ibeere kan n lepa tabili kan pẹlu awọn ọgọọgọrun miliọnu awọn igbasilẹ ati ọwọn ti kii ṣe itọka nigbagbogbo ni prod. Ati pe a fẹ lati ṣe iṣiro diẹ ninu awọn data nibẹ. Ti a ba fi ibeere yii ranṣẹ si prod, lẹhinna o ṣeeṣe pe yoo rọrun lori prod, nitori ibeere naa yoo ṣe ilọsiwaju nibẹ fun iṣẹju kan.

O dara, jẹ ki a ṣe oniye tinrin ti kii ṣe ẹru lati da duro fun iṣẹju diẹ. Ati pe lati jẹ ki o ni itunu diẹ sii lati ka awọn atupale, a yoo ṣafikun awọn itọka fun awọn ọwọn yẹn ninu eyiti a nifẹ si data.

Atọka naa yoo ṣẹda ni igba kọọkan?

O le ṣe ki a fi ọwọ kan data naa, ṣe awọn aworan aworan, lẹhinna a yoo gba pada lati aworan aworan yii ati wakọ awọn ibeere tuntun. Iyẹn ni, o le ṣe ki o le gbe awọn ere ibeji tuntun pẹlu awọn atọka ti a fi si tẹlẹ.

Bi fun ibeere nipa awọn iṣiro, ti a ba mu pada lati afẹyinti, ti a ba ṣe atunṣe, lẹhinna awọn iṣiro wa yoo jẹ deede kanna. Nitoripe a ni gbogbo eto data ti ara, iyẹn ni, a yoo mu data naa wa bi o ti jẹ pẹlu gbogbo awọn metiriki awọn iṣiro paapaa.

Eyi ni iṣoro miiran. Ti o ba lo ojutu awọsanma, lẹhinna awọn idalẹnu ọgbọn nikan wa nibẹ, nitori Google, Amazon ko gba ọ laaye lati mu ẹda ti ara. Iṣoro yoo wa.

O ṣeun fun iroyin naa. Awọn ibeere ti o dara meji wa nibi nipa MySQL ati pinpin awọn orisun. Ṣugbọn, ni otitọ, gbogbo rẹ wa si otitọ pe eyi kii ṣe koko-ọrọ ti DBMS kan pato, ṣugbọn ti eto faili lapapọ. Ati pe, ni ibamu, awọn ọran ti pinpin awọn orisun yẹ ki o tun yanju lati ibẹ, kii ṣe ni ipari pe o jẹ Postgres, ṣugbọn ninu eto faili, ni olupin, ni apẹẹrẹ.

Ibeere mi yatọ diẹ. O ti wa ni isunmọ si awọn olona-siwa database, ibi ti o wa ni orisirisi awọn fẹlẹfẹlẹ. Fun apẹẹrẹ, a ṣeto imudojuiwọn aworan terabyte mẹwa, a n ṣe atunṣe. Ati pe a lo ojutu pataki yii fun awọn apoti isura infomesonu. Atunse ti wa ni ilọsiwaju, data ti wa ni imudojuiwọn. Awọn oṣiṣẹ 100 wa ti n ṣiṣẹ ni afiwe nibi, ti wọn n ṣe ifilọlẹ awọn iyaworan oriṣiriṣi wọnyi nigbagbogbo. Kin ki nse? Bii o ṣe le rii daju pe ko si rogbodiyan, pe wọn ṣe ifilọlẹ ọkan, lẹhinna eto faili yipada, ati pe gbogbo awọn aworan wọnyi lọ?

Wọn kii yoo lọ nitori iyẹn ni ZFS ṣe n ṣiṣẹ. A le tọju lọtọ ni okun kan eto faili yipada ti o wa nitori ẹda. Ati tọju awọn ere ibeji ti awọn olupilẹṣẹ lo lori awọn ẹya agbalagba ti data naa. Ati pe o ṣiṣẹ fun wa, ohun gbogbo wa ni ibere pẹlu eyi.

O wa ni pe imudojuiwọn yoo waye bi afikun Layer, ati gbogbo awọn aworan tuntun yoo lọ tẹlẹ, da lori ipele yii, otun?

Lati išaaju fẹlẹfẹlẹ ti o wà lati išaaju awọn atunṣe.

Awọn ipele ti tẹlẹ yoo ṣubu, ṣugbọn wọn yoo tọka si Layer atijọ, ati pe wọn yoo ya awọn aworan tuntun lati ipele ti o kẹhin ti o gba ni imudojuiwọn naa?

Ni gbogbogbo, bẹẹni.

Lẹhinna bi abajade a yoo ni to ọpọtọ ti awọn fẹlẹfẹlẹ. Ati lẹhin akoko wọn yoo nilo lati wa ni fisinuirindigbindigbin?

Bẹẹni ohun gbogbo tọ. Ferese kan wa. A pa osẹ snapshots. O da lori kini orisun ti o ni. Ti o ba ni agbara lati ṣafipamọ data pupọ, o le tọju awọn fọto snapshots fun igba pipẹ. Wọn kii yoo lọ funrararẹ. Ko si ibaje data. Ti awọn aworan ba ti wa ni igba atijọ, bi o ṣe dabi si wa, ie o da lori eto imulo ni ile-iṣẹ, lẹhinna a le pa wọn nirọrun ki o si gba aaye laaye.

Kaabo, o ṣeun fun ijabọ naa! Ibeere nipa Joe. O sọ pe alabara ko fẹ lati fun gbogbo eniyan ni iraye si data naa. Ni pipe, ti eniyan ba ni abajade Itupalẹ Ṣe alaye, lẹhinna o le wo data naa.

O ri bẹ. Fun apẹẹrẹ, a le kọ: "Yan LATI IBI imeeli = si iyẹn". Iyẹn ni, a kii yoo rii data funrararẹ, ṣugbọn a le rii diẹ ninu awọn ami aiṣe-taara. Eyi gbọdọ ni oye. Ṣugbọn ni apa keji, gbogbo rẹ wa nibẹ. A ni ayewo log, a ni iṣakoso ti awọn ẹlẹgbẹ miiran ti wọn tun rii kini awọn olupilẹṣẹ n ṣe. Ati pe ti ẹnikan ba gbiyanju lati ṣe eyi, lẹhinna iṣẹ aabo yoo wa si wọn ati ṣiṣẹ lori ọran yii.

E kaasan O ṣeun fun iroyin na! Mo ni ibeere kukuru kan. Ti ile-iṣẹ ko ba lo Slack, ṣe eyikeyi abuda si bayi, tabi o ṣee ṣe fun awọn olupilẹṣẹ lati fi awọn iṣẹlẹ ranṣẹ lati le so ohun elo idanwo kan pọ si awọn apoti isura data?

Bayi ọna asopọ kan wa si Slack, ie ko si ojiṣẹ miiran, ṣugbọn Mo fẹ gaan lati ṣe atilẹyin fun awọn ojiṣẹ miiran paapaa. Kini o le ṣe? O le ran DB Lab laisi Joe, lọ pẹlu iranlọwọ ti API REST tabi pẹlu iranlọwọ ti pẹpẹ wa ki o ṣẹda awọn ere ibeji ati sopọ pẹlu PSQL. Ṣugbọn eyi le ṣee ṣe ti o ba ṣetan lati fun awọn olupilẹṣẹ rẹ wọle si data naa, nitori kii yoo jẹ iboju eyikeyi mọ.

Emi ko nilo yi Layer, sugbon mo nilo iru ohun anfani.

Lẹhinna bẹẹni, o le ṣee ṣe.

orisun: www.habr.com

Fi ọrọìwòye kun