He aha me te aha e mahi ai matou i roto i nga papaa raraunga Open Source. Andrey Borodin (Yandex.Cloud)

He aha me te aha e mahi ai matou i roto i nga papaa raraunga Open Source. Andrey Borodin (Yandex.Cloud)

Ka arotakehia te takoha a Yandex ki nga papaa raraunga e whai ake nei.

  • PaateneToko
  • Odyssey
  • Whakaora ki tetahi wa (WAL-G)
  • PostgreSQL (tae atu ki nga logerrors, Amcheck, heapcheck)
  • Greenplum

Ataata:

Kia ora te ao! Ko Andrey Borodin toku ingoa. A ko taku mahi i Yandex.Cloud ko te whakawhanake i nga paparangi hononga tuwhera mo nga hiahia o nga kiritaki Yandex.Cloud me Yandex.Cloud.

He aha me te aha e mahi ai matou i roto i nga papaa raraunga Open Source. Andrey Borodin (Yandex.Cloud)

I roto i tenei korero, ka korero tatou mo nga wero kei mua i nga papaa raraunga tuwhera i te rahi. He aha te mea nui? No te mea he iti, he raru iti ka rite ki te namu ka huri hei arewhana. Ka nui ake ina he maha nga tautau.

Engari ehara tera i te mea nui. Ka tupu nga mea whakamiharo. Ko nga mea ka tupu i roto i te kotahi miriona nga keehi. A, i roto i te taiao kapua, me noho rite koe mo tera, na te mea ka tino kitea nga mea whakamiharo i te wa e mau ana tetahi mea.

Engari! He aha te painga o nga papaa raraunga tuwhera? Ko te meka he whai waahi whakaaro koe ki te whakatutuki i tetahi raru. Kei a koe te waehere puna, kei a koe te mohio ki te kaupapa. Ka whakakotahihia e matou ka mahi.

He aha me te aha e mahi ai matou i roto i nga papaa raraunga Open Source. Andrey Borodin (Yandex.Cloud)

He aha nga huarahi kei roto i te mahi i runga i nga punaha punaha tuwhera?

  • Ko te huarahi tino maamaa ko te whakamahi i te rorohiko. Mena ka whakamahi koe i nga kawa, mena ka whakamahi koe i nga paerewa, mena ka whakamahi koe i nga whakatakotoranga, mena ka tuhia e koe nga patai ki roto i nga punaha tuwhera, ka tautokohia e koe.
  • Kei te whakanuia e koe tona puunaha rauwiringa kaiao. Ka kaha ake koe ki te kite wawe i tetahi pepeha. Ka whakanui koe i te pono o tenei punaha. Ka whakanui koe i te waatea o nga kaiwhakawhanake i te maakete. Ka whakapai ake koe i tenei rorohiko. He kaikoha kee koe mena kua eke koe ki te whai ahua me te tarai ki tetahi mea kei reira.
  • Ko tetahi atu huarahi maamaa ko te tautoko i nga punaha punaha tuwhera. Hei tauira, ko te kaupapa rongonui a Google Summer of Code, i te wa e utu ana a Google i te maha o nga akonga mai i nga wa katoa o te ao e marama ana te moni kia whakawhanakehia e ratou nga kaupapa rorohiko tuwhera e tutuki ana i etahi whakaritenga raihana.
  • He huarahi tino pai tenei na te mea ka taea e te rorohiko te whanake me te kore e neke atu te arotahi mai i te hapori. Ko Google, i te mea he roroa hangarau, kaore e kii kei te pirangi matou ki tenei ahuatanga, kei te pirangi matou ki te whakatika i tenei pepeha a koinei te waahi me keri. Ka kii a Google: "Mahia taau mahi. Me mahi noa i te huarahi i mahi ai koe ka pai nga mea katoa.
  • Ko te huarahi e whai ake nei ki te whai waahi ki te puna tuwhera ko te whai waahi. Ka raru koe i roto i nga punaha punaha tuwhera me nga kaiwhakawhanake, ka timata nga kaiwhakawhanake ki te whakaoti rapanga. Ka timata ratou ki te whakapai ake i to hanganga, kia tere ake, kia pono hoki o kaupapa.

He aha me te aha e mahi ai matou i roto i nga papaa raraunga Open Source. Andrey Borodin (Yandex.Cloud)

Ko tetahi o nga kaupapa Yandex tino rongonui i roto i te mara o te punaha tuwhera ko ClickHouse. He putunga korero tenei i whanau hei whakautu mo nga wero kei mua i a Yandex.Metrica.

A, hei putunga korero, i hangaia i roto i te puna tuwhera hei hanga i tetahi puunaha rauwiringa kaiao me te whakawhanake tahi me etahi atu kaiwhakawhanake (ehara i roto i te Yandex anake). Inaianei he kaupapa nui tenei e uru ana nga tini kamupene rereke.

He aha me te aha e mahi ai matou i roto i nga papaa raraunga Open Source. Andrey Borodin (Yandex.Cloud)

I roto i te Yandex.Cloud, i hangaia e matou te ClickHouse i runga ake o te Rokiroki Ahanoa Yandex, ara i runga ake o te rokiroki kapua.

He aha me te aha e mahi ai matou i roto i nga papaa raraunga Open Source. Andrey Borodin (Yandex.Cloud)

He aha te mea nui i roto i te kapua? Na te mea ka mahi tetahi putunga raraunga i roto i tenei tapatoru, i tenei tara, i tenei rarangi o nga momo mahara. Kei a koe nga rehita tere engari iti me nga SSD nui engari puhoi, nga puku pakeke me etahi atu taputapu poraka. A, ki te pai koe ki te tihi o te tara, katahi koe ka tere te paataka raraunga. ki te pai koe ki raro o tenei tara, katahi ka whai koe i te paparangi raraunga tauine. A, mo tenei kaupapa, ko te taapiri i tetahi atu paparanga mai i raro nei he huarahi arorau ki te whakanui ake i te tauineine o te putunga raraunga.

He aha me te aha e mahi ai matou i roto i nga papaa raraunga Open Source. Andrey Borodin (Yandex.Cloud)

Me pehea e taea ai? He kaupapa nui tenei i roto i tenei ripoata.

  • Ka taea e maatau te whakamahi ClickHouse mo MDS. Ko te MDS he atanga rokiroki kapua Yandex o roto. He uaua ake i te kawa S3 noa, engari he pai ake mo te taputapu poraka. He pai ake mo te tuhi raraunga. Me nui ake nga hotaka. Ka hotaka nga kaiwhakatere, he pai, he whakamere.
  • Ko te S3 he huarahi noa ake e ngawari ake ai te atanga i te utu mo te iti ake o te urutau ki etahi momo kawenga mahi.

Ko te tikanga, ko te hiahia ki te whakarato taumahinga ki te katoa o te rauwiringa kaiao ClickHouse me te mahi i nga mahi e hiahiatia ana i roto i te Yandex.Cloud, i whakatau matou kia whai hua te hapori ClickHouse katoa. I whakatinanahia e matou a ClickHouse mo S3, kaua ko ClickHouse mo MDS. A he nui tenei mahi.

He aha me te aha e mahi ai matou i roto i nga papaa raraunga Open Source. Andrey Borodin (Yandex.Cloud)

He Tohutoro:

https://github.com/ClickHouse/ClickHouse/pull/7946 "papanga tangohanga punaha konae"
https://github.com/ClickHouse/ClickHouse/pull/8011 "AWS SDK S3 whakauru"
https://github.com/ClickHouse/ClickHouse/pull/8649 "Turanga whakatinanatanga o te hononga IDisk mo S3"
https://github.com/ClickHouse/ClickHouse/pull/8356 "Ko te whakauru o nga miihini rokiroki rangitaki me te atanga IDisk"
https://github.com/ClickHouse/ClickHouse/pull/8862 "Tautoko miihini takiuru mo S3 me SeekableReadBuffer"
https://github.com/ClickHouse/ClickHouse/pull/9128 "Tautoko Rokiroki Takiuru S3"
https://github.com/ClickHouse/ClickHouse/pull/9415 "Storage MergeTree tautoko tuatahi mo S3"
https://github.com/ClickHouse/ClickHouse/pull/9646 "MergeTree tautoko katoa mo S3"
https://github.com/ClickHouse/ClickHouse/pull/10126 "Tautoko ReplicatedMergeTree mo S3"
https://github.com/ClickHouse/ClickHouse/pull/11134 "Taapirihia nga tohu tohu taunoa me nga pane ritenga mo te rokiroki s3"
https://github.com/ClickHouse/ClickHouse/pull/10576 "S3 me te whirihoranga takawaenga hihiri"
https://github.com/ClickHouse/ClickHouse/pull/10744 "S3 me te kaiwhakatau takawaenga"

He rarangi tono toia tenei mo te whakatinana i te punaha konae mariko ki ClickHouse. He maha nga tono kume tenei.

He aha me te aha e mahi ai matou i roto i nga papaa raraunga Open Source. Andrey Borodin (Yandex.Cloud)

He Tohutoro:

https://github.com/ClickHouse/ClickHouse/pull/9760 "Ko te DiskS3 nga hononga pakeke te whakatinanatanga tino pai"
https://github.com/ClickHouse/ClickHouse/pull/11522 "Kaihoko S3 HTTP - A ape i te kape i te awa whakautu ki te mahara"
https://github.com/ClickHouse/ClickHouse/pull/11561 “A ape i te kape i te awa whakautu katoa ki te mahara i roto i te S3 HTTP
kiritaki"
https://github.com/ClickHouse/ClickHouse/pull/13076 "Te kaha ki te keteroki tohu me te tohu i nga konae mo te kōpae S3"
https://github.com/ClickHouse/ClickHouse/pull/13459 "Nukuhia nga waahanga mai i te DiskLocal ki te DiskS3 ki te whakarara"

Engari kaore i mutu te mahi i reira. Whai muri i te hanga o te waahanga, me mahi ano kia pai ake ai tenei mahi.

He aha me te aha e mahi ai matou i roto i nga papaa raraunga Open Source. Andrey Borodin (Yandex.Cloud)

He Tohutoro:

https://github.com/ClickHouse/ClickHouse/pull/12638 "Taapirihia nga Rows kua tohua me nga huihuinga kua tohua"
https://github.com/ClickHouse/ClickHouse/pull/12464 "Taapirihia nga kaupapa korero mai i te tono S3 ki te system.events"
https://github.com/ClickHouse/ClickHouse/pull/13028 "Taapirihia nga WaaWaiMicrohekona, SelectQueryTimeMicroseconds me InsertQueryTimeMicrohekona"

Na ka tika kia taea te tirotiro, te whakarite i te aro turuki me te whakahaere.

A i mahia enei mea katoa kia whiwhi ai te hapori katoa, te punaha hauropi ClickHouse katoa, te hua o tenei mahi.

He aha me te aha e mahi ai matou i roto i nga papaa raraunga Open Source. Andrey Borodin (Yandex.Cloud)

Me neke atu ki nga paataka tauwhitinga, ki nga papaa raraunga OLTP, e tata ake ana ki ahau ake.

He aha me te aha e mahi ai matou i roto i nga papaa raraunga Open Source. Andrey Borodin (Yandex.Cloud)

Koinei te waahanga whanaketanga DBMS puna tuwhera. Ko enei taangata kei te mahi makutu huarahi ki te whakapai ake i nga putunga korero tuwhera.

He aha me te aha e mahi ai matou i roto i nga papaa raraunga Open Source. Andrey Borodin (Yandex.Cloud)

Ko tetahi o nga kaupapa, ma te whakamahi i tetahi tauira ka taea e tatou te korero mo te pehea me te aha o taatau mahi, ko te Connection Pooler i Postgres.

Ko te Postgres he papaa raraunga tukanga. Ko te tikanga me iti noa nga hononga whatunga ka taea e te paataka korero hei whakahaere i nga whakawhitinga.

I tetahi atu taha, i roto i te taiao kapua, he ahuatanga angamaheni ka tae mai te mano hononga ki te roopu kotahi i te wa kotahi. A ko te mahi a te Kaipupuri hononga he kiki i nga hononga kotahi mano ki roto i te iti o nga hononga tūmau.

He aha me te aha e mahi ai matou i roto i nga papaa raraunga Open Source. Andrey Borodin (Yandex.Cloud)

Ka taea e matou te kii ko te kaikohikohi hononga ko te kaiwhakahaere waea e whakatikatika ana i nga paita kia pai ai te tae atu ki te paataka raraunga.

Kia aroha mai, karekau he kupu Russian pai mo te hono pooler. I etahi wa ka kiia ko nga hononga multiplexer. Mena ka mohio koe he aha te karanga i te kaikoi hono, katahi koe ka korero mai ki ahau, ka tino koa ahau ki te korero i te reo hangarau tika a Ruhia.

He aha me te aha e mahi ai matou i roto i nga papaa raraunga Open Source. Andrey Borodin (Yandex.Cloud)

https://pgconf.ru/2017/92899

I whakatewhatewhahia e matou nga kaitao hono e tika ana mo te roopu poupou whakahaere. A ko PgBouncer te whiringa pai mo matou. Engari he maha nga raru i pa ki a PgBouncer. He maha nga tau kua pahure ake nei, ka tukuna e Volodya Borodin nga purongo e whakamahi ana matou i te PgBouncer, he pai ki a matou nga mea katoa, engari he rereke, he mea hei mahi.

He aha me te aha e mahi ai matou i roto i nga papaa raraunga Open Source. Andrey Borodin (Yandex.Cloud)

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

A i mahi matou. I whakatikahia e matou nga raru i pa ki a matou, i papakihia e matou a Bouncer, ka ngana ki te pana i nga tono toia ki runga. Engari he uaua te mahi miro-kotahi taketake.

Me kohia e matou nga riaka mai i nga Kaituku papaki. Ina he maha nga Kaipupuri miro kotahi, ka whakawhitia nga hononga i runga i te paparanga o runga ki te paparanga o roto o nga Kaipupuri. He punaha whakahaere kino tenei, he uaua ki te hanga me te whakaneke haere.

He aha me te aha e mahi ai matou i roto i nga papaa raraunga Open Source. Andrey Borodin (Yandex.Cloud)

I tae matou ki te whakatau i hanga e matou to matou ake puna hononga, e kiia nei ko Odyssey. I tuhia e matou mai i te wahanga.

He aha me te aha e mahi ai matou i roto i nga papaa raraunga Open Source. Andrey Borodin (Yandex.Cloud)

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

I te tau 2019, i te huihuinga PgCon, i tukuna e ahau tenei kaitao ki te hapori kaiwhakawhanake. Inaianei he iti ake i te 2 nga whetu kei runga i a GitHub, ara, kei te ora te kaupapa, kei te rongonui te kaupapa.

A, ki te hanga e koe he tautau Postgres i Yandex.Cloud, katahi ka waiho he huinga me te Odyssey kua hangaia, ka whirihora ano i te wa e huri ana i te roopu ki muri, ki tua atu ranei.

He aha me te aha e mahi ai matou i roto i nga papaa raraunga Open Source. Andrey Borodin (Yandex.Cloud)

He aha ta tatou i ako mai i tenei kaupapa? Ko te whakarewanga i tetahi kaupapa whakataetae he mahi tino pukuriri tonu, he ine tino nui ina kii tatou he raruraru kaore i te tere te whakaoti, kaore i te whakatauhia i roto i nga waa e pai ana ki a tatou. Engari he mahinga whai hua tenei.

I timata a PgBouncer ki te whakawhanake tere.

Na inaianei kua puta etahi atu kaupapa. Hei tauira, pgagroal, i whakawhanakehia e nga kaihanga Red Hat. Ka whai ratou i nga whainga rite me te whakatinana i nga whakaaro rite, engari, ko te tikanga, me o raatau ake waahanga, e tata ana ki nga kaihanga pgagroal.

He aha me te aha e mahi ai matou i roto i nga papaa raraunga Open Source. Andrey Borodin (Yandex.Cloud)

Ko tetahi atu keehi mo te mahi tahi me te hapori postgres kei te hoki mai ano ki tetahi wa. He whakaoranga tenei i muri i te korenga, he whakaora tenei mai i te taapiri.

He aha me te aha e mahi ai matou i roto i nga papaa raraunga Open Source. Andrey Borodin (Yandex.Cloud)

He maha nga taapiri, he rereke katoa. Tata ki nga kaihoko katoa o Postgres kei a raatau ake otinga taapiri.

Mena ka tangohia e koe nga punaha taapiri katoa, hangahia he matiki ahua me te taraihia te whakatau i tenei matrix, ka kore. He aha te tikanga o tenei? He aha mena ka tango koe i tetahi konae taapiri, kaore e taea te kohi mai i etahi atu waahanga. He ahurei i roto i tana whakatinanatanga, he mea motuhake i roto i tana kaupapa, he ahurei i roto i nga whakaaro kua mau ki roto. A he mea motuhake ratou katoa.

He aha me te aha e mahi ai matou i roto i nga papaa raraunga Open Source. Andrey Borodin (Yandex.Cloud)

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

I a matou e mahi ana i tenei take, i whakarewahia e CitusData te kaupapa WAL-G. He punaha taapiri tenei i hangaia ma te titiro ki te taiao kapua. Inaianei ko CitusData tetahi waahanga o Microsoft. A i taua wa, i tino pai ki a matou nga whakaaro i whakatakotoria i roto i nga putanga tuatahi o WAL-G. Na ka timata matou ki te koha ki tenei kaupapa.

He aha me te aha e mahi ai matou i roto i nga papaa raraunga Open Source. Andrey Borodin (Yandex.Cloud)

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

Inaianei he maha nga kaiwhakawhanake kei roto i tenei kaupapa, engari ko te 10 o nga kaikoha ki te WAL-G ko te 6 Yandexoids. He maha nga whakaaro i kawea mai e matou ki reira. Ae ra, i whakatinanahia e matou ake, i whakamatauria e matou ake, i hurihia e matou ki roto i nga mahi whakaputa, ka whakamahia e matou ake, ma matou ano e whakaaro ki hea ka neke atu, i te wa e mahi tahi ana me te hapori WAL-G nui.

He aha me te aha e mahi ai matou i roto i nga papaa raraunga Open Source. Andrey Borodin (Yandex.Cloud)

A, mai i ta maatau tirohanga, inaianei ko tenei punaha taapiri, tae atu ki te whai whakaaro ki a maatau mahi, kua tino pai mo te taiao kapua. Koinei te utu pai mo te tautoko i nga Postgres i te kapua.

He aha te tikanga? I whakatairanga matou i tetahi whakaaro tino nui: kia noho haumaru, kia iti te mahi me te tere ki te whakaora.

He aha te take he iti noa te mahi? Ki te pakaru tetahi mea, kaua koe e mohio kei a koe he taapiri. He pai nga mea katoa, he iti noa te PTM ka taea, ka whakamahia e koe te iti o nga rauemi kōpae ka taea, ka tukuna he iti noa nga paita ki te whatunga kia kore ai e pokanoa ki te utu o o ratonga utu nui.

A, ka pakaru nga mea katoa, hei tauira, ka tukuna e te kaiwhakahaere nga raraunga, kua he tetahi mea, me tere koe ki te hoki ki nga wa o mua, ka ora koe me nga moni katoa, na te mea e hiahia ana koe ki te whakahoki wawe i o raraunga me te mau tonu.

Na matou i whakatairanga tenei whakaaro ngawari. A, ki ta matou titiro, i kaha taatau ki te whakatinana.

He aha me te aha e mahi ai matou i roto i nga papaa raraunga Open Source. Andrey Borodin (Yandex.Cloud)

Engari ehara i te mea ko tera anake. I hiahia matou ki tetahi atu mea iti. I pirangi matou ki te maha o nga papaa raraunga. Kaore katoa o taatau kaihoko e whakamahi i te Postgres. Ko etahi ka whakamahi MySQL, MongoDB. I roto i te hapori, kua tautoko etahi atu kaihanga i te FoundationDB. A kei te piki haere tonu tenei rarangi.

He pai ki te hapori te whakaaro o te paataka korero e whakahaerehia ana i roto i te taiao whakahaere i roto i te kapua. Na ka mau tonu nga kaiwhakawhanake i o raatau papaa raraunga, ka taea te tautoko i te taha o te Postgres me ta maatau punaha taapiri.

He aha me te aha e mahi ai matou i roto i nga papaa raraunga Open Source. Andrey Borodin (Yandex.Cloud)

He aha ta tatou i ako mai i tenei korero? Ko ta maatau hua, hei waahanga whanaketanga, ehara i nga rarangi tohu, ehara i te korero, ehara i te konae. Ko ta maatau hua ehara i te tono tono. Koia nga whakaaro ka tukuna e matou ki te hapori. He tohungatanga hangarau tenei me te nekehanga o te hangarau ki te taiao kapua.

He aha me te aha e mahi ai matou i roto i nga papaa raraunga Open Source. Andrey Borodin (Yandex.Cloud)

He putunga korero penei i a Postgres. He pai ki ahau te poupou o te Postgres. He nui taku wa ki te whakawhanake i te kaupapa Postgres me te hapori.

He aha me te aha e mahi ai matou i roto i nga papaa raraunga Open Source. Andrey Borodin (Yandex.Cloud)

Engari i konei me kii kei a Yandex.Cloud te whakaurunga o roto o nga papaa raraunga whakahaere. Na kua timata i te wa roa i mua i Yandex.Mail. Ko nga tohungatanga i whai waahi ki te whakahaere i nga Postgres i kohia i te wa e hiahia ana te mēra ki te neke ki Postgres.

He rite tonu nga whakaritenga a Mail ki te kapua. Me kaha koe ki te tauine ki te tipu taupuke ohorere i nga waahi katoa o to raraunga. Na te mēra kua he kawenga me etahi rau miriona pouaka pouaka o te tini o nga kaiwhakamahi e tono ana i nga wa katoa.

A he tino wero nui tenei mo te roopu e whakawhanake ana i a Postgres. I tera wa, ko nga raruraru i pa ki a matou i panuitia ki te hapori. A i whakatikahia enei raruraru, i whakatikahia e te hapori i etahi waahi ahakoa i te taumata o te tautoko utu mo etahi atu papaa raraunga me te pai ake. Arā, ka taea e koe te tuku reta ki a PgSQL hacker ka whiwhi whakautu i roto i te 40 meneti. Ko te tautoko i utua i roto i etahi papaunga raraunga ka whakaaro he nui ake nga mea nui atu i to bug.

Inaianei ko te whakaurunga o roto o Postgres etahi petabytes o nga raraunga. He miriona nga tono mo ia hekona. Ko enei nga mano tini o nga tautau. He tino nui-nui.

Engari he ahua ke. E kore e ora i runga i nga puku whatunga rerehua, engari i runga i nga taputapu ngawari noa. A he taiao whakamatautau mo nga mea hou whakamere.

He aha me te aha e mahi ai matou i roto i nga papaa raraunga Open Source. Andrey Borodin (Yandex.Cloud)

A i tetahi wa i roto i te taiao whakamatautau ka tae mai he panui e tohu ana kua takahia nga rereketanga o roto o nga tohu tohu raraunga.

Ko te rerekee tetahi momo hononga e tumanakohia ana kia mau tonu.

He ahuatanga tino kino mo tatou. E tohu ana kua ngaro etahi raraunga. A ko te ngaronga raraunga he mea tino kino.

Ko te whakaaro nui e whai ana matou i roto i nga papaa raraunga whakahaere ko te mea ahakoa te whakapau kaha, ka uaua te ngaro o nga raraunga. Ahakoa ka ata tangohia e koe, me wareware tonu koe ki te ngaro mo te wa roa. Ko te haumarutanga raraunga he karakia e tino whaia ana e tatou.

A i konei ka ara ake tetahi ahuatanga e tohu ana tera pea he ahuatanga kaore pea tatou e rite. Na ka timata matou ki te whakarite mo tenei ahuatanga.

He aha me te aha e mahi ai matou i roto i nga papaa raraunga Open Source. Andrey Borodin (Yandex.Cloud)

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

Ko te mea tuatahi i mahia e matou ko te tanu i nga poro rakau mai i enei mano tini tautau. I kitea e matou ko wai o nga tautau kei runga i nga kopae me te firmware raru e ngaro ana nga whakahou wharangi raraunga. Kua tohua te waehere raraunga Postgres katoa. Na i tohuhia e matou nga karere e tohu ana i nga takahi o nga rereke o roto me te waehere i hangaia hei kite i te pirau raraunga.

I whakaaehia tenei papaki e te hapori me te kore korero nui, na te mea i roto i ia keehi kua tino kitea kua pa he kino, me whakaatu ki te raarangi.

He aha me te aha e mahi ai matou i roto i nga papaa raraunga Open Source. Andrey Borodin (Yandex.Cloud)

Whai muri i tenei, ka tae ki te waahi kei a maatau te tirotiro e tirotirohia ana nga raarangi. A, ki te puta nga korero whakapae, ka whakaarahia e ia te apiha mahi, ka whakatikahia e te apiha mahi.

Engari! He iti noa te mahi tirotiro i nga poro rakau i runga i te tautau kotahi, me te utu nui mo te kotahi mano tautau.

I tuhia e matou he toronga e kiia ana Nga Kaitohu. Ka waihangahia he tirohanga mo te putunga raraunga ka taea e koe te whiriwhiri i nga tatauranga mo nga hapa o mua. A, ki te hiahia tatou ki te whakaoho i te apiha mahi, katahi ka mohio tatou mo tenei me te kore e matawai i nga konae gigabyte, engari ma te tango i etahi paita mai i te ripanga hash.

Kua tangohia tenei toronga, hei tauira, i roto i te putunga mo CentOS. Ki te hiahia koe ki te whakamahi, ka taea e koe te whakauru i a koe ano. Ko te akoranga he puna tuwhera.

He aha me te aha e mahi ai matou i roto i nga papaa raraunga Open Source. Andrey Borodin (Yandex.Cloud)

https://www.postgresql.org/message-id/flat/[email tiakina]

Engari ehara ko tera anake. I timata matou ki te whakamahi i te Amcheck, he toronga i hangaia e te hapori, ki te rapu i nga takahitanga rereke i roto i nga taurangi.

A, i kitea e matou ki te whakahaere koe i runga i te tauine, kei reira nga pepeke. I timata matou ki te whakatika. Kua whakaaetia a maatau whakatikatika.

He aha me te aha e mahi ai matou i roto i nga papaa raraunga Open Source. Andrey Borodin (Yandex.Cloud)

https://www.postgresql.org/message-id/flat/[email tiakina]

I kitea e matou kaore e taea e tenei toronga te tarai i nga tohu tohu GiST & GIT. Na matou i tautoko ratou. Engari ko tenei tautoko kei te korerohia tonutia e te hapori, na te mea he mahi hou tenei, he maha nga korero kei reira.

He aha me te aha e mahi ai matou i roto i nga papaa raraunga Open Source. Andrey Borodin (Yandex.Cloud)

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

I kitea ano e matou i te wa e tirotirohia ana nga tohu mo nga takahi i runga i te kaiarahi tukurua, i runga i te rangatira, he pai nga mahi katoa, engari i runga i nga tauira, i runga i te kaiwhai, kaore i te tino whai hua te rapu mo te pirau. Karekau nga rerekee katoa e takina. Na tetahi mea rereke i tino whakararuraru i a maatau. A kotahi tau me te hawhe i whakapaua e matou ki te whakawhitiwhiti korero ki te hapori kia taea ai tenei haki ki runga i nga tauira.

I tuhia e matou he waehere me whai i nga kawa katoa ... kawa. I korero matou mo tenei papaki mo etahi wa ki a Peter Gaghan mai i te Crunchy Data. Me whakarereke e ia te B-rakau kei Postgres kia whakaaetia tenei papaki. I whakaaetia ia. Inaianei kua whai hua ano te tirotiro i nga taurangi i runga i nga tauira ki te kite i nga takahitanga i pa ki a matou. Arā, ko enei nga takahi ka puta mai i nga hapa i roto i te firmware kōpae, i nga putea i roto i te Postgres, i nga putea i roto i te Linux kernel, me nga raruraru taputapu. He rarangi nui o nga puna raruraru e whakareri ana matou.

He aha me te aha e mahi ai matou i roto i nga papaa raraunga Open Source. Andrey Borodin (Yandex.Cloud)

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

Engari i tua atu i nga tohu tohu, he waahanga ano he puranga, ara ko te waahi e rongoa ai nga raraunga. A kaore i te maha nga rereke ka taea te tirotiro.

He toronga ta matou ko Heapcheck. I timata matou ki te whakawhanake. A, i te taha o matou, i timata ano te kamupene EnterpriseDB ki te tuhi i tetahi waahanga, i kiia e ratou ko Heapcheck i te huarahi ano. Ko ta matou anake i tapaina ko PgHeapcheck, ka kiia ko Heapcheck. He rite nga mahi, he waitohu rereke, engari he rite nga whakaaro. He pai ake ta ratou whakatinana i etahi waahi. Na ka tukuna e ratou ki te puna tuwhera i mua.

Inaianei kei te whanakehia e matou ta ratou whakawhanui, na te mea ehara i te mea ko to ratou roha, engari ko te roha o te hapori. A i nga wa kei te heke mai, koinei tetahi waahanga o te kakano ka tukuna ki nga tangata katoa kia mohio ai ratou mo nga raru kei te heke mai.

He aha me te aha e mahi ai matou i roto i nga papaa raraunga Open Source. Andrey Borodin (Yandex.Cloud)

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

I etahi waahi, i tae ano matou ki te whakatau he hua teka kei roto i a maatau punaha aroturuki. Hei tauira, ko te punaha 1C. I te wa e whakamahi ana i te papanga raraunga, ka tuhia e Postgres nga raraunga ki roto ka taea e ia te panui, engari kaore e taea e pg_dump te panui.

He ahua pirau tenei ahuatanga ki ta maatau punaha rapu raru. Ka oho te apiha mahi. I titiro te apiha mahi i nga mahi. I muri i etahi wa, ka tae mai tetahi kaihoko me te kii he raruraru ahau. Ka whakamaramatia e te kaiawhina he aha te raru. Engari ko te raru kei roto i te kaupapa Postgres.

I kitea e au he korero mo tenei ahuatanga. Na ka tuhia e ia kua tutaki matou ki tenei ahuatanga me te kino, ka oho te tangata i te po kia mohio ai he aha tena.

He aha me te aha e mahi ai matou i roto i nga papaa raraunga Open Source. Andrey Borodin (Yandex.Cloud)

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

Ka whakahoki te hapori, "Aue, me whakatika."

He kupu whakatairite ngawari taku. Mena kei te haere koe i roto i te hu me te kirikiri kirikiri kei roto, na, i roto i te kaupapa, ka taea e koe te neke - kaore he raruraru. Mena ka hoko koe i nga putu ki nga mano tini tangata, katahi ka hanga putu kaore he onepu. A, ki te haere tetahi o nga kaiwhakamahi o ou hu ki te oma marathon, ka hiahia koe ki te hanga hu tino pai, katahi ka whakatauhia ki o kaiwhakamahi katoa. A ko nga kaiwhakamahi ohorere kei roto i te taiao kapua. He maha nga kaiwhakamahi e whakamahi ana i te tautau i etahi huarahi taketake. Me whakarite tonu koe mo tenei.

He aha me te aha e mahi ai matou i roto i nga papaa raraunga Open Source. Andrey Borodin (Yandex.Cloud)

He aha ta tatou i ako i konei? I akohia e matou tetahi mea ngawari: ko te mea nui ko te whakamarama ki te hapori he raruraru. Mena kua mohio te hapori ki te raru, katahi ka ara ake te whakataetae maori ki te whakaoti rapanga. No te mea e hiahia ana te katoa ki te whakaoti rapanga nui. Ko nga kaihoko katoa, ko nga kaiwhaiwhai katoa e mohio ana ka taea e ratou te takahi i tenei rake, na reira ka hiahia ratou ki te whakakore i a raatau.

Mena kei te mahi koe i tetahi raru, engari karekau he raru ki tetahi engari ko koe anake, engari ka mahi nahanaha koe, ka kiia he raru, katahi ka tino whakaaehia to tono toia. Ka whakaaehia to papaki, ka arotakehia e te hapori nga whakapainga me o tono mo nga whakapainga. I te mutunga o te ra, ka pai ake ta maatau korero mo tetahi atu.

He aha me te aha e mahi ai matou i roto i nga papaa raraunga Open Source. Andrey Borodin (Yandex.Cloud)

He pātengi raraunga whakamere ko Greenplum. He pātengi raraunga tino whakarara i runga i te turanga waehere Postgres, e tino mohio ana ahau.

He aha me te aha e mahi ai matou i roto i nga papaa raraunga Open Source. Andrey Borodin (Yandex.Cloud)

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

He pai nga mahi a Greenplum - taapirihia nga ripanga kua arotauhia. He ripanga enei ka taea e koe te taapiri tere. He poupou, he rarangi ranei.

Engari kaore he kohinga, ara, kaore he mahinga ka taea e koe te whakarite i nga raraunga kei roto i te ripanga kia rite ki te raupapa kei roto i tetahi o nga tohu.

I haere mai nga taangata o te taxi ki ahau ka kii: "Andrey, e mohio ana koe ki a Postgres. Na konei he rite tonu. Hurihia ki te 20 meneti. Tangohia e koe, mahia. I whakaaro ahau ae, e mohio ana ahau ki a Postgres, ka huri mo te 20 meneti - Me mahi tenei.

He aha me te aha e mahi ai matou i roto i nga papaa raraunga Open Source. Andrey Borodin (Yandex.Cloud)

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

Engari kaore, ehara i te 20 meneti, i tuhia e au mo nga marama. I te huihuinga PgConf.Russia, ka whakatata atu ahau ki a Heikki Linakangas mai i Pivotal me te patai: "He raruraru kei tenei? He aha te take karekau he taapiri tepu tepu pai ake?" Ka kii ia: "Ka mau koe i nga raraunga. Ka whakariterite koe, ka whakatika ano koe. He mahi noa." Ahau: "Ae, me tango noa koe me mahi." Ka kii ia: "Ae, me whai ringa noa tatou ki te mahi i tenei." I whakaaro ahau me tino mahi ahau i tenei.

A i etahi marama i muri mai ka tukuna e ahau he tono kume hei whakatinana i tenei mahi. I arotakehia e Pivotal me te hapori tenei tono toia. O te akoranga, i reira nga bug.

He aha me te aha e mahi ai matou i roto i nga papaa raraunga Open Source. Andrey Borodin (Yandex.Cloud)

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

Engari ko te mea tino pai ko te whakakotahitanga o tenei tono kume, ka kitea nga pepeke i Greenplum tonu. Kua kitea e matou ko nga ripanga puranga i etahi wa ka pakaru te tauwhitinga ina rapoi. A he mea tenei me whakatika. Na kei te waahi ia i pa atu ahau. A ko taku tauhohenga maori - pai, me mahi ano ahau.

He aha me te aha e mahi ai matou i roto i nga papaa raraunga Open Source. Andrey Borodin (Yandex.Cloud)

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

I whakatika ahau i tenei bug. I tukuna he tono toia ki nga kaiwhakatikatika. I patua ia.

He aha me te aha e mahi ai matou i roto i nga papaa raraunga Open Source. Andrey Borodin (Yandex.Cloud)

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

I muri mai ka puta ko tenei mahi me whiwhi i roto i te putanga Greenplum mo PostgreSQL 12. Arā, ko te 20-meneti morearea kei te haere tonu me nga mahinga whakamere hou. He rawe ki te pa atu ki nga whanaketanga o naianei, kei te tapahi te hapori i nga ahuatanga hou me nga mea tino nui. Kua tio.

He aha me te aha e mahi ai matou i roto i nga papaa raraunga Open Source. Andrey Borodin (Yandex.Cloud)

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

Engari kaore i mutu i reira. I muri i nga mea katoa, i puta mai me tuhi tuhinga mo enei mea katoa.

I timata ahau ki te tuhi tuhinga. Waimarie, i tae mai nga kaitaataata mai i Pivotal. Ko te reo Ingarihi to ratou reo taketake. Na ratou ahau i awhina i nga tuhinga. Inaa, na ratou ano i tuhi ano taku i tono ki te reo Ingarihi tuturu.

Na konei, te ahua nei, kua mutu te haerenga. A e mohio ana koe he aha te mea i tupu i tera wa? I haere mai nga tangata o te taxi ki ahau, ka mea: "E rua tonu nga haerenga, mo ia meneti 10." A he aha taku korero ki a ratou? I kii ahau inaianei ka tukuna e au he purongo mo runga i te tauine, katahi ka kite i o haerenga, na te mea he mahi whakamere tenei.

He aha me te aha e mahi ai matou i roto i nga papaa raraunga Open Source. Andrey Borodin (Yandex.Cloud)

He aha ta tatou i ako mai i tenei keehi? Na te mea ko te mahi me te puna tuwhera kei te mahi tahi me tetahi tangata motuhake, kei te mahi tahi me te hapori. Na te mea i ia wahanga kotahi i mahi tahi ahau me etahi kaiwhakawhanake, etahi kaiwhakaatu, etahi hacker, etahi tuhinga tuhinga, etahi hoahoa. Kare au i mahi me Greenplum, i mahi tahi ahau me nga tangata huri noa i Greenplum.

Engari! He mea nui ano - he mahi noa. Arā, haere mai koe, inu kawhe, tuhi waehere. Ka mahi nga momo rereke ngawari katoa. Me mahi noa - ka pai! A he mahi whakamere. He tono mo tenei mahi mai i nga kaihoko a Yandex.Cloud, nga kaiwhakamahi o a tatou tautau i roto i Yandex me waho. A ki taku whakaaro ka piki ake te maha o nga kaupapa e uru ai tatou, ka nui ake ano te hohonutanga o to tatou whakaurunga.

Heoi ano. Ka anga whakamua ki nga patai.

He aha me te aha e mahi ai matou i roto i nga papaa raraunga Open Source. Andrey Borodin (Yandex.Cloud)

Wātū pātai

Kia ora! He waahi patai me te whakautu ano taatau. Na i roto i te studio Andrei Borodin. Koinei te tangata nana i korero ki a koe mo te takoha a Yandex.Cloud me Yandex ki te whakatuwhera i te puna. Ko ta matou ripoata inaianei ehara i te mea mo te Kapua, engari i te wa ano kei runga i nga hangarau penei. Mehemea kaore koe i mahi i roto i te Yandex, karekau he ratonga i Yandex.Cloud, no reira ka mihi atu ki a koe. A ko te patai tuatahi mai i te panui: "He aha nga kaupapa i tuhia e koe?"

Ko te punaha taapiri i WAL-G kua tuhia ki te Haere. Koinei tetahi o nga kaupapa hou kua mahia e matou. E 3 noa iho ona tau. A he maha nga wa e pa ana te putunga raraunga ki te pono. A, ko te tikanga he tawhito rawa nga papa korero, a, i te nuinga o te wa ka tuhia ki te C. I timata te kaupapa Postgres mo te 30 tau ki muri. Na ko te C89 te whiriwhiri tika. Na Postgres kua tuhia ki runga. He maha ake nga papaa raraunga hou penei i te ClickHouse ka tuhia ki te C++. Ko nga whanaketanga punaha katoa kei te taha o C me C++.

He patai na ta matou kaiwhakahaere putea, ko wai te kawenga mo nga whakapaunga i Kapua: "He aha i whakapau moni ai a Cloud ki te tautoko i te puna tuwhera?"

He whakautu ngawari mo te kaiwhakahaere putea i konei. Ka mahia e matou tenei kia pai ake a maatau ratonga. He aha nga huarahi ka taea e tatou te pai ake? Ka taea e tatou te mahi i nga mea kia pai ake, kia tere ake, kia pai ake ai nga mahi. Engari mo matou, ko tenei korero e pa ana ki te pono. Hei tauira, i roto i te punaha taapiri ka arotakehia e matou te 100% o nga papanga e pa ana ki a ia. E mohio ana matou he aha te waehere. A he pai ake taatau ki te whakaputa i nga putanga hou ki te whakaputa. Arā, tuatahi, ko te māia, ko te reri mo te whanaketanga me te pono

Ko tetahi atu patai: "He rereke nga whakaritenga a nga kaiwhakamahi o waho e noho ana i Yandex.Cloud mai i nga kaiwhakamahi o roto e noho ana i roto i te Kapua o roto?"

Ko te ahua o te kawenga he rereke. Engari mai i te tirohanga o taku tari, ko nga keehi motuhake me nga mea whakamere katoa ka hangaia i runga i te kawenga kore-paerewa. Ko nga kaiwhakawhanake whai whakaaro, nga kaiwhakawhanake e mahi ohorere ana, ka kitea pea i roto me waho. I runga i tenei ahuatanga, he rite tonu tatou katoa. A, tera pea, ko te mea nui anake i roto i te mahi Yandex mo nga papaa raraunga ko te mea kei roto i a Yandex he whakaakoranga. I etahi wa, ko etahi waahi waatea ka uru ki roto i te atarangi, me nga ratonga Yandex katoa me mahi tonu ahakoa tenei. He rereke iti tenei. Engari he nui te whakawhanaketanga rangahau i te atanga o te papaa raraunga me te puranga whatunga. Ki te kore, ko nga whakaurunga o waho me o roto ka whakaputa i nga tono rite mo nga ahuatanga me nga tono rite mo te whakapai ake i te pono me te mahi.

Te patai ka whai ake: "He pehea to whakaaro mo te nuinga o nga mahi e whakamahia ana e etahi atu Kapua?" E kore matou e whakaingoatia etahi, engari he maha nga kaupapa i mahia i Yandex.Cloud e whakamahia ana i roto i nga kapua o etahi atu.

He hauhautanga tenei. Tuatahi, he tohu tera kua tika ta tatou mahi. Na te reira rakuraku te ego. A ka nui ake te maia i mahia e matou te whakatau tika. I tetahi atu taha, ko te tumanako tenei mo nga wa kei te heke mai ka kawea mai e tenei he whakaaro hou, he tono hou mai i nga kaiwhakamahi tuatoru. Ko te nuinga o nga take i runga i te GitHub he mea hanga na nga kaiwhakahaere punaha takitahi, nga DBA takitahi, nga kaihoahoa takitahi, nga miihini takitahi, engari i etahi wa ka tae mai nga tangata whai wheako nahanaha ki te kii kei roto i te 30% o etahi keehi kei a tatou tenei raru me te whakaaro me pehea te whakaoti. Koinei te mea e tino tumanakohia ana e matou. Kei te tumanako matou ki te tiri i nga wheako ki etahi atu papaahi kapua.

He nui to korero mo te marathon. E mohio ana ahau i oma koe i te marathon i Moscow. Ko te mutunga? I mau i nga taangata mai i te PostgreSQL?

Kao, he tere rawa te oma a Oleg Bartunov. I oti ia i te haora i mua i ahau. I roto i te katoa, kei te harikoa ahau ki te tawhiti o taku haerenga. Ki ahau nei, ko te whakaoti noa he paetae. I te katoa, he mea miharo he maha nga kaiwhaiwhai i roto i te hapori postgres. Ki ahau nei he momo hononga kei waenga i nga hakinakina aerobic me te hiahia mo nga punaha whakahaere.

E kii ana koe kaore he kaiwhai i ClickHouse?

E tino mohio ana ahau kei reira ratou. Ko te ClickHouse he papaa raraunga. Ma te ara, kei te tuhi mai a Oleg ki ahau: "Me haere tatou ki te oma i muri i te ripoata?" He whakaaro nui tenei.

Ko tetahi atu patai mai i te haapurorotanga mai i a Nikita: "He aha koe i whakatika ai i te bug i Greenplum koe, kaore koe e hoatu ki nga taiohi?" He pono, kaore i te tino marama he aha te pepeha me tehea ratonga, engari ko te tikanga tera i korerohia e koe.

Ae, ko te tikanga, ka taea te hoatu ki tetahi. Ko te waehere anake i hurihia e ahau. A he mea maori ki te mahi tonu tonu. Ko te tikanga, he pai te whakaaro ki te tohatoha tohungatanga ki te roopu. Ka tino tohatohahia e matou nga mahi a Greenplum ki nga mema katoa o to maatau wehenga.

I te mea e korero ana tatou mo nga teina, he patai tenei. I whakatau te tangata ki te hanga i te kaupapa tuatahi ki Postgres. He aha tana mahi hei mahi i te mahi tuatahi?

He patai pai tenei: "Kei hea ka tiimata?" I te nuinga o te wa he uaua ki te timata me tetahi mea i roto i te kakano. I roto i te Postgres, hei tauira, he rarangi mahi. Engari ko te mea pono, he pepa tenei o ta ratou i ngana ki te mahi, engari kaore i tutuki. He mea uaua enei. A ko te tikanga ka kitea e koe etahi taputapu i roto i te puunaha rauwiringa kaiao, etahi toronga ka taea te whakapai ake, ka iti ake te aro o nga kaiwhakawhanake kernel. A, no reira, he maha atu nga waahi mo te tipu ki reira. I te Google Summer of code programme, ia tau ka tukuna e te hapori postgres te maha o nga kaupapa rereke ka taea te whakatutuki. I tenei tau, ki taku whakaaro, e toru nga tauira. Ko tetahi i tuhi i roto i te WAL-G mo nga kaupapa nui mo Yandex. I Greenplum, he maamaa ake nga mea katoa i te hapori o Postgres, na te mea he pai te mahi a nga kaiwhaiwhai Greenplum i nga tono toia ka tiimata tonu te arotake. Ko te tuku papaki ki a Postgres he marama noa iho, engari ka tae mai a Greenplum i te ra kotahi ka kite i taau mahi. Ko tetahi atu mea me whakaoti e Greenplum nga raru o naianei. Kaore i te whakamahia whanuitia a Greenplum, no reira he uaua te rapu i to raru. Ko te tuatahi, me whakaoti rapanga, o te akoranga.

Source: will.com