Kini ati idi ti a ṣe ni awọn apoti isura data orisun orisun. Andrey Borodin (Yandex.Cloud)

Kini ati idi ti a ṣe ni awọn apoti isura data orisun orisun. Andrey Borodin (Yandex.Cloud)

Ilowosi Yandex si awọn data data atẹle ni yoo ṣe atunyẹwo.

  • Tẹ Ile
  • Odyssey
  • Imularada si aaye kan ni akoko (WAL-G)
  • PostgreSQL (pẹlu awọn aṣiṣe log, Amcheck, heapcheck)
  • Greenplum

Fidio:

Mo ki O Ile Aiye! Orukọ mi ni Andrey Borodin. Ati pe ohun ti Mo ṣe ni Yandex.Cloud ni idagbasoke awọn apoti isura data ibatan ti o ṣii ni awọn iwulo ti Yandex.Cloud ati awọn alabara Yandex.Cloud.

Kini ati idi ti a ṣe ni awọn apoti isura data orisun orisun. Andrey Borodin (Yandex.Cloud)

Ninu ọrọ yii, a yoo sọrọ nipa awọn italaya ti nkọju si awọn apoti isura infomesonu ṣiṣi ni iwọn. Kini idi ti o ṣe pataki? Nitori kekere, awọn iṣoro kekere ti, bi awọn ẹfọn, lẹhinna di erin. Wọn di nla nigbati o ba ni ọpọlọpọ awọn iṣupọ.

Ṣugbọn iyẹn kii ṣe ohun akọkọ. Awọn ohun iyalẹnu ṣẹlẹ. Awọn nkan ti o ṣẹlẹ ni ọkan ninu awọn ọran miliọnu kan. Ati ni agbegbe awọsanma, o ni lati mura silẹ fun iyẹn, nitori awọn ohun iyalẹnu di iṣeeṣe giga nigbati nkan kan wa ni iwọn.

Sugbon! Kini anfani ti awọn apoti isura infomesonu ṣiṣi? Otitọ ni pe o ni aye imọ-jinlẹ lati koju eyikeyi iṣoro. O ni koodu orisun, o ni imọ siseto. A darapọ o ati pe o ṣiṣẹ.

Kini ati idi ti a ṣe ni awọn apoti isura data orisun orisun. Andrey Borodin (Yandex.Cloud)

Awọn ọna wo ni o wa ni ṣiṣẹ lori sọfitiwia orisun ṣiṣi?

  • Ọna ti o rọrun julọ ni lati lo sọfitiwia. Ti o ba lo awọn ilana, ti o ba lo awọn iṣedede, ti o ba lo awọn ọna kika, ti o ba kọ awọn ibeere ni sọfitiwia orisun ṣiṣi, lẹhinna o ti ṣe atilẹyin tẹlẹ.
  • O n jẹ ki ilolupo eda abemi rẹ tobi. O jẹ ki o ṣeeṣe wiwa tete ti kokoro kan tobi. O mu igbẹkẹle ti eto yii pọ si. O ṣe alekun wiwa ti awọn olupilẹṣẹ ni ọja naa. O ṣe ilọsiwaju sọfitiwia yii. O ti jẹ oluranlọwọ tẹlẹ ti o ba kan ṣe ni ara ati tinkered pẹlu nkan nibẹ.
  • Ọna miiran ti o ni oye ni atilẹyin sọfitiwia orisun ṣiṣi. Fun apẹẹrẹ, eto Google Summer ti koodu ti a mọ daradara, nigbati Google san nọmba nla ti awọn ọmọ ile-iwe lati gbogbo agbala aye ni oye owo ki wọn ṣe agbekalẹ awọn iṣẹ akanṣe sọfitiwia ṣiṣi ti o pade awọn ibeere iwe-aṣẹ kan.
  • Eyi jẹ ọna ti o nifẹ pupọ nitori pe o gba sọfitiwia laaye lati dagbasoke laisi yiyi idojukọ kuro ni agbegbe. Google, gẹgẹbi omiran imọ-ẹrọ, ko sọ pe a fẹ ẹya ara ẹrọ yii, a fẹ lati ṣatunṣe kokoro yii ati eyi ni ibi ti a nilo lati ma wà. Google sọ pe: “Ṣe ohun ti o ṣe. Kan tẹsiwaju bi o ti n ṣiṣẹ ati pe ohun gbogbo yoo dara. ”
  • Ọna atẹle lati kopa ninu orisun ṣiṣi jẹ ikopa. Nigbati o ba ni iṣoro ninu sọfitiwia orisun ṣiṣi ati pe awọn olupilẹṣẹ wa, awọn olupilẹṣẹ rẹ bẹrẹ yanju awọn iṣoro naa. Wọn bẹrẹ lati jẹ ki awọn amayederun rẹ ṣiṣẹ daradara, awọn eto rẹ yiyara ati igbẹkẹle diẹ sii.

Kini ati idi ti a ṣe ni awọn apoti isura data orisun orisun. Andrey Borodin (Yandex.Cloud)

Ọkan ninu awọn iṣẹ akanṣe Yandex olokiki julọ ni aaye ti sọfitiwia orisun ṣiṣi jẹ ClickHouse. Eyi jẹ ibi ipamọ data ti a bi bi idahun si awọn italaya ti nkọju si Yandex.Metrica.

Ati bi data data, o ti ṣe ni orisun ṣiṣi lati ṣẹda ilolupo eda abemi ati idagbasoke rẹ pẹlu awọn olupilẹṣẹ miiran (kii ṣe laarin Yandex nikan). Ati nisisiyi eyi jẹ iṣẹ akanṣe nla kan ninu eyiti ọpọlọpọ awọn ile-iṣẹ oriṣiriṣi ṣe alabapin.

Kini ati idi ti a ṣe ni awọn apoti isura data orisun orisun. Andrey Borodin (Yandex.Cloud)

Ni Yandex.Cloud, a ṣẹda ClickHouse lori oke Ibi ipamọ Nkan Yandex, ie lori oke ipamọ awọsanma.

Kini ati idi ti a ṣe ni awọn apoti isura data orisun orisun. Andrey Borodin (Yandex.Cloud)

Kini idi ti eyi ṣe pataki ninu awọsanma? Nitoripe eyikeyi data ti n ṣiṣẹ ni igun onigun mẹta yii, ni jibiti yii, ni ipo-iṣe ti awọn oriṣi iranti. O ni awọn iforukọsilẹ iyara ṣugbọn kekere ati olowo poku nla ṣugbọn awọn SSDs o lọra, awọn dirafu lile ati diẹ ninu awọn ẹrọ idena miiran. Ati pe ti o ba ṣiṣẹ daradara ni oke jibiti, lẹhinna o ni aaye data yara kan. ti o ba jẹ daradara ni isalẹ ti jibiti yii, lẹhinna o ni aaye data ti iwọn. Ati ni iyi yii, fifi Layer miiran kun lati isalẹ jẹ ọna ọgbọn si jijẹ scalability ti data data.

Kini ati idi ti a ṣe ni awọn apoti isura data orisun orisun. Andrey Borodin (Yandex.Cloud)

Bawo ni o ṣe le ṣe? Eyi jẹ aaye pataki ninu ijabọ yii.

  • A le ṣe imulo ClickHouse lori MDS. MDS jẹ wiwo ibi ipamọ awọsanma inu Yandex. O jẹ eka sii ju ilana S3 ti o wọpọ, ṣugbọn o dara diẹ sii fun ẹrọ kan Àkọsílẹ. O dara julọ fun gbigbasilẹ data. O nilo siseto diẹ sii. Awọn olupilẹṣẹ yoo ṣe eto, paapaa dara, o nifẹ.
  • S3 jẹ ọna ti o wọpọ diẹ sii ti o jẹ ki wiwo naa rọrun ni idiyele ti o kere si isọdi si awọn iru iṣẹ ṣiṣe kan.

Nipa ti, nfẹ lati pese iṣẹ ṣiṣe si gbogbo ilolupo ClickHouse ati ṣe iṣẹ ti o nilo inu Yandex.Cloud, a pinnu lati rii daju pe gbogbo agbegbe ClickHouse ni anfani lati ọdọ rẹ. A ṣe imuse ClickHouse lori S3, kii ṣe ClickHouse lori MDS. Ati pe eyi jẹ iṣẹ pupọ.

Kini ati idi ti a ṣe ni awọn apoti isura data orisun orisun. Andrey Borodin (Yandex.Cloud)

Awọn ọna asopọ:

https://github.com/ClickHouse/ClickHouse/pull/7946 "Layer abstraction filesystem"
https://github.com/ClickHouse/ClickHouse/pull/8011 "AWS SDK S3 iṣọpọ"
https://github.com/ClickHouse/ClickHouse/pull/8649 "Imuse ipilẹ ti interafce IDisk fun S3"
https://github.com/ClickHouse/ClickHouse/pull/8356 "Ijọpọ ti awọn ẹrọ ibi ipamọ log pẹlu wiwo IDisk"
https://github.com/ClickHouse/ClickHouse/pull/8862 "Atilẹyin engine log fun S3 ati SeekableReadBuffer"
https://github.com/ClickHouse/ClickHouse/pull/9128 " Atilẹyin Stripe Stripe Log S3"
https://github.com/ClickHouse/ClickHouse/pull/9415 Atilẹyin ibẹrẹ Ibi ipamọ MergeTree fun S3
https://github.com/ClickHouse/ClickHouse/pull/9646 "MergeTree atilẹyin ni kikun fun S3"
https://github.com/ClickHouse/ClickHouse/pull/10126 "Ṣe atilẹyin ReplicatedMergeTree lori S3"
https://github.com/ClickHouse/ClickHouse/pull/11134 "Ṣafikun awọn iwe-ẹri aiyipada ati awọn akọle aṣa fun ibi ipamọ s3"
https://github.com/ClickHouse/ClickHouse/pull/10576 "S3 pẹlu iṣeto aṣoju ti o ni agbara"
https://github.com/ClickHouse/ClickHouse/pull/10744 "S3 pẹlu aṣoju ipinnu"

Eyi jẹ atokọ ibeere fifa fun imuse eto faili foju kan ni ClickHouse. Eyi jẹ nọmba nla ti awọn ibeere fifa.

Kini ati idi ti a ṣe ni awọn apoti isura data orisun orisun. Andrey Borodin (Yandex.Cloud)

Awọn ọna asopọ:

https://github.com/ClickHouse/ClickHouse/pull/9760 "DiskS3 hardlinks imuse ti o dara julọ"
https://github.com/ClickHouse/ClickHouse/pull/11522 "Onibara S3 HTTP - Yago fun didakọ ṣiṣan esi sinu iranti"
https://github.com/ClickHouse/ClickHouse/pull/11561 “Yago fun didakọ gbogbo ṣiṣan esi sinu iranti ni S3 HTTP
onibara"
https://github.com/ClickHouse/ClickHouse/pull/13076 "Agbara si aami kaṣe ati awọn faili atọka fun disk S3"
https://github.com/ClickHouse/ClickHouse/pull/13459 "Gbe awọn ẹya lati DiskLocal si DiskS3 ni afiwe"

Ṣugbọn iṣẹ naa ko pari nibẹ. Lẹhin ti ẹya naa ti ṣe, diẹ ninu iṣẹ diẹ ni a nilo lati le mu iṣẹ ṣiṣe dara si.

Kini ati idi ti a ṣe ni awọn apoti isura data orisun orisun. Andrey Borodin (Yandex.Cloud)

Awọn ọna asopọ:

https://github.com/ClickHouse/ClickHouse/pull/12638 "Fi SelectedRows ati SelectedBytes iṣẹlẹ kun"
https://github.com/ClickHouse/ClickHouse/pull/12464 Ṣafikun awọn iṣẹlẹ profaili lati ibeere S3 si system.awọn iṣẹlẹ”
https://github.com/ClickHouse/ClickHouse/pull/13028 "Ṣafikun QueryTimeMicro-aaya, YanQueryTimeMicro-aaya ati Fi QueryTimeMicro-aaya"

Ati lẹhinna o jẹ dandan lati jẹ ki o ṣe ayẹwo, ṣeto ibojuwo ati jẹ ki o ṣakoso.

Ati pe gbogbo eyi ni a ṣe ki gbogbo agbegbe, gbogbo ilolupo eda eniyan ClickHouse, gba abajade iṣẹ yii.

Kini ati idi ti a ṣe ni awọn apoti isura data orisun orisun. Andrey Borodin (Yandex.Cloud)

Jẹ ki a lọ si awọn apoti isura infomesonu idunadura, si awọn apoti isura data OLTP, eyiti o sunmọ mi tikalararẹ.

Kini ati idi ti a ṣe ni awọn apoti isura data orisun orisun. Andrey Borodin (Yandex.Cloud)

Eyi ni orisun ṣiṣi DBMS pipin idagbasoke. Awọn eniyan wọnyi n ṣe idan ita lati mu ilọsiwaju awọn apoti isura data ṣiṣi silẹ iṣowo.

Kini ati idi ti a ṣe ni awọn apoti isura data orisun orisun. Andrey Borodin (Yandex.Cloud)

Ọkan ninu awọn iṣẹ akanṣe, ni lilo apẹẹrẹ ti eyiti a le sọrọ nipa bii ati kini a ṣe, ni Asopọmọra Asopọmọra ni Postgres.

Postgres jẹ aaye data ilana kan. Eyi tumọ si pe aaye data yẹ ki o ni awọn asopọ nẹtiwọki diẹ bi o ti ṣee ṣe ti o mu awọn iṣowo.

Ni apa keji, ni agbegbe awọsanma, ipo aṣoju jẹ nigbati awọn asopọ ẹgbẹrun kan wa si iṣupọ kan ni ẹẹkan. Ati iṣẹ-ṣiṣe pooler asopọ ni lati gbe awọn asopọ ẹgbẹrun sinu nọmba kekere ti awọn asopọ olupin.

Kini ati idi ti a ṣe ni awọn apoti isura data orisun orisun. Andrey Borodin (Yandex.Cloud)

A le sọ pe oluso asopọ jẹ oniṣẹ ẹrọ tẹlifoonu ti o ṣe atunto awọn baiti ki wọn le de ibi ipamọ data daradara.

Laanu, ko si ọrọ Russian to dara fun pooler asopọ. Nigba miran o ni a npe ni multiplexer awọn isopọ. Ti o ba mọ kini lati pe pooler asopọ, lẹhinna rii daju lati sọ fun mi, Emi yoo dun pupọ lati sọ ede imọ-ẹrọ Russian to tọ.

Kini ati idi ti a ṣe ni awọn apoti isura data orisun orisun. Andrey Borodin (Yandex.Cloud)

https://pgconf.ru/2017/92899

A ṣe iwadii awọn adagun asopọ asopọ ti o dara fun iṣupọ postgres ti iṣakoso. Ati PgBouncer jẹ aṣayan ti o dara julọ fun wa. Ṣugbọn a konge nọmba kan ti awọn iṣoro pẹlu PgBouncer. Ọpọlọpọ ọdun sẹyin, Volodya Borodin fun awọn iroyin ti a lo PgBouncer, a fẹ ohun gbogbo, ṣugbọn awọn nuances wa, nibẹ ni nkankan lati sise lori.

Kini ati idi ti a ṣe ni awọn apoti isura data orisun orisun. Andrey Borodin (Yandex.Cloud)

https://pgconf.ru/media/2017/04/03/20170316H1_V.Borodin.pdf

Ati pe a ṣiṣẹ. A ṣe atunṣe awọn iṣoro ti a koju, a pa Bouncer, a si gbiyanju lati Titari awọn ibeere fa soke. Ṣugbọn ipilẹ ẹyọkan jẹ soro lati ṣiṣẹ pẹlu.

A ni lati gba awọn kasikedi lati patched Bouncers. Nigba ti a ba ni ọpọlọpọ awọn nikan-asapo Bouncers, awọn asopọ lori oke Layer ti wa ni ti o ti gbe si akojọpọ Layer ti Bouncers. Eyi jẹ eto iṣakoso ti ko dara ti o nira lati kọ ati iwọn sẹhin ati siwaju.

Kini ati idi ti a ṣe ni awọn apoti isura data orisun orisun. Andrey Borodin (Yandex.Cloud)

A wá si pinnu wipe a da wa ti ara asopọ pooler, eyi ti a npe ni Odyssey. A kowe lati ibere.

Kini ati idi ti a ṣe ni awọn apoti isura data orisun orisun. Andrey Borodin (Yandex.Cloud)

https://www.pgcon.org/2019/schedule/events/1312.en.html

Ni ọdun 2019, ni apejọ PgCon, Mo ṣe afihan atupọ yii si agbegbe idagbasoke. Bayi a ni diẹ kere ju awọn irawọ 2 lori GitHub, ie iṣẹ naa wa laaye, iṣẹ naa jẹ olokiki.

Ati pe ti o ba ṣẹda iṣupọ Postgres ni Yandex.Cloud, lẹhinna o yoo jẹ iṣupọ pẹlu Odyssey ti a ṣe sinu, eyiti o tun ṣe atunto nigbati iṣupọ naa pada tabi siwaju.

Kini ati idi ti a ṣe ni awọn apoti isura data orisun orisun. Andrey Borodin (Yandex.Cloud)

Etẹwẹ mí plọn sọn azọ́n ehe mẹ? Ifilọlẹ iṣẹ akanṣe idije nigbagbogbo jẹ igbesẹ ibinu, o jẹ iwọn to gaju nigba ti a sọ pe awọn iṣoro wa ti a ko yanju ni iyara to, ko ni ipinnu ni awọn aaye arin akoko ti yoo baamu wa. Ṣugbọn eyi jẹ iwọn to munadoko.

PgBouncer bẹrẹ si ni idagbasoke yiyara.

Ati nisisiyi awọn iṣẹ akanṣe miiran ti han. Fun apẹẹrẹ, pgagroal, eyiti o jẹ idagbasoke nipasẹ awọn olupilẹṣẹ Red Hat. Wọn lepa awọn ibi-afẹde ti o jọra ati ṣe awọn imọran ti o jọra, ṣugbọn, dajudaju, pẹlu awọn pato tiwọn, eyiti o sunmọ awọn olupilẹṣẹ pgagroal.

Kini ati idi ti a ṣe ni awọn apoti isura data orisun orisun. Andrey Borodin (Yandex.Cloud)

Ọran miiran ti ṣiṣẹ pẹlu agbegbe postgres jẹ mimu-pada sipo si aaye kan ni akoko. Eyi jẹ imularada lẹhin ikuna, eyi jẹ imularada lati afẹyinti.

Kini ati idi ti a ṣe ni awọn apoti isura data orisun orisun. Andrey Borodin (Yandex.Cloud)

Ọpọlọpọ awọn afẹyinti ati pe gbogbo wọn yatọ. Fere gbogbo olutaja Postgres ni ojutu afẹyinti tirẹ.

Ti o ba mu gbogbo awọn eto afẹyinti, ṣẹda matrix ẹya kan ati ki o ṣe awada ṣe iṣiro ipinnu ipinnu ninu matrix yii, yoo jẹ odo. Kini eleyi tumọ si? Kini ti o ba mu faili afẹyinti kan pato, lẹhinna ko le ṣe apejọ lati awọn ege gbogbo awọn miiran. O jẹ alailẹgbẹ ni imuse rẹ, o jẹ alailẹgbẹ ni idi rẹ, o jẹ alailẹgbẹ ninu awọn imọran ti o wa ninu rẹ. Ati pe gbogbo wọn ni pato.

Kini ati idi ti a ṣe ni awọn apoti isura data orisun orisun. Andrey Borodin (Yandex.Cloud)

https://www.citusdata.com/blog/2017/08/18/introducing-wal-g-faster-restores-for-postgres/

Lakoko ti a n ṣiṣẹ lori ọran yii, CitusData ṣe ifilọlẹ iṣẹ akanṣe WAL-G. Eyi jẹ eto afẹyinti ti a ṣe pẹlu oju si agbegbe awọsanma. Bayi CitusData ti jẹ apakan ti Microsoft tẹlẹ. Ati ni akoko yẹn, a nifẹ gaan awọn imọran ti a fi lelẹ ni awọn idasilẹ akọkọ ti WAL-G. Ati pe a bẹrẹ idasi si iṣẹ akanṣe yii.

Kini ati idi ti a ṣe ni awọn apoti isura data orisun orisun. Andrey Borodin (Yandex.Cloud)

https://github.com/wal-g/wal-g/graphs/contributors

Bayi ọpọlọpọ awọn dosinni ti awọn olupilẹṣẹ wa ninu iṣẹ akanṣe yii, ṣugbọn awọn oluranlọwọ 10 ti o ga julọ si WAL-G pẹlu 6 Yandexoids. A mu ọpọlọpọ awọn ero wa nibẹ. Ati pe, nitorinaa, a ṣe imuse wọn funrara wa, ṣe idanwo wọn funrararẹ, yi wọn jade sinu iṣelọpọ funrara wa, a lo wọn funrararẹ, awa tikararẹ pinnu ibiti a yoo gbe ni atẹle, lakoko ti a n ba ajọṣepọ pẹlu agbegbe WAL-G nla.

Kini ati idi ti a ṣe ni awọn apoti isura data orisun orisun. Andrey Borodin (Yandex.Cloud)

Ati lati oju wiwo wa, bayi eto afẹyinti yii, pẹlu akiyesi awọn akitiyan wa, ti di aipe fun agbegbe awọsanma. Eyi ni idiyele ti o dara julọ ti atilẹyin Postgres ninu awọsanma.

Kini o je? A n ṣe igbega imọran nla kan: afẹyinti yẹ ki o wa ni aabo, olowo poku lati ṣiṣẹ ati ni yarayara bi o ti ṣee ṣe lati mu pada.

Kini idi ti o yẹ ki o jẹ olowo poku lati ṣiṣẹ? Nigbati ohunkohun ko ba fọ, o yẹ ki o ko mọ pe o ni awọn afẹyinti. Ohun gbogbo ṣiṣẹ daradara, o padanu Sipiyu kekere bi o ti ṣee ṣe, o lo diẹ ninu awọn orisun disiki rẹ bi o ti ṣee, ati pe o firanṣẹ bi awọn baiti diẹ si nẹtiwọọki bi o ti ṣee ṣe ki o má ba dabaru pẹlu isanwo ti awọn iṣẹ to niyelori rẹ.

Ati pe nigbati ohun gbogbo ba fọ, fun apẹẹrẹ, abojuto ti sọ data naa silẹ, nkan kan ti ko tọ, ati pe o nilo ni iyara lati pada si igba atijọ, o gba pada pẹlu gbogbo owo, nitori o fẹ ki data rẹ pada ni iyara ati mule.

Ati pe a ṣe igbega imọran ti o rọrun yii. Ati pe, o dabi si wa, a ṣakoso lati ṣe imuse rẹ.

Kini ati idi ti a ṣe ni awọn apoti isura data orisun orisun. Andrey Borodin (Yandex.Cloud)

Sugbon ti o ni ko gbogbo. A fẹ ohun kekere kan diẹ sii. A fẹ ọpọlọpọ awọn oriṣiriṣi infomesonu. Kii ṣe gbogbo awọn alabara wa lo Postgres. Diẹ ninu awọn eniyan lo MySQL, MongoDB. Ni agbegbe, awọn olupilẹṣẹ miiran ti ṣe atilẹyin FoundationDB. Ati pe atokọ yii n pọ si nigbagbogbo.

Agbegbe fẹran imọran ti data data ni ṣiṣe ni agbegbe iṣakoso ninu awọsanma. Ati awọn olupilẹṣẹ ṣetọju awọn apoti isura data wọn, eyiti o le ṣe afẹyinti ni iṣọkan pẹlu Postgres pẹlu eto afẹyinti wa.

Kini ati idi ti a ṣe ni awọn apoti isura data orisun orisun. Andrey Borodin (Yandex.Cloud)

Kí la rí kọ́ nínú ìtàn yìí? Ọja wa, gẹgẹbi pipin idagbasoke, kii ṣe awọn laini koodu, kii ṣe awọn alaye, kii ṣe awọn faili. Ọja wa kii ṣe awọn ibeere fa. Iwọnyi ni awọn imọran ti a sọ si agbegbe. Eyi jẹ imọ-ẹrọ imọ-ẹrọ ati iṣipopada ti imọ-ẹrọ si agbegbe awọsanma.

Kini ati idi ti a ṣe ni awọn apoti isura data orisun orisun. Andrey Borodin (Yandex.Cloud)

Iru aaye data wa bi Postgres. Mo fẹran mojuto Postgres julọ. Mo lo akoko pupọ ni idagbasoke mojuto Postgres pẹlu agbegbe.

Kini ati idi ti a ṣe ni awọn apoti isura data orisun orisun. Andrey Borodin (Yandex.Cloud)

Ṣugbọn nibi o gbọdọ sọ pe Yandex.Cloud ni fifi sori ẹrọ inu ti awọn apoti isura infomesonu ti iṣakoso. Ati pe o bẹrẹ ni igba pipẹ sẹhin ni Yandex.Mail. Imọye ti o ti yori si Postgres ti iṣakoso ni a kojọpọ nigbati meeli fẹ lati lọ si Postgres.

Mail ni awọn ibeere ti o jọra pupọ si awọsanma. O nilo ki o ni anfani lati ṣe iwọn si idagbasoke airotẹlẹ airotẹlẹ ni aaye eyikeyi ninu data rẹ. Ati pe meeli ti ni ẹru pẹlu diẹ ninu awọn ọgọọgọrun awọn miliọnu awọn apoti ifiweranṣẹ ti nọmba nla ti awọn olumulo ti o ṣe awọn ibeere lọpọlọpọ nigbagbogbo.

Ati pe eyi jẹ ipenija to ṣe pataki fun ẹgbẹ ti o dagbasoke Postgres. Ni akoko yẹn, eyikeyi iṣoro ti a ba pade ni a royin fun agbegbe. Ati pe awọn iṣoro wọnyi ni atunṣe, ati atunṣe nipasẹ agbegbe ni awọn aaye paapaa ni ipele ti atilẹyin isanwo fun diẹ ninu awọn apoti isura data miiran ati paapaa dara julọ. Iyẹn ni, o le fi lẹta ranṣẹ si agbonaeburuwole PgSQL ati gba esi laarin awọn iṣẹju 40. Atilẹyin isanwo ni diẹ ninu awọn apoti isura data le ro pe awọn nkan pataki ni o wa ju kokoro rẹ lọ.

Bayi fifi sori inu ti Postgres jẹ diẹ ninu awọn petabytes ti data. Iwọnyi jẹ diẹ ninu awọn miliọnu awọn ibeere fun iṣẹju kan. Iwọnyi jẹ ẹgbẹẹgbẹrun awọn iṣupọ. O jẹ iwọn-nla pupọ.

Ṣugbọn nuance kan wa. Ko gbe lori awọn awakọ nẹtiwọọki ti o wuyi, ṣugbọn lori ohun elo ti o rọrun ni iṣẹtọ. Ati pe agbegbe idanwo kan wa pataki fun awọn nkan tuntun ti o nifẹ.

Kini ati idi ti a ṣe ni awọn apoti isura data orisun orisun. Andrey Borodin (Yandex.Cloud)

Ati ni akoko kan ni agbegbe idanwo a gba ifiranṣẹ kan ti o nfihan pe awọn iyatọ inu ti awọn atọka data ti ṣẹ.

Iyatọ jẹ iru ibatan kan ti a nireti lati mu nigbagbogbo.

A gan lominu ni ipo fun wa. O tọkasi wipe diẹ ninu awọn data le ti a ti sọnu. Ati pipadanu data jẹ nkan ti o buruju.

Ero gbogbogbo ti a tẹle ni awọn apoti isura infomesonu ti a ṣakoso ni pe paapaa pẹlu igbiyanju, yoo nira lati padanu data. Paapa ti o ba mọọmọ yọ wọn kuro, iwọ yoo tun nilo lati foju isansa wọn fun igba pipẹ. Aabo data jẹ ẹsin ti a tẹle ni itarara.

Ati nihin ipo kan dide ti o daba pe ipo kan le wa eyiti a le ma murasilẹ fun. Ati pe a bẹrẹ lati mura silẹ fun ipo yii.

Kini ati idi ti a ṣe ni awọn apoti isura data orisun orisun. Andrey Borodin (Yandex.Cloud)

https://commitfest.postgresql.org/23/2171/

Ohun akọkọ ti a ṣe ni sin awọn igi lati ẹgbẹẹgbẹrun awọn iṣupọ wọnyi. A rii iru awọn iṣupọ naa wa lori awọn disiki pẹlu famuwia iṣoro ti o padanu awọn imudojuiwọn oju-iwe data. Ti samisi gbogbo koodu data Postgres. Ati pe a samisi awọn ifiranṣẹ wọnyẹn ti o tọkasi irufin ti awọn atupa inu inu pẹlu koodu ti a ṣe lati ṣawari ibajẹ data.

Patch yii jẹ itẹwọgba nipasẹ agbegbe laisi ijiroro pupọ, nitori ninu ọran kọọkan pato o han gbangba pe nkan buburu ti ṣẹlẹ ati pe o nilo lati royin si akọọlẹ naa.

Kini ati idi ti a ṣe ni awọn apoti isura data orisun orisun. Andrey Borodin (Yandex.Cloud)

Lẹhin eyi, a wa si aaye ti a ni abojuto ti o ṣawari awọn igbasilẹ. Ati pe ninu ọran awọn ifiranṣẹ ifura, o ji oṣiṣẹ iṣẹ, ati oṣiṣẹ iṣẹ tun ṣe atunṣe.

Sugbon! Ṣiṣayẹwo awọn akọọlẹ jẹ iṣẹ olowo poku lori iṣupọ kan ati pe o gbowolori gbowolori fun ẹgbẹẹgbẹrun iṣupọ.

A kowe ohun itẹsiwaju ti a npe ni Logerrors. O ṣẹda wiwo ti ibi ipamọ data ninu eyiti o le ni iye owo ati ni kiakia yan awọn iṣiro lori awọn aṣiṣe ti o kọja. Ati pe ti a ba nilo lati ji oṣiṣẹ iṣẹ, lẹhinna a yoo rii nipa eyi laisi ọlọjẹ awọn faili gigabyte, ṣugbọn nipa yiyo awọn baiti diẹ lati tabili hash.

Ifaagun yii ti gba, fun apẹẹrẹ, ninu ibi ipamọ fun CentOS. Ti o ba fẹ lo, o le fi sii funrararẹ. Dajudaju o jẹ ṣiṣi orisun.

Kini ati idi ti a ṣe ni awọn apoti isura data orisun orisun. Andrey Borodin (Yandex.Cloud)

https://www.postgresql.org/message-id/flat/[imeeli ni idaabobo]

Sugbon ti o ni ko gbogbo. A bẹrẹ lilo Amcheck, ifaagun ti agbegbe ti a ṣe, lati wa awọn irufin aiṣedeede ninu awọn atọka.

Ati pe a rii pe ti o ba ṣiṣẹ ni iwọn, awọn idun wa. A bẹrẹ atunṣe wọn. Awọn atunṣe wa ti gba.

Kini ati idi ti a ṣe ni awọn apoti isura data orisun orisun. Andrey Borodin (Yandex.Cloud)

https://www.postgresql.org/message-id/flat/[imeeli ni idaabobo]

A ṣe awari pe itẹsiwaju yii ko le ṣe itupalẹ awọn atọka GiST & GIT. A ṣe atilẹyin wọn. Ṣugbọn atilẹyin yii tun jẹ ijiroro nipasẹ agbegbe, nitori eyi jẹ iṣẹ ṣiṣe tuntun kan ati pe awọn alaye pupọ wa nibẹ.

Kini ati idi ti a ṣe ni awọn apoti isura data orisun orisun. Andrey Borodin (Yandex.Cloud)

https://commitfest.postgresql.org/29/2667/

Ati pe a tun ṣe awari pe nigbati o ba n ṣayẹwo awọn atọka fun awọn irufin lori adari ẹda, lori oluwa, ohun gbogbo ṣiṣẹ daradara, ṣugbọn lori awọn ẹda, lori atẹle, wiwa fun ibajẹ ko munadoko. Kii ṣe gbogbo awọn iyatọ ni a ṣayẹwo. Ati iyipada kan ti o yọ wa lẹnu pupọ. Ati pe a lo ọdun kan ati idaji ni ibaraẹnisọrọ pẹlu agbegbe lati le ṣe ayẹwo ayẹwo yii lori awọn ẹda.

A kowe koodu ti o yẹ ki o tẹle gbogbo le... Ilana. A jiroro alemo yii fun igba diẹ pẹlu Peter Gaghan lati Data Crunchy. O ni lati yipada die-die B-igi ti o wa ni Postgres lati gba alemo yii. O ti gba. Ati ni bayi ṣiṣayẹwo awọn atọka lori awọn ẹda tun ti di imunadoko to lati ṣe awari awọn irufin ti a pade. Iyẹn ni, iwọnyi ni awọn irufin ti o le fa nipasẹ awọn aṣiṣe ni famuwia disk, awọn idun ni Postgres, awọn idun ninu ekuro Linux, ati awọn iṣoro ohun elo. Oyimbo kan sanlalu akojọ ti awọn orisun ti isoro fun eyi ti a ni won ngbaradi.

Kini ati idi ti a ṣe ni awọn apoti isura data orisun orisun. Andrey Borodin (Yandex.Cloud)

https://www.postgresql.org/message-id/flat/38AF687F-8F6B-48B4-AB9E-A60CFD6CC261%40enterprisedb.com#0e86a12c01d967bac04a9bf83cd337cb

Ṣugbọn yato si awọn atọka, iru apakan kan wa bi okiti, ie aaye ti o ti fipamọ data naa. Ati pe ko si ọpọlọpọ awọn iyatọ ti o le ṣayẹwo.

A ni itẹsiwaju ti a pe ni Heapcheck. A bẹrẹ idagbasoke rẹ. Ati ni afiwe, pẹlu wa, ile-iṣẹ EnterpriseDB tun bẹrẹ lati kọ module kan, eyiti wọn pe ni Heapcheck ni ọna kanna. Nikan a pe PgHeapcheck, ati pe wọn kan pe ni Heapcheck. Won ni o pẹlu iru awọn iṣẹ, a die-die o yatọ si Ibuwọlu, ṣugbọn pẹlu kanna ero. Wọn ṣe imuse wọn diẹ dara julọ ni awọn aaye kan. Nwọn si Pipa o ni ìmọ orisun ṣaaju ki o to.

Ati ni bayi a n ṣe idagbasoke imugboroja wọn, nitori kii ṣe imugboroja wọn mọ, ṣugbọn imugboroja ti agbegbe. Ati ni ojo iwaju, eyi jẹ apakan ti ekuro ti yoo pese fun gbogbo eniyan ki wọn le mọ nipa awọn iṣoro iwaju ni ilosiwaju.

Kini ati idi ti a ṣe ni awọn apoti isura data orisun orisun. Andrey Borodin (Yandex.Cloud)

https://www.postgresql.org/message-id/flat/fe9b3722df94f7bdb08768f50ee8fe59%40postgrespro.ru

Ni diẹ ninu awọn aaye, a paapaa wa si ipari pe a ni awọn idaniloju eke ni awọn eto ibojuwo wa. Fun apẹẹrẹ, 1C eto. Nigbati o ba nlo aaye data, Postgres ma kọ data sinu rẹ nigbakan ti o le ka, ṣugbọn pg_dump ko le ka.

Ipo yii dabi ibajẹ si eto wiwa iṣoro wa. Oṣiṣẹ iṣẹ ti ji. Oṣiṣẹ iṣẹ wo ohun ti n ṣẹlẹ. Lẹhin igba diẹ, alabara kan wa o sọ pe Mo ni awọn iṣoro. Olutọju naa ṣalaye kini iṣoro naa. Ṣugbọn iṣoro naa wa ni ipilẹ Postgres.

Mo ti ri fanfa nipa ẹya ara ẹrọ yi. Ati pe o kọwe pe a pade ẹya ara ẹrọ yii ati pe ko dun, eniyan kan ji ni alẹ lati le mọ kini o jẹ.

Kini ati idi ti a ṣe ni awọn apoti isura data orisun orisun. Andrey Borodin (Yandex.Cloud)

https://www.postgresql.org/message-id/flat/fe9b3722df94f7bdb08768f50ee8fe59%40postgrespro.ru

Agbegbe naa dahun pe, “Oh, a nilo gaan lati ṣatunṣe.”

Mo ni afiwe ti o rọrun. Ti o ba n rin ni bata ti o ni ọkà ti iyanrin ninu rẹ, lẹhinna, ni opo, o le lọ siwaju - ko si iṣoro. Ti o ba ta awọn bata orunkun si ẹgbẹẹgbẹrun eniyan, lẹhinna jẹ ki a ṣe awọn bata orunkun laisi iyanrin rara. Ati pe ti ọkan ninu awọn olumulo ti bata rẹ yoo lọ si ere-ije, lẹhinna o fẹ ṣe bata ti o dara pupọ, lẹhinna ṣe iwọn wọn si gbogbo awọn olumulo rẹ. Ati iru awọn olumulo airotẹlẹ nigbagbogbo wa ni agbegbe awọsanma. Awọn olumulo nigbagbogbo wa ti o lo iṣupọ ni diẹ ninu awọn ọna atilẹba. O gbọdọ nigbagbogbo mura fun eyi.

Kini ati idi ti a ṣe ni awọn apoti isura data orisun orisun. Andrey Borodin (Yandex.Cloud)

Kini a ti kọ nibi? A kọ ẹkọ ti o rọrun: ohun pataki julọ ni lati ṣe alaye fun agbegbe pe iṣoro kan wa. Ti agbegbe ba ti mọ iṣoro naa, lẹhinna idije adayeba dide lati yanju iṣoro naa. Nitoripe gbogbo eniyan fẹ lati yanju iṣoro pataki kan. Gbogbo awọn olutaja, gbogbo awọn olosa loye pe awọn funrararẹ le tẹ lori rake yii, nitorinaa wọn fẹ lati pa wọn kuro.

Ti o ba n ṣiṣẹ lori iṣoro kan, ṣugbọn ko ṣe wahala ẹnikẹni bikoṣe iwọ, ṣugbọn o ṣiṣẹ lori rẹ ni ọna ṣiṣe ati pe o jẹ pe o jẹ iṣoro nikẹhin, lẹhinna ibeere fa rẹ yoo dajudaju gba. Patch rẹ yoo gba, awọn ilọsiwaju rẹ tabi paapaa awọn ibeere fun awọn ilọsiwaju yoo jẹ atunyẹwo nipasẹ agbegbe. Ni opin ti awọn ọjọ, a ṣe awọn database dara fun kọọkan miiran.

Kini ati idi ti a ṣe ni awọn apoti isura data orisun orisun. Andrey Borodin (Yandex.Cloud)

Ohun awon database ni Greenplum. O jẹ ibi-ipamọ data ti o jọra pupọ ti o da lori koodu koodu Postgres, eyiti Mo faramọ pẹlu.

Kini ati idi ti a ṣe ni awọn apoti isura data orisun orisun. Andrey Borodin (Yandex.Cloud)

https://greenplum.org/greenplum-database-tables-compression/

Ati Greenplum ni awọn iṣẹ ṣiṣe ti o nifẹ - append awọn tabili iṣapeye. Wọnyi ni o wa tabili ti o le ni kiakia fi si. Wọn le jẹ boya columnar tabi ila.

Ṣugbọn ko si iṣupọ, ie ko si iṣẹ ṣiṣe nibiti o le ṣeto data ti o wa ninu tabili ni ibamu pẹlu aṣẹ ti o wa ninu ọkan ninu awọn atọka.

Awọn eniyan lati takisi naa wa si ọdọ mi wọn sọ pe: “Andrey, o mọ Postgres. Ati nibi o fẹrẹ jẹ kanna. Yipada si iṣẹju 20. O gba a ṣe.” Mo ro pe bẹẹni, Mo mọ Postgres, yi pada fun iṣẹju 20 - Mo nilo lati ṣe eyi.

Kini ati idi ti a ṣe ni awọn apoti isura data orisun orisun. Andrey Borodin (Yandex.Cloud)

https://github.com/greenplum-db/gpdb/commit/179feb77a034c2547021d675082aae0911be40f7

Ṣugbọn rara, kii ṣe iṣẹju 20, Mo kowe fun oṣu diẹ sii. Ni apejọ PgConf.Russia, Mo tọ Heikki Linakangas lati Pivotal ati beere pe: “Ṣe awọn iṣoro eyikeyi wa pẹlu eyi? Kilode ti ko si iṣupọ tabili iṣapeye append?” O sọ pe: “O gba data naa. O too, o tunto. Iṣẹ́ kan ni.” Emi: "Oh, bẹẹni, o kan nilo lati mu ki o ṣe." Ó sọ pé: “Bẹ́ẹ̀ ni, a nílò ọwọ́ ọ̀fẹ́ láti ṣe èyí.” Mo ro pe dajudaju Mo nilo lati ṣe eyi.

Ati awọn oṣu diẹ lẹhinna Mo fi ibeere fa ti o ṣe imuse iṣẹ ṣiṣe yii. Ibeere fifa yii jẹ atunyẹwo nipasẹ Pivotal papọ pẹlu agbegbe. Dajudaju, awọn idun wa.

Kini ati idi ti a ṣe ni awọn apoti isura data orisun orisun. Andrey Borodin (Yandex.Cloud)

https://github.com/greenplum-db/gpdb/issues/10150

Ṣugbọn ohun ti o nifẹ julọ ni pe nigbati ibeere fifa yii ti dapọ, awọn idun ni a rii ni Greenplum funrararẹ. A ti rii pe awọn tabili okiti nigbakan fọ iṣowo nigba iṣupọ. Ati pe eyi jẹ ohun ti o nilo lati ṣe atunṣe. Ati pe o wa ni aaye ti Mo ṣẹṣẹ kan. Ati pe iṣesi adayeba mi jẹ - dara, jẹ ki n ṣe eyi paapaa.

Kini ati idi ti a ṣe ni awọn apoti isura data orisun orisun. Andrey Borodin (Yandex.Cloud)

https://github.com/greenplum-db/gpdb/pull/10290

Mo ṣe atunṣe kokoro yii. Ti fi ibeere fifa ranṣẹ si awọn oluṣeto. Wọ́n pa á.

Kini ati idi ti a ṣe ni awọn apoti isura data orisun orisun. Andrey Borodin (Yandex.Cloud)

https://github.com/greenplum-db/gpdb-postgres-merge/pull/53

Lẹhin eyi ti o wa ni jade pe iṣẹ-ṣiṣe yii nilo lati gba ni ẹya Greenplum fun PostgreSQL 12. Iyẹn ni, ìrìn-iṣẹju-iṣẹju 20 naa tẹsiwaju pẹlu awọn igbadun igbadun titun. O jẹ iyanilenu lati fi ọwọ kan idagbasoke lọwọlọwọ, nibiti agbegbe ti n ge awọn ẹya tuntun ati pataki julọ. O ti didi.

Kini ati idi ti a ṣe ni awọn apoti isura data orisun orisun. Andrey Borodin (Yandex.Cloud)

https://github.com/greenplum-db/gpdb/pull/10565

Ṣugbọn ko pari nibẹ. Lẹhin ohun gbogbo, o wa ni jade pe a nilo lati kọ iwe fun gbogbo eyi.

Mo bẹrẹ kikọ iwe. Ni Oriire, awọn akọwe lati Pivotal wa pẹlu. English jẹ ede abinibi wọn. Wọn ṣe iranlọwọ fun mi pẹlu iwe-ipamọ naa. Kódà, àwọn fúnra wọn tún ohun tí mo dábàá sí èdè Gẹ̀ẹ́sì gidi kọ.

Ati nihin, yoo dabi pe ìrìn naa pari. Ati pe o mọ ohun ti o ṣẹlẹ lẹhinna? Awọn eniyan lati inu takisi naa tọ mi wá wọn sọ pe: “Awọn irin-ajo meji tun wa, ọkọọkan fun iṣẹju mẹwa 10.” Ati kini o yẹ ki n sọ fun wọn? Mo sọ pe ni bayi Emi yoo fun ijabọ kan ni iwọn, lẹhinna a yoo rii awọn adaṣe rẹ, nitori eyi jẹ iṣẹ ti o nifẹ.

Kini ati idi ti a ṣe ni awọn apoti isura data orisun orisun. Andrey Borodin (Yandex.Cloud)

Etẹwẹ mí plọn sọn whẹho ehe mẹ? Nitoripe ṣiṣẹ pẹlu orisun ṣiṣi nigbagbogbo n ṣiṣẹ pẹlu eniyan kan pato, o n ṣiṣẹ nigbagbogbo pẹlu agbegbe. Nitoripe ni gbogbo ipele kan Mo ṣiṣẹ pẹlu diẹ ninu awọn olupilẹṣẹ, diẹ ninu awọn oluyẹwo, diẹ ninu agbonaeburuwole, diẹ ninu akọwe, diẹ ninu ayaworan. Emi ko ṣiṣẹ pẹlu Greenplum, Mo ṣiṣẹ pẹlu awọn eniyan ni ayika Greenplum.

Sugbon! Koko pataki miiran wa - o kan iṣẹ. Iyẹn ni, o wa, mu kofi, kọ koodu. Gbogbo iru ti o rọrun invariants ṣiṣẹ. Ṣe deede - yoo dara! Ati pe o jẹ iṣẹ ti o nifẹ pupọ. Ibeere wa fun iṣẹ yii lati ọdọ awọn alabara Yandex.Cloud, awọn olumulo ti awọn iṣupọ wa mejeeji inu Yandex ati ita. Ati pe Mo ro pe nọmba awọn iṣẹ akanṣe ninu eyiti a ṣe alabapin yoo pọ si ati ijinle ilowosi wa yoo tun pọ si.

Gbogbo ẹ niyẹn. Jẹ ká gbe lori si awọn ibeere.

Kini ati idi ti a ṣe ni awọn apoti isura data orisun orisun. Andrey Borodin (Yandex.Cloud)

Igba ibeere

Pẹlẹ o! A ni ibeere miiran ati igba idahun. Ati ninu awọn isise Andrei Borodin. Eyi ni eniyan ti o kan sọ fun ọ nipa ilowosi ti Yandex.Cloud ati Yandex lati ṣii orisun. Ijabọ wa ni bayi kii ṣe nipa awọsanma patapata, ṣugbọn ni akoko kanna a da lori iru awọn imọ-ẹrọ. Laisi ohun ti o ṣe ninu Yandex, ko si iṣẹ ni Yandex.Cloud, nitorinaa o ṣeun lati ọdọ mi tikalararẹ. Ati ibeere akọkọ lati igbohunsafefe: “Kini ọkọọkan awọn iṣẹ akanṣe ti o mẹnuba kọ?”

Eto afẹyinti ni WAL-G ti kọ ni Go. Eyi jẹ ọkan ninu awọn iṣẹ akanṣe tuntun ti a ti ṣiṣẹ lori. Ọmọ ọdun mẹta nikan ni o jẹ gangan. Ati pe ibi ipamọ data nigbagbogbo jẹ nipa igbẹkẹle. Ati pe eyi tumọ si pe awọn apoti isura infomesonu ti dagba pupọ ati pe wọn maa n kọ ni C. Iṣẹ-ṣiṣe Postgres bẹrẹ ni nkan bi 3 ọdun sẹyin. Lẹhinna C30 jẹ yiyan ti o tọ. Ati Postgres ti kọ lori rẹ. Awọn apoti isura infomesonu igbalode diẹ sii gẹgẹbi ClickHouse ni a maa n kọ ni C ++. Gbogbo idagbasoke eto da lori C ati C ++.

Ibeere kan lati ọdọ oluṣakoso owo wa, ẹniti o ni iduro fun awọn inawo ni Cloud: “Kini idi ti awọsanma n na owo lori atilẹyin orisun ṣiṣi?”

Idahun ti o rọrun wa fun oluṣakoso owo nibi. A ṣe eyi lati jẹ ki awọn iṣẹ wa dara julọ. Àwọn ọ̀nà wo la lè gbà ṣe dáadáa? A le ṣe awọn nkan diẹ sii daradara, yiyara, ati jẹ ki awọn nkan di iwọn diẹ sii. Ṣugbọn fun wa, itan yii jẹ nipataki nipa igbẹkẹle. Fun apẹẹrẹ, ninu eto afẹyinti a ṣe ayẹwo 100% ti awọn abulẹ ti o kan si. A mọ kini koodu naa jẹ. Ati pe a ni itunu diẹ sii yiyi awọn ẹya tuntun si iṣelọpọ. Iyẹn ni, akọkọ gbogbo, o jẹ nipa igbẹkẹle, nipa imurasilẹ fun idagbasoke ati nipa igbẹkẹle

Ibeere miiran: "Ṣe awọn ibeere ti awọn olumulo ita ti o ngbe ni Yandex.Cloud yatọ si awọn olumulo inu ti o ngbe inu awọsanma inu?"

Profaili fifuye jẹ, dajudaju, yatọ. Ṣugbọn lati oju wiwo ti ẹka mi, gbogbo awọn ọran pataki ati iwunilori ni a ṣẹda lori ẹru ti kii ṣe boṣewa. Awọn olupilẹṣẹ pẹlu oju inu, awọn olupilẹṣẹ ti o ṣe airotẹlẹ, o ṣee ṣe lati rii mejeeji ni inu ati ita. Ni iyi yii, gbogbo wa ni isunmọ kanna. Ati pe, boya, ẹya pataki nikan ninu iṣẹ Yandex ti awọn apoti isura data yoo jẹ pe inu Yandex a ni ẹkọ kan. Ni aaye kan, diẹ ninu agbegbe wiwa wa patapata sinu ojiji, ati gbogbo awọn iṣẹ Yandex gbọdọ bakan tẹsiwaju lati ṣiṣẹ laibikita eyi. Eyi jẹ iyatọ kekere kan. Ṣugbọn o ṣẹda ọpọlọpọ idagbasoke iwadi ni wiwo ti data data ati akopọ nẹtiwọọki. Bibẹẹkọ, awọn fifi sori ẹrọ ita ati inu n ṣe awọn ibeere kanna fun awọn ẹya ati awọn ibeere ti o jọra fun imudarasi igbẹkẹle ati iṣẹ.

Ibeere ti o tẹle: “Bawo ni o ṣe rilara tikalararẹ nipa otitọ pe pupọ julọ ohun ti o ṣe ni awọn Awọsanma miiran nlo?” A kii yoo lorukọ awọn kan pato, ṣugbọn ọpọlọpọ awọn iṣẹ akanṣe ti a ṣe ni Yandex.Cloud ni a lo ninu awọn awọsanma eniyan miiran.

Eyi dara. Ni akọkọ, o jẹ ami kan pe a ti ṣe nkan ti o tọ. Ati awọn ti o scratches awọn ego. Ati pe a ni igboya diẹ sii pe a ṣe ipinnu ti o tọ. Ni apa keji, eyi ni ireti pe ni ọjọ iwaju eyi yoo mu awọn imọran tuntun wa, awọn ibeere tuntun lati ọdọ awọn olumulo ẹnikẹta. Pupọ julọ awọn ọran lori GitHub ni a ṣẹda nipasẹ awọn oludari eto kọọkan, awọn DBA kọọkan, awọn ayaworan kọọkan, awọn ẹlẹrọ kọọkan, ṣugbọn nigbakan awọn eniyan ti o ni iriri eto wa lati sọ pe ni 30% ti awọn ọran kan a ni iṣoro yii ati jẹ ki a ronu bi a ṣe le yanju rẹ. Eyi ni ohun ti a nreti pupọ julọ. A nireti lati pin awọn iriri pẹlu awọn iru ẹrọ awọsanma miiran.

O ti sọrọ pupọ nipa Ere-ije gigun. Mo mọ pe o sare ere-ije ni Moscow. Nitorina na? Bori awọn enia buruku lati PostgreSQL?

Rara, Oleg Bartunov nṣiṣẹ ni iyara pupọ. O pari wakati kan niwaju mi. Ìwò, Mo wa dun pẹlu bi o jina Mo ni. Fun mi, ipari kan jẹ aṣeyọri kan. Lapapọ, o jẹ iyalẹnu pe ọpọlọpọ awọn asare ni agbegbe postgres. O dabi si mi pe iru ibatan kan wa laarin awọn ere idaraya aerobic ati ifẹ fun siseto awọn eto.

Ṣe o n sọ pe ko si awọn asare ni ClickHouse?

Mo mọ daju pe wọn wa nibẹ. ClickHouse tun jẹ aaye data kan. Nipa ọna, Oleg n kọwe si mi ni bayi: “Ṣe a yoo lọ fun ṣiṣe lẹhin ijabọ naa?” Eyi jẹ imọran nla kan.

Ibeere miiran lati igbohunsafefe lati Nikita: “Kini idi ti o fi ṣatunṣe kokoro naa ni Greenplum funrararẹ ati pe ko fun awọn ọdọ?” Otitọ, ko ṣe kedere kini kokoro naa jẹ ati ninu iṣẹ wo, ṣugbọn o ṣee ṣe tumọ si ọkan ti o ti sọrọ nipa.

Bẹẹni, ni ipilẹ, o le ti fun ẹnikan. O kan koodu ti Mo kan yipada. Ati pe o jẹ adayeba lati tẹsiwaju ṣiṣe ni lẹsẹkẹsẹ. Ni ipilẹ, imọran ti pinpin imọran pẹlu ẹgbẹ jẹ imọran to dara. A yoo dajudaju pin awọn iṣẹ-ṣiṣe Greenplum laarin gbogbo awọn ọmọ ẹgbẹ ti pipin wa.

Niwọn igba ti a n sọrọ nipa awọn ọdọ, ibeere kan wa. Eniyan pinnu lati ṣẹda adehun akọkọ ni Postgres. Kini o nilo lati ṣe lati ṣe adehun akọkọ?

Eyi jẹ ibeere ti o nifẹ: “Nibo ni lati bẹrẹ?” Nigbagbogbo o nira pupọ lati bẹrẹ pẹlu nkan ninu ekuro. Ni Postgres, fun apẹẹrẹ, atokọ kan wa lati ṣe. Ṣugbọn ni otitọ, eyi jẹ iwe ti ohun ti wọn gbiyanju lati ṣe, ṣugbọn ko ṣaṣeyọri. Iwọnyi jẹ awọn nkan idiju. Ati nigbagbogbo o le rii diẹ ninu awọn ohun elo ninu ilolupo eda abemi, diẹ ninu awọn amugbooro ti o le ni ilọsiwaju, ti o fa akiyesi diẹ si lati ọdọ awọn olupilẹṣẹ kernel. Ati pe, ni ibamu, awọn aaye diẹ sii wa fun idagbasoke nibẹ. Ni igba ooru Google ti eto koodu, ni gbogbo ọdun agbegbe postgres n gbe ọpọlọpọ awọn akọle oriṣiriṣi siwaju ti o le koju. Ni ọdun yii a ni, Mo ro pe, awọn ọmọ ile-iwe mẹta. Ọkan paapaa kowe ni WAL-G lori awọn akọle ti o ṣe pataki fun Yandex. Ni Greenplum, ohun gbogbo rọrun ju ni agbegbe Postgres, nitori awọn olosa Greenplum ṣe itọju awọn ibeere fa daradara ati bẹrẹ atunyẹwo lẹsẹkẹsẹ. Fifiranṣẹ alemo kan si Postgres jẹ ọrọ ti awọn oṣu, ṣugbọn Greenplum yoo wa ni ọjọ kan ati rii ohun ti o ti ṣe. Ohun miiran ni pe Greenplum nilo lati yanju awọn iṣoro lọwọlọwọ. Greenplum kii ṣe lilo pupọ, nitorinaa wiwa iṣoro rẹ nira pupọ. Ati ni akọkọ, a nilo lati yanju awọn iṣoro, dajudaju.

orisun: www.habr.com