He aha a no ke aha mākou e hana ai i nā waihona Open Source. Andrey Borodin (Yandex.Cloud)

He aha a no ke aha mākou e hana ai i nā waihona Open Source. Andrey Borodin (Yandex.Cloud)

E nānā ʻia ka hāʻawi ʻana o Yandex i nā ʻikepili ma lalo nei.

  • KaomiHouse
  • Odyssey
  • Hoʻihoʻi hou i kahi manawa (WAL-G)
  • PostgreSQL (me nā logerrors, Amcheck, heapcheck)
  • Greenplum

Video:

Aloha honua! ʻO Andrey Borodin koʻu inoa. A ʻo kaʻu e hana ai ma Yandex.Cloud e hoʻomohala i nā ʻikepili pili pili i ka makemake o nā mea kūʻai aku Yandex.Cloud a me Yandex.Cloud.

He aha a no ke aha mākou e hana ai i nā waihona Open Source. Andrey Borodin (Yandex.Cloud)

Ma kēia kamaʻilio ʻana, e kamaʻilio mākou e pili ana i nā pilikia e kū nei i nā ʻikepili wehe ma ka nui. No ke aha he mea nui? No ka mea, liʻiliʻi nā pilikia liʻiliʻi e like me ka makika, a laila lilo i ʻelepani. Nui lākou ke loaʻa iā ʻoe nā pūʻulu he nui.

Akā ʻaʻole ia ka mea nui. Hiki mai nā mea kupanaha. ʻO nā mea i hana ʻia i loko o hoʻokahi miliona mau hihia. A i loko o kahi ao, pono ʻoe e mākaukau no kēlā, no ka mea, hiki ke ʻike ʻia nā mea kupaianaha ke loaʻa kekahi mea ma ka pālākiō.

Akā! He aha ka pōmaikaʻi o nā waihona waihona? ʻO ka ʻoiaʻiʻo, loaʻa iā ʻoe kahi manawa theoretical e hana i kekahi pilikia. Loaʻa iā ʻoe ke code kumu, loaʻa iā ʻoe ka ʻike polokalamu. Hoʻohui mākou a hana.

He aha a no ke aha mākou e hana ai i nā waihona Open Source. Andrey Borodin (Yandex.Cloud)

He aha nā ala e hana ai i ka polokalamu open source?

  • ʻO ke ala maʻalahi loa ka hoʻohana ʻana i ka polokalamu. Inā ʻoe e hoʻohana i nā protocols, inā ʻoe e hoʻohana i nā maʻamau, inā ʻoe e hoʻohana i nā formats, inā ʻoe e kākau i nā nīnau ma ka polokalamu open source, a laila ua kākoʻo ʻoe iā ia.
  • Ke hoʻonui nei ʻoe i kona kaiaola. Hoʻonui ʻoe i ka ʻike mua ʻana o kahi bug. Hoʻonuiʻoe i ka hilinaʻi o kēia pūnaewele. Hoʻonuiʻoe i ka loaʻa o nā mea hoʻomohala ma ka mākeke. Hoʻomaikaʻi ʻoe i kēia polokalamu. He mea hāʻawi aku ʻoe inā ʻoe i hoʻomaka i ka loaʻa ʻana o ke ʻano a hoʻopili i kekahi mea ma laila.
  • ʻO kahi ala ʻē aʻe e hoʻomaopopo ʻia ʻo ke kākoʻo ʻana i nā polokalamu open source. No ka laʻana, ʻo ka polokalamu kaulana ʻo Google Summer of Code, i ka wā e uku ai ʻo Google i kahi helu nui o nā haumāna mai nā wahi āpau o ka honua i hoʻomaopopo ʻia i ke kālā e hoʻomohala ai lākou i nā papahana polokalamu wehe e hoʻokō i nā koi laikini.
  • He ala hoihoi loa kēia no ka mea e hiki ai i ka polokalamu ke hoʻololi me ka ʻole o ka hoʻohuli ʻana i ka manaʻo mai ke kaiāulu. ʻAʻole ʻōlelo ʻo Google, ma ke ʻano he ʻenehana nui, makemake mākou i kēia hiʻohiʻona, makemake mākou e hoʻoponopono i kēia bug a ma laila mākou e ʻeli ai. 'Ōleloʻo Google: "E hana i kāu hana. E hoʻomau i ka hana e like me kāu i hana ai a e maikaʻi nā mea a pau. "
  • ʻO ke ala hou aʻe i ke komo ʻana i ka open source ʻo ke komo ʻana. Ke pilikia ʻoe i ka polokalamu open source a aia nā mea hoʻomohala, hoʻomaka kāu mea hoʻomohala e hoʻoponopono i nā pilikia. Hoʻomaka lākou e hoʻomaikaʻi i kāu ʻoihana, ʻoi aku ka wikiwiki a me ka hilinaʻi o kāu mau papahana.

He aha a no ke aha mākou e hana ai i nā waihona Open Source. Andrey Borodin (Yandex.Cloud)

ʻO kekahi o nā papahana Yandex kaulana loa ma ke kahua o ka polokalamu open source ʻo ClickHouse. ʻO kēia kahi waihona i hānau ʻia ma ke ʻano he pane i nā pilikia e kū nei iā Yandex.Metrica.

A ma ke ʻano he waihona, ua hana ʻia ma ka open source i mea e hana ai i kahi kaiaola a hoʻomohala pū me nā mea hoʻomohala ʻē aʻe (ʻaʻole wale i loko o Yandex). A i kēia manawa he papahana nui kēia e komo ai nā hui like ʻole.

He aha a no ke aha mākou e hana ai i nā waihona Open Source. Andrey Borodin (Yandex.Cloud)

Ma Yandex.Cloud, ua hana mākou i ClickHouse ma luna o Yandex Object Storage, ʻo ia hoʻi ma luna o ka waihona kapuaʻi.

He aha a no ke aha mākou e hana ai i nā waihona Open Source. Andrey Borodin (Yandex.Cloud)

No ke aha he mea nui kēia i ke ao? No ka mea, hana kekahi waihona ma kēia huinakolu, ma kēia pyramid, ma kēia hierarchy o nā ʻano hoʻomanaʻo. Loaʻa iā ʻoe nā papa inoa wikiwiki akā liʻiliʻi a me nā SSD nui akā lohi, paʻa paʻa a me nā mea poloka ʻē aʻe. A inā maikaʻi ʻoe ma ka piko o ka pyramid, a laila loaʻa iā ʻoe kahi waihona wikiwiki. inā maikaʻi ʻoe ma ka lalo o kēia pyramid, a laila loaʻa iā ʻoe kahi waihona pākēneka. A ma kēia mea, ʻo ka hoʻohui ʻana i kahi papa ʻē aʻe mai lalo he ala kūpono e hoʻonui ai i ka scalability o ka waihona.

He aha a no ke aha mākou e hana ai i nā waihona Open Source. Andrey Borodin (Yandex.Cloud)

Pehea e hiki ai ke hana? He mea nui kēia ma kēia hōʻike.

  • Hiki iā mākou ke hoʻokō i ka ClickHouse ma luna o MDS. ʻO MDS kahi kikowaena kikowaena Yandex cloud storage. ʻOi aku ka paʻakikī ma mua o ka protocol S3 maʻamau, akā ʻoi aku ka maikaʻi no kahi mea poloka. ʻOi aku ka maikaʻi no ka hoʻopaʻa ʻana i ka ʻikepili. Pono ia i nā polokalamu hou aʻe. E hoʻolālā nā mea papahana, maikaʻi nō, hoihoi.
  • ʻO S3 kahi ala maʻamau e maʻalahi ai ka maʻalahi ma ke kumukūʻai o ka liʻiliʻi o ka hoʻololi ʻana i kekahi mau ʻano hana.

Ma keʻano maʻamau, makemake mākou e hāʻawi i ka hana i ka kaiaola ClickHouse holoʻokoʻa a hana i ka hana e pono ai i loko o Yandex.Cloud, ua hoʻoholo mākou e hōʻoia i ka loaʻa ʻana o ka pōmaikaʻi o ka hui ClickHouse āpau. Ua hoʻokō mākou i ClickHouse ma luna o S3, ʻaʻole ClickHouse ma MDS. A he hana nui kēia.

He aha a no ke aha mākou e hana ai i nā waihona Open Source. Andrey Borodin (Yandex.Cloud)

Nā Manaʻo:

https://github.com/ClickHouse/ClickHouse/pull/7946 "Papa hoʻokaʻawale ʻōnaehana waihona"
https://github.com/ClickHouse/ClickHouse/pull/8011 "Hoʻohui AWS SDK S3"
https://github.com/ClickHouse/ClickHouse/pull/8649 "Ka hoʻokō kumu o ka pilina IDisk no S3"
https://github.com/ClickHouse/ClickHouse/pull/8356 "Ka hoʻohui ʻana o nā mīkini mālama lāʻau me ka interface IDisk"
https://github.com/ClickHouse/ClickHouse/pull/8862 "Ke kākoʻo ʻenekini log no S3 a me SeekableReadBuffer"
https://github.com/ClickHouse/ClickHouse/pull/9128 "Kākoʻo S3 Storage Stripe Log"
https://github.com/ClickHouse/ClickHouse/pull/9415 "Storage MergeTree kākoʻo mua no S3"
https://github.com/ClickHouse/ClickHouse/pull/9646 "MergeTree kākoʻo piha no S3"
https://github.com/ClickHouse/ClickHouse/pull/10126 "Kākoʻo ReplicatedMergeTree ma luna o S3"
https://github.com/ClickHouse/ClickHouse/pull/11134 "Hoʻohui i nā hōʻoia paʻamau a me nā poʻomanaʻo maʻamau no kahi mālama s3"
https://github.com/ClickHouse/ClickHouse/pull/10576 "S3 me ka hoʻonohonoho proxy dynamic"
https://github.com/ClickHouse/ClickHouse/pull/10744 "S3 me ka mea hoʻoholo koho"

He papa inoa noi huki kēia no ka hoʻokō ʻana i kahi ʻōnaehana file virtual ma ClickHouse. He helu nui kēia o nā noi huki.

He aha a no ke aha mākou e hana ai i nā waihona Open Source. Andrey Borodin (Yandex.Cloud)

Nā Manaʻo:

https://github.com/ClickHouse/ClickHouse/pull/9760 "Hoʻokō maikaʻi loa ʻo DiskS3 hardlinks"
https://github.com/ClickHouse/ClickHouse/pull/11522 "Ka mea kūʻai aku S3 HTTP - Hōʻalo i ke kope ʻana i ke kahawai pane i ka hoʻomanaʻo"
https://github.com/ClickHouse/ClickHouse/pull/11561 “E hōʻalo i ke kope ʻana i ke kahawai pane holoʻokoʻa i ka hoʻomanaʻo ma S3 HTTP
mea kūʻai aku"
https://github.com/ClickHouse/ClickHouse/pull/13076 "Ka hiki ke hūnā i ka hōʻailona a me ka kuhikuhi ʻana i nā faila no S3 disk"
https://github.com/ClickHouse/ClickHouse/pull/13459 "E hoʻoneʻe i nā ʻāpana mai DiskLocal i DiskS3 i ka like"

Akā ʻaʻole i pau ka hana ma laila. Ma hope o ka hana ʻia ʻana o ka hiʻohiʻona, koi ʻia kekahi mau hana hou i mea e hoʻomaikaʻi ai i kēia hana.

He aha a no ke aha mākou e hana ai i nā waihona Open Source. Andrey Borodin (Yandex.Cloud)

Nā Manaʻo:

https://github.com/ClickHouse/ClickHouse/pull/12638 "Hoʻohui i nā hanana SelectedRows a me SelectedBytes"
https://github.com/ClickHouse/ClickHouse/pull/12464 "Hoʻohui i nā hanana profileing mai ke noi S3 i system.events"
https://github.com/ClickHouse/ClickHouse/pull/13028 "Hoʻohui i ka QueryTimeMicroseconds, SelectQueryTimeMicroseconds a me InsertQueryTimeMicroseconds"

A laila pono ia e hoʻomaʻamaʻa, hoʻonohonoho i ka nānā ʻana a hiki ke hoʻokele.

A ua hana ʻia kēia mau mea i loaʻa i ke kaiāulu holoʻokoʻa, ka kaiaola ClickHouse holoʻokoʻa, ka hopena o kēia hana.

He aha a no ke aha mākou e hana ai i nā waihona Open Source. Andrey Borodin (Yandex.Cloud)

E neʻe kāua i nā ʻikepili transactional, i nā ʻikepili OLTP, kahi kokoke iaʻu iho.

He aha a no ke aha mākou e hana ai i nā waihona Open Source. Andrey Borodin (Yandex.Cloud)

ʻO kēia ka māhele hoʻomohala DBMS open source. Ke hana nei kēia poʻe i ke kilokilo alanui no ka hoʻomaikaʻi ʻana i nā ʻikepili hāmama transactional.

He aha a no ke aha mākou e hana ai i nā waihona Open Source. Andrey Borodin (Yandex.Cloud)

ʻO kekahi o nā papahana, e hoʻohana ana i kahi hiʻohiʻona e hiki ai iā mākou ke kamaʻilio e pili ana i ke ʻano a me kā mākou hana, ʻo ia ka Connection Pooler ma Postgres.

ʻO Postgres kahi waihona kaʻina hana. ʻO ia ke ʻano he liʻiliʻi loa nā pilina pūnaewele e hiki ai ke mālama i nā kālepa.

Ma ka ʻaoʻao ʻē aʻe, i loko o kahi ʻano ao, kahi kūlana maʻamau i ka wā e hele mai ai kahi kaukani pili i hoʻokahi puʻupuʻu i ka manawa hoʻokahi. A ʻo ka hana a ka pooler pili e hoʻopili i hoʻokahi kaukani pili i kahi helu liʻiliʻi o nā pili kikowaena.

He aha a no ke aha mākou e hana ai i nā waihona Open Source. Andrey Borodin (Yandex.Cloud)

Hiki iā mākou ke ʻōlelo ʻo ka pooler pili ka mea kelepona nāna e hoʻonohonoho hou i nā bytes i hiki ai lākou i ka waihona.

ʻO ka mea pōʻino, ʻaʻohe huaʻōlelo Lūkini maikaʻi no ka pooler pili. I kekahi manawa ua kapa ʻia ʻo ia ʻo nā pilina multiplexer. Inā ʻike ʻoe i ka mea e kapa ai i ka pooler pili, a laila e ʻoluʻolu e haʻi mai iaʻu, e hauʻoli nui wau e ʻōlelo i ka ʻōlelo loea Lūkini pololei.

He aha a no ke aha mākou e hana ai i nā waihona Open Source. Andrey Borodin (Yandex.Cloud)

https://pgconf.ru/2017/92899

Ua noiʻi mākou i nā poolers pili i kūpono no kahi pūʻulu postgres hoʻokele. A ʻo PgBouncer ke koho maikaʻi loa no mākou. Akā ua hālāwai mākou i nā pilikia me PgBouncer. He mau makahiki i hala aku nei, ua hāʻawi ʻo Volodya Borodin i nā hōʻike e hoʻohana mākou iā PgBouncer, makemake mākou i nā mea āpau, akā aia nā nuances, aia kekahi mea e hana ai.

He aha a no ke aha mākou e hana ai i nā waihona Open Source. Andrey Borodin (Yandex.Cloud)

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

A hana mākou. Ua hoʻoponopono mākou i nā pilikia i loaʻa iā mākou, hoʻopaʻa mākou iā Bouncer, a hoʻāʻo e pana i nā noi huki i luna. Akā paʻakikī ka hana ʻana i ka threading hoʻokahi.

Pono mākou e hōʻiliʻili i nā cascades mai nā Bouncers patched. Ke loaʻa iā mākou nā Bouncers hoʻokahi threaded, ua hoʻololi ʻia nā pilina ma ka papa luna i ka papa o loko o Bouncers. He ʻōnaehana hoʻokele maikaʻi ʻole kēia a paʻakikī ke kūkulu a hoʻonui i hope.

He aha a no ke aha mākou e hana ai i nā waihona Open Source. Andrey Borodin (Yandex.Cloud)

Ua hiki mai mākou i ka hopena ua hana mākou i kā mākou pooler pili ponoʻī, i kapa ʻia ʻo Odyssey. Ua kākau mākou mai ka ʻōpala.

He aha a no ke aha mākou e hana ai i nā waihona Open Source. Andrey Borodin (Yandex.Cloud)

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

I ka makahiki 2019, i ka hālāwai PgCon, ua hōʻike au i kēia pooler i ke kaiāulu hoʻomohala. I kēia manawa ua emi iki mākou ma mua o 2 mau hōkū ma GitHub, ʻo ia hoʻi ke ola nei ka papahana, kaulana ka papahana.

A inā ʻoe e hana i kahi puʻupuʻu Postgres ma Yandex.Cloud, a laila e lilo ia i puʻupuʻu me ka Odyssey i kūkulu ʻia, i hoʻonohonoho hou ʻia i ka wā e hoʻonui ai i ka pūpū i hope a i ʻole.

He aha a no ke aha mākou e hana ai i nā waihona Open Source. Andrey Borodin (Yandex.Cloud)

He aha kā mākou i aʻo ai mai kēia papahana? ʻO ka hoʻokuʻu ʻana i kahi papahana hoʻokūkū he hana koʻikoʻi ia, he ana koʻikoʻi ia ke ʻōlelo mākou aia nā pilikia ʻaʻole i hoʻoponopono koke ʻia, ʻaʻole i hoʻoholo ʻia i nā manawa kūpono e kūpono iā mākou. Akā, he ana kūpono kēia.

Ua hoʻomaka ʻo PgBouncer e hoʻomohala wikiwiki.

A i kēia manawa ua puka mai nā papahana ʻē aʻe. No ka laʻana, pgagroal, i hoʻomohala ʻia e nā mea hoʻomohala Red Hat. Ke alualu nei lākou i nā pahuhopu like a hoʻokō i nā manaʻo like, akā, ʻoiaʻiʻo, me kā lākou mau kikoʻī, kahi kokoke i nā mea hoʻomohala pgagroal.

He aha a no ke aha mākou e hana ai i nā waihona Open Source. Andrey Borodin (Yandex.Cloud)

ʻO kekahi hihia o ka hana ʻana me ke kaiāulu postgres e hoʻihoʻi i kahi manawa. ʻO kēia ka hoʻihoʻi ma hope o ka hāʻule ʻana, ʻo ia ka hoʻihoʻi ʻana mai kahi waihona.

He aha a no ke aha mākou e hana ai i nā waihona Open Source. Andrey Borodin (Yandex.Cloud)

Nui nā waihona a ʻokoʻa lākou a pau. Loaʻa i kēlā me kēia mea kūʻai Postgres kāna hoʻoponopono hoʻihoʻi ponoʻī.

Inā lawe ʻoe i nā ʻōnaehana hoʻihoʻi a pau, e hana i kahi matrix hiʻona a helu ʻakaʻaka i ka mea hoʻoholo i kēia matrix, ʻaʻole ia. He aha ke ʻano o kēia? He aha inā ʻoe e lawe i kahi faila hoʻihoʻi kikoʻī, a laila ʻaʻole hiki ke hōʻuluʻulu ʻia mai nā ʻāpana o nā mea ʻē aʻe. He kū hoʻokahi i ka hoʻokō ʻana, ʻokoʻa i kāna kumu, ʻokoʻa i nā manaʻo i hoʻokomo ʻia i loko. A he kiko'ī lākou a pau.

He aha a no ke aha mākou e hana ai i nā waihona Open Source. Andrey Borodin (Yandex.Cloud)

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

ʻOiai mākou e hana ana i kēia pilikia, ua hoʻokumu ʻo CitusData i ka papahana WAL-G. He ʻōnaehana kākoʻo kēia i hana ʻia me ka maka i ke ao ao. I kēia manawa ʻo CitusData kahi ʻāpana o Microsoft. A i kēlā manawa, makemake nui mākou i nā manaʻo i waiho ʻia ma nā puka mua o WAL-G. A hoʻomaka mākou e hāʻawi i kēia papahana.

He aha a no ke aha mākou e hana ai i nā waihona Open Source. Andrey Borodin (Yandex.Cloud)

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

I kēia manawa, nui nā mea hoʻomohala i kēia papahana, akā ʻo nā mea kōkua 10 kiʻekiʻe i WAL-G he 6 Yandexoids. Lawe mākou i nā manaʻo he nui i laila. A, ʻoiaʻiʻo, ua hoʻokō mākou iā lākou iho, hoʻāʻo iā mākou iho, ʻōwili iā lākou i loko o ka hana ʻana iā mākou iho, hoʻohana mākou iā mākou iho, ʻo mākou iho e noʻonoʻo i kahi e neʻe ai aʻe, ʻoiai e launa pū ana me ke kaiāulu WAL-G nui.

He aha a no ke aha mākou e hana ai i nā waihona Open Source. Andrey Borodin (Yandex.Cloud)

A mai ko mākou manaʻo, i kēia manawa ua lilo kēia ʻōnaehana hoʻihoʻi, me ka noʻonoʻo ʻana i kā mākou hoʻoikaika ʻana, ua lilo i mea maikaʻi loa no kahi ʻano ao. ʻO kēia ke kumukūʻai maikaʻi loa no ke kākoʻo ʻana iā Postgres i ke ao.

He aha ka manaʻo? Ke hāpai nei mākou i kahi manaʻo nui loa: pono e paʻa ke kākoʻo, maʻalahi e hana a me ka wikiwiki e hoʻihoʻi.

No ke aha he mea maʻalahi ka hana? Inā ʻaʻohe mea i haki, ʻaʻole pono ʻoe e ʻike he waihona kāu. Hana maikaʻi nā mea a pau, hoʻopau ʻoe i ka CPU liʻiliʻi e like me ka hiki, hoʻohana ʻoe i ka liʻiliʻi o kāu kumuwaiwai disk e like me ka hiki, a hoʻouna ʻoe i nā bytes liʻiliʻi i ka pūnaewele i hiki ʻole ke hoʻopilikia i ka uku o kāu mau lawelawe waiwai.

A i ka wā i haki ai nā mea a pau, no ka laʻana, ua hoʻokuʻu ka luna i ka ʻikepili, ua hewa kekahi mea, a pono ʻoe e hoʻi i ka wā i hala, e hoʻihoʻi ʻoe me nā kālā āpau, no ka mea makemake ʻoe i kāu ʻikepili e hoʻi koke a paʻa.

A hoʻolaha mākou i kēia manaʻo maʻalahi. A, me he mea lā, ua hiki iā mākou ke hoʻokō.

He aha a no ke aha mākou e hana ai i nā waihona Open Source. Andrey Borodin (Yandex.Cloud)

Akā ʻaʻole ʻo ia wale nō. Ua makemake mākou i hoʻokahi mea liʻiliʻi. Ua makemake mākou i nā ʻikepili like ʻole. ʻAʻole hoʻohana nā mea kūʻai a pau iā Postgres. Hoʻohana kekahi poʻe i ka MySQL, MongoDB. Ma ke kaiāulu, ua kākoʻo nā mea hoʻomohala ʻē aʻe i ka FoundationDB. A ke hoʻonui mau nei kēia papa inoa.

Makemake ke kaiāulu i ka manaʻo o ka waihona ʻikepili e holo ʻia ma kahi ʻano hoʻokele i ke ao. A mālama nā mea hoʻomohala i kā lākou ʻikepili, hiki ke kākoʻo like ʻia me Postgres me kā mākou ʻōnaehana kākoʻo.

He aha a no ke aha mākou e hana ai i nā waihona Open Source. Andrey Borodin (Yandex.Cloud)

He aha kā mākou i aʻo ai mai kēia moʻolelo? ʻO kā mākou huahana, ma ke ʻano he mahele hoʻomohala, ʻaʻole ia he laina code, ʻaʻole ia he ʻōlelo, ʻaʻole ia he faila. ʻAʻole kā mākou huahana i nā noi huki. ʻO ia nā manaʻo a mākou e hōʻike nei i ke kaiāulu. ʻO kēia ka ʻike loea a me ka neʻe ʻana o ka ʻenehana i kahi kaiapuni ao.

He aha a no ke aha mākou e hana ai i nā waihona Open Source. Andrey Borodin (Yandex.Cloud)

Aia kahi waihona e like me Postgres. Makemake nui au i ka Postgres core. Hoʻohana au i ka manawa nui e hoʻomohala i ka Postgres core me ke kaiāulu.

He aha a no ke aha mākou e hana ai i nā waihona Open Source. Andrey Borodin (Yandex.Cloud)

Eia naʻe, pono e ʻōlelo ʻia aia ʻo Yandex.Cloud i kahi hoʻonohonoho kūloko o nā ʻikepili hoʻokele. A ua hoʻomaka i ka wā lōʻihi ma Yandex.Mail. Ua hōʻiliʻili ʻia ka ʻike i alakaʻi ʻia i ka hoʻokele ʻana i nā Postgres i ka wā i makemake ai ka leka uila e neʻe i Postgres.

Loaʻa i ka leka nā koi like me ke ao. Pono ʻoe e hiki ke hoʻonui i ka ulu ʻana o ka exponential i manaʻo ʻole ʻia i kēlā me kēia manawa o kāu ʻikepili. A ua loaʻa i ka leka uila me kahi mau haneli miliona o nā pahu leta o kahi helu nui o nā mea hoʻohana e hana mau i nā noi he nui.

A he paʻakikī koʻikoʻi kēia no ka hui e hoʻomohala nei i Postgres. I kēlā manawa, ua hōʻike ʻia nā pilikia i loaʻa iā mākou i ke kaiāulu. A ua hoʻoponopono ʻia kēia mau pilikia, a ua hoʻoponopono ʻia e ke kaiāulu ma kekahi mau wahi a hiki i ke kiʻekiʻe o ke kākoʻo uku no kekahi mau ʻikepili ʻē aʻe a ʻoi aku ka maikaʻi. ʻO ia hoʻi, hiki iā ʻoe ke hoʻouna i kahi leka iā PgSQL hacker a loaʻa kahi pane i loko o 40 mau minuke. Manaʻo paha ke kākoʻo i uku ʻia i kekahi mau ʻikepili he ʻoi aku ka nui o nā mea ma mua o kāu bug.

I kēia manawa, ʻo ka hoʻokomo ʻana o Postgres kekahi mau petabytes o ka ʻikepili. He mau miliona noi i kēlā me kēia kekona. He mau kaukani puʻupuʻu kēia. He nui loa ia.

Akā aia kekahi nuance. ʻAʻole ia e ola ma luna o nā kaila pūnaewele nani, akā ma nā lako maʻalahi. A he wahi hoʻāʻo kūikawā no nā mea hou hoihoi.

He aha a no ke aha mākou e hana ai i nā waihona Open Source. Andrey Borodin (Yandex.Cloud)

A i kekahi manawa i loko o ka hoʻāʻo ʻana ua loaʻa iā mākou kahi leka e hōʻike ana ua uhaki ʻia nā invariants o loko o nā papa kuhikuhi waihona.

ʻO ka invariant kekahi ʻano pilina a mākou e manaʻo ai e paʻa mau.

He kūlana koʻikoʻi loa no mākou. Hōʻike ia ua nalowale kekahi mau ʻikepili. A ʻo ka nalowale ʻana o ka ʻikepili he mea pōʻino.

ʻO ka manaʻo maʻamau a mākou e hahai ai i nā ʻikepili mālama ʻia ʻo ia me ka hoʻoikaika ʻana, paʻakikī ke nalowale ʻikepili. ʻOiai inā e wehe ʻoe iā lākou, pono ʻoe e haʻalele i ko lākou haʻalele ʻana no ka manawa lōʻihi. ʻO ka palekana ʻikepili kahi hoʻomana a mākou e hahai pono ai.

A eia ke ala mai nei kahi kūlana e hōʻike ana aia paha kahi kūlana i mākaukau ʻole ai mākou. A hoʻomaka mākou e hoʻomākaukau no kēia kūlana.

He aha a no ke aha mākou e hana ai i nā waihona Open Source. Andrey Borodin (Yandex.Cloud)

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

ʻO ka mea mua a mākou i hana ai, ʻo ia ke kanu ʻana i nā lāʻau mai kēia mau kaukani puʻupuʻu. Ua ʻike mākou i kahi o nā puʻupuʻu i loaʻa ma nā disks me ka firmware pilikia e nalowale ana i nā ʻaoʻao ʻikepili. Hoʻopaʻa ʻia nā code data Postgres āpau. A hōʻailona mākou i kēlā mau memo e hōʻike ana i ka uhaki ʻana i nā invariants kūloko me ke code i hoʻolālā ʻia e ʻike i ka palaho ʻikepili.

Ua ʻae ʻia kēia pāpaʻi e ke kaiāulu me ka ʻole o ka kūkākūkā nui ʻana, no ka mea, i kēlā me kēia hihia kikoʻī ua maopopo ua loaʻa kekahi mea ʻino a pono e hōʻike ʻia i ka lāʻau.

He aha a no ke aha mākou e hana ai i nā waihona Open Source. Andrey Borodin (Yandex.Cloud)

Ma hope o kēia, ua hōʻea mākou i kahi e nānā ai mākou i ka nānā ʻana i nā lāʻau. A inā he mau ʻōlelo kānalua, hoʻāla ʻo ia i ka luna dute, a hoʻoponopono ka luna dute.

Akā! He hana maʻalahi ka nānā ʻana i nā lāʻau ma ka pūʻulu hoʻokahi a ʻoi aku ka nui o ke kumukūʻai no hoʻokahi kaukani puʻupuʻu.

Ua kākau mākou i kahi hoʻonui i kapa ʻia Logerrors. Hoʻokumu ia i kahi ʻike o ka waihona kahi e hiki ai iā ʻoe ke koho maʻalahi a me ka wikiwiki i nā helu no nā hewa i hala. A inā pono mākou e hoʻāla i ka luna hana, a laila e ʻike mākou e pili ana i kēia me ka ʻole o ka nānā ʻana i nā faila gigabyte, akā ma ka unuhi ʻana i kekahi mau bytes mai ka papa hash.

Ua lawe ʻia kēia hoʻonui, no ka laʻana, i ka waihona no CentOS. Inā makemake ʻoe e hoʻohana, hiki iā ʻoe ke hoʻouka iā ʻoe iho. ʻOiaʻiʻo, he open source.

He aha a no ke aha mākou e hana ai i nā waihona Open Source. Andrey Borodin (Yandex.Cloud)

https://www.postgresql.org/message-id/flat/[pale ʻia ka leka uila]

Akā ʻaʻole ʻo ia wale nō. Ua hoʻomaka mākou e hoʻohana iā Amcheck, kahi hoʻonui i kūkulu ʻia e ke kaiāulu, e ʻike i nā hewa like ʻole i nā kuhikuhi.

A ua ʻike mākou inā ʻoe e hoʻohana iā ia ma ka pālākiō, aia nā pōpoki. Hoʻomaka mākou e hoʻoponopono iā lākou. Ua ʻae ʻia kā mākou hoʻoponopono.

He aha a no ke aha mākou e hana ai i nā waihona Open Source. Andrey Borodin (Yandex.Cloud)

https://www.postgresql.org/message-id/flat/[pale ʻia ka leka uila]

Ua ʻike mākou ʻaʻole hiki i kēia hoʻonui ke hoʻopaʻa ʻia i nā index GiST & GIT. Ua kākoʻo mākou iā lākou. Akā ke kūkākūkā nei kēia kākoʻo e ke kaiāulu, no ka mea, he hana hou kēia a he nui nā kikoʻī ma laila.

He aha a no ke aha mākou e hana ai i nā waihona Open Source. Andrey Borodin (Yandex.Cloud)

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

A ua ʻike nō hoʻi mākou i ka nānā ʻana i nā indexes no ka uhai ʻana i ke alakaʻi replication, ma ka haku, hana maikaʻi nā mea a pau, akā ma nā replicas, ma ka mea hahai, ʻaʻole maikaʻi loa ka ʻimi ʻana i ka palaho. ʻAʻole nānā ʻia nā ʻano like ʻole a pau. A ua hoʻopilikia nui mākou iā mākou. A ua hoʻohana mākou i hoʻokahi makahiki a me ka hapa e kamaʻilio me ke kaiāulu i mea e hiki ai i kēia loiloi ma nā replicas.

Ua kākau mākou i nā code e pono e hahai i nā mea hiki ... nā protocols. Ua kūkākūkā mākou i kēia pāpili no kekahi manawa me Peter Gaghan mai Crunchy Data. Pono ʻo ia e hoʻololi iki i ka B-lāʻau ma Postgres i mea e ʻae ai i kēia pā. Ua ʻae ʻia ʻo ia. A ʻo ka nānā ʻana i nā indexes ma nā replicas ua lilo i mea kūpono e ʻike ai i nā hewa a mākou i hālāwai ai. ʻO ia hoʻi, ʻo ia nā hewa i hiki ke hana ʻia e nā hewa i ka firmware disk, nā pōpoki ma Postgres, nā pōpoki i ka kernel Linux, a me nā pilikia hardware. He papa inoa nui o nā kumu pilikia a mākou e hoʻomākaukau nei.

He aha a no ke aha mākou e hana ai i nā waihona Open Source. Andrey Borodin (Yandex.Cloud)

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

Ma waho aʻe o nā indexes, aia kekahi ʻāpana e like me ka puʻu, ʻo ia hoʻi kahi i mālama ʻia ai ka ʻikepili. A ʻaʻole nui nā invariants i hiki ke nānā ʻia.

Loaʻa iā mākou kahi hoʻonui i kapa ʻia ʻo Heapcheck. Ua hoʻomaka mākou e hoʻomohala. A i ka like, me mākou, ua hoʻomaka ka hui ʻo EnterpriseDB e kākau i kahi module, i kapa ʻia lākou ʻo Heapcheck ma ke ʻano like. ʻO mākou wale nō i kapa iā ia ʻo PgHeapcheck, a ua kapa ʻia lākou he Heapcheck. Loaʻa iā lākou me nā hana like, kahi pūlima ʻokoʻa, akā me nā manaʻo like. Ua ʻoi aku ka maikaʻi o kā lākou hoʻokō ʻana ma kekahi mau wahi. A ua hoʻolaha lākou ma ka open source ma mua.

A i kēia manawa ke hoʻomohala nei mākou i kā lākou hoʻonui, no ka mea, ʻaʻole ia ko lākou hoʻonui ʻana, akā ʻo ka hoʻonui ʻana o ke kaiāulu. A i ka wā e hiki mai ana, he ʻāpana kēia o ka kernel e hoʻolako ʻia i nā mea a pau i hiki iā lākou ke ʻike mua i nā pilikia e hiki mai ana.

He aha a no ke aha mākou e hana ai i nā waihona Open Source. Andrey Borodin (Yandex.Cloud)

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

I kekahi mau wahi, ua hiki mai mākou i ka hopena i loaʻa iā mākou nā hopena maikaʻi ʻole i kā mākou ʻōnaehana nānā. No ka laʻana, ka ʻōnaehana 1C. Ke hoʻohana nei i kahi waihona, kākau ʻo Postgres i kekahi manawa i ka ʻikepili i hiki iā ia ke heluhelu, akā ʻaʻole hiki iā pg_dump ke heluhelu.

Ua like kēia kūlana me ka palaho i kā mākou ʻōnaehana ʻike pilikia. Ua ala mai ka luna dute. Nānā ka luna hana i ka mea e hana nei. Ma hope o kekahi manawa, hele mai kahi mea kūʻai aku a ʻōlelo mai he pilikia koʻu. Ua wehewehe ke kahu i ka pilikia. Akā aia ka pilikia ma ka Postgres core.

Ua loaʻa iaʻu kahi kūkākūkā e pili ana i kēia hiʻohiʻona. A kākau ʻo ia ua hālāwai mākou i kēia hiʻohiʻona a he mea ʻoluʻolu ʻole, ala ke kanaka i ka pō e ʻike i ke ʻano.

He aha a no ke aha mākou e hana ai i nā waihona Open Source. Andrey Borodin (Yandex.Cloud)

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

Pane ke kaiāulu, "ʻAe, pono mākou e hoʻoponopono."

He hoʻohālikelike maʻalahi kaʻu. Inā 'oe e hele ana i loko o ka kāma'a i loa'a kahi one o ke one, a laila, ma ke kumu, hiki iā'oe ke ne'e aku - 'a'ohe pilikia. Inā kūʻai aku ʻoe i nā kāmaʻa i nā tausani o ka poʻe, a laila e hana mākou i nā kāmaʻa me ke one ʻole. A inā e holo kekahi o nā mea hoʻohana i kou mau kāmaʻa i kahi marathon, a laila makemake ʻoe e hana i nā kāmaʻa maikaʻi loa, a laila hoʻonui iā lākou i kāu mea hoʻohana a pau. A ʻo ia mau mea hoʻohana i manaʻo ʻole ʻia i loko o ke ao ao. Aia mau nā mea hoʻohana e hoʻohana i ka pūʻulu ma kekahi ala kumu. Pono ʻoe e hoʻomākaukau no kēia.

He aha a no ke aha mākou e hana ai i nā waihona Open Source. Andrey Borodin (Yandex.Cloud)

He aha kā mākou i aʻo ai ma ʻaneʻi? Ua aʻo mākou i kahi mea maʻalahi: ʻo ka mea nui ka wehewehe ʻana i ke kaiāulu aia kahi pilikia. Inā ʻike ke kaiāulu i ka pilikia, ala mai ka hoʻokūkū kūlohelohe e hoʻoponopono i ka pilikia. No ka mea makemake nā mea a pau e hoʻoponopono i kahi pilikia koʻikoʻi. Hoʻomaopopo nā mea kūʻai aku a pau, hiki iā lākou ke hehi i kēia rake, no laila makemake lākou e hoʻopau iā lākou.

Inā 'oe e hana ma luna o ka pilikia, akā, bothers ole kekahi akā, 'oe, akā, e hana ma luna o ia systematically a me ka mea hope manaʻo he pilikia, a laila, kou huki noi e maopopo leʻa. E ʻae ʻia kāu patch, e nānā ʻia kāu mau hoʻomaikaʻi a i ʻole nā ​​​​noi no ka hoʻomaikaʻi ʻana e ke kaiāulu. I ka hopena o ka lā, hoʻomaikaʻi mākou i ka ʻikepili no kēlā me kēia.

He aha a no ke aha mākou e hana ai i nā waihona Open Source. Andrey Borodin (Yandex.Cloud)

ʻO kahi waihona hoihoi ʻo Greenplum. He waihona ʻikepili like loa ia e pili ana i ka Postgres codebase, aʻu i kamaʻāina loa.

He aha a no ke aha mākou e hana ai i nā waihona Open Source. Andrey Borodin (Yandex.Cloud)

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

A he hana hoihoi ko Greenplum - hoʻopili i nā papa i hoʻopaʻa ʻia. He mau papa kēia e hiki ai iā ʻoe ke hoʻohui koke. Hiki iā lākou ke kolamu a i ʻole lālani.

Akā ʻaʻohe clustering, ʻo ia hoʻi, ʻaʻohe hana kahi e hiki ai iā ʻoe ke hoʻonohonoho i ka ʻikepili i loaʻa i ka papaʻaina e like me ke kauoha i loko o kekahi o nā kuhikuhi.

Hele mai nā kāne o ka kaʻa kaʻa iaʻu a ʻōlelo mai: “Andrey, ʻike ʻoe iā Postgres. A eia ua aneane like. E hoʻololi i 20 mau minuke. Lawe ʻoe a hana." Manaʻo wau ʻae, ʻike wau iā Postgres, hoʻololi no 20 mau minuke - pono wau e hana i kēia.

He aha a no ke aha mākou e hana ai i nā waihona Open Source. Andrey Borodin (Yandex.Cloud)

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

Akā ʻaʻole, ʻaʻole ia he 20 mau minuke, ua kākau wau i nā mahina. Ma ka ʻaha kūkā ʻo PgConf.Russia, ua hoʻokokoke au iā Heikki Linakangas mai Pivotal a nīnau: "He pilikia paha me kēia? No ke aha i loaʻa ʻole ai ka hui ʻana o ka papaʻaina i hoʻohui ʻia?" Ua ʻōlelo ʻo ia: "E lawe ʻoe i ka ʻikepili. Hoʻonohonoho ʻoe, hoʻonohonoho hou. He hana wale nō." ʻO wau: "ʻAe, pono ʻoe e lawe a hana." 'Ōleloʻo ia: "ʻAe, pono mākou i nā lima lima e hana i kēia." Ua manaʻo wau he pono iaʻu e hana i kēia.

A i kekahi mau mahina ma hope mai ua waiho au i kahi noi huki i hoʻokō i kēia hana. Ua loiloi ʻia kēia noi huki e Pivotal me ke kaiāulu. ʻOiaʻiʻo, aia nā pōpoki.

He aha a no ke aha mākou e hana ai i nā waihona Open Source. Andrey Borodin (Yandex.Cloud)

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

Akā ʻo ka mea hoihoi loa i ka wā i hoʻohui ʻia ai kēia noi huki, ua ʻike ʻia nā pōpoki ma Greenplum ponoʻī. Ua ʻike mākou ua haki nā papa ʻaina i kekahi manawa i ka transactionality ke hui ʻia. A he mea pono keia e hooponopono. A aia ʻo ia ma kahi aʻu i hoʻopā ai. A ʻo koʻu ʻano kūlohelohe - ʻae, e hana pū wau i kēia.

He aha a no ke aha mākou e hana ai i nā waihona Open Source. Andrey Borodin (Yandex.Cloud)

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

Ua hoʻoponopono wau i kēia bug. Hoʻouna i kahi noi huki i nā mea hoʻoponopono. Ua pepehi ʻia ʻo ia.

He aha a no ke aha mākou e hana ai i nā waihona Open Source. Andrey Borodin (Yandex.Cloud)

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

Ma hope o ia mea, pono e loaʻa kēia hana i ka Greenplum version no PostgreSQL 12. ʻO ia hoʻi, ke hoʻomau nei ka huakaʻi 20-minute me nā mea hoihoi hou. He mea hoihoi i ka hoʻopā ʻana i ka hoʻomohala o kēia manawa, kahi e ʻoki ai ke kaiāulu i nā hiʻohiʻona hou a nui loa. Ua hau.

He aha a no ke aha mākou e hana ai i nā waihona Open Source. Andrey Borodin (Yandex.Cloud)

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

Akā ʻaʻole i pau i laila. Ma hope o nā mea a pau, ua ʻike ʻia e pono mākou e kākau i nā palapala no kēia mau mea āpau.

Ua hoʻomaka wau e kākau i nā palapala. ʻO ka mea pōmaikaʻi, ua hele mai nā mea kākau moʻolelo mai Pivotal. ʻO ka ʻōlelo Pelekania kā lākou ʻōlelo. Ua kōkua mai lākou iaʻu i ka palapala. ʻO ka ʻoiaʻiʻo, ua kākau hou lākou i kaʻu mea i manaʻo ai ma ka ʻōlelo Pelekane maoli.

A ma ʻaneʻi, me he mea lā, ua pau ka huakaʻi. A maopopo iā ʻoe ka mea i hana ʻia i kēlā manawa? Hele mai nā kāne o ka kaʻa kaʻa iaʻu a ʻōlelo mai: "ʻElua mau huakaʻi, kēlā me kēia no 10 mau minuke." A he aha kaʻu e haʻi aku ai iā lākou? Ua ʻōlelo wau i kēia manawa e hāʻawi wau i kahi hōʻike ma ka pālākiō, a laila e ʻike mākou i kāu mau hana, no ka mea, he hana hoihoi kēia.

He aha a no ke aha mākou e hana ai i nā waihona Open Source. Andrey Borodin (Yandex.Cloud)

He aha kā mākou i aʻo ai mai kēia hihia? No ka mea, e hana mau ana ka hana me ka open source me kekahi kanaka kiko'ī, e hana mau ana me ke kaiāulu. No ka mea, i kēlā me kēia pae aʻu i hana pū ai me kekahi mea hoʻomohala, kekahi mea hoʻāʻo, kekahi hacker, kekahi mea palapala, kekahi mea kākau. ʻAʻole au i hana me Greenplum, ua hana au me nā poʻe a puni Greenplum.

Akā! Aia kekahi mea nui - he hana wale nō. ʻO ia hoʻi, hele mai ʻoe, inu kofe, kākau code. Hana nā ʻano mea like ʻole maʻalahi. Hana maʻamau - e maikaʻi! A he hana hoihoi loa ia. Aia kahi noi no kēia hana mai nā mea kūʻai aku ʻo Yandex.Cloud, nā mea hoʻohana o kā mākou hui i loko o Yandex a ma waho. A ke manaʻo nei au e piʻi aʻe ka nui o nā papahana a mākou e komo ai a e piʻi aʻe ka hohonu o kā mākou komo ʻana.

ʻo ia wale nō. E neʻe kākou i nā nīnau.

He aha a no ke aha mākou e hana ai i nā waihona Open Source. Andrey Borodin (Yandex.Cloud)

Kau ninau

Aloha! He kau nīnau a pane hou kā mākou. A ma ke keena Andrei Borodin. ʻO kēia ka mea nāna i haʻi iā ʻoe e pili ana i ka hāʻawi ʻana o Yandex.Cloud a me Yandex e wehe i ke kumu. ʻO kā mākou hōʻike i kēia manawa ʻaʻole ia e pili ana i ka Cloud, akā i ka manawa like mākou e pili ana i ia mau ʻenehana. Inā ʻaʻole ʻoe i hana i loko o Yandex, ʻaʻohe lawelawe ma Yandex.Cloud, no laila e hoʻomaikaʻi iā ʻoe mai iaʻu iho. A ʻo ka nīnau mua mai ka hoʻolaha: "He aha kēlā me kēia papahana āu i ʻōlelo ai i kākau ʻia?"

Ua kākau ʻia ka ʻōnaehana kākoʻo ma WAL-G ma Go. ʻO kēia kekahi o nā papahana hou a mākou i hana ai. He 3 makahiki wale no kona mau makahiki. A ʻo kahi waihona e pili pinepine ana i ka hilinaʻi. A ʻo ia hoʻi, ua kahiko loa nā waihona a ua kākau ʻia lākou ma C. Ua hoʻomaka ka papahana Postgres ma kahi o 30 mau makahiki i hala. A laila ʻo ka C89 ke koho kūpono. A ua kākau ʻia ʻo Postgres ma luna. ʻO nā ʻikepili hou aʻe e like me ClickHouse i kākau pinepine ʻia ma C++. Hoʻokumu ʻia nā hoʻomohala ʻōnaehana āpau ma C a me C++.

ʻO kahi nīnau mai kā mākou luna kālā, ʻo ia ke kuleana no nā lilo ma Cloud: "No ke aha e hoʻolilo ai ʻo Cloud i ke kālā ma ke kākoʻo ʻana i ke kumu wehe?"

Aia kahi pane maʻalahi no ka luna kālā ma aneʻi. Hana mākou i kēia e hoʻomaikaʻi i kā mākou lawelawe. Ma nā ʻano hea e hiki ai iā mākou ke hana maikaʻi? Hiki iā mākou ke hana i nā mea i ʻoi aku ka maikaʻi, ka wikiwiki, a me ka hoʻonui ʻana i nā mea. Akā no mākou, pili nui kēia moʻolelo i ka hilinaʻi. No ka laʻana, i loko o kahi ʻōnaehana hoʻihoʻi mākou e nānā i ka 100% o nā pā e pili ana iā ia. ʻIke mākou i ke code. A ʻoi aku ka ʻoluʻolu o mākou i ka ʻōwili ʻana i nā mana hou i ka hana. ʻO ia ka mea mua, e pili ana i ka hilinaʻi, e pili ana i ka mākaukau no ka hoʻomohala ʻana a me ka hilinaʻi

ʻO kekahi nīnau: "He ʻokoʻa anei nā koi o nā mea hoʻohana o waho e noho ana ma Yandex.Cloud mai nā mea hoʻohana kūloko e noho ana i loko o Cloud?"

He ʻokoʻa ka ʻaoʻao hoʻouka. Akā, mai ka manaʻo o kaʻu keʻena, ua hana ʻia nā hihia kūikawā a me nā mea hoihoi a pau ma kahi ukana maʻamau. ʻO nā mea hoʻomohala me ka noʻonoʻo, nā mea hoʻomohala e hana i ka mea i manaʻo ʻole ʻia, e ʻike ʻia i loko a me waho. Ma keia mea, ua like like kakou a pau. A, ʻo ka mea nui wale nō i loko o ka hana ʻo Yandex o nā waihona ʻikepili ʻo ia i loko o Yandex he aʻo mākou. I kekahi manawa, hele loa kekahi wahi i loaʻa i loko o ke aka, a pono e hoʻomau nā lawelawe ʻo Yandex a pau me kēia. He ʻokoʻa liʻiliʻi kēia. Akā, hana ia i ka nui o ka hoʻomohala noiʻi ma ke kikowaena o ka waihona a me ka waihona pūnaewele. A i ʻole, hoʻopuka nā hoʻonohonoho waho a me loko i nā noi like no nā hiʻohiʻona a me nā noi like no ka hoʻomaikaʻi ʻana i ka hilinaʻi a me ka hana.

Nīnau aʻe: "Pehea kou manaʻo e pili ana i ka nui o kāu hana i hoʻohana ʻia e nā ao ʻē aʻe?" ʻAʻole mākou e inoa i nā mea kikoʻī, akā nui nā papahana i hana ʻia ma Yandex.Cloud i hoʻohana ʻia i nā ao o nā poʻe ʻē aʻe.

He ʻoluʻolu kēia. ʻO ka mea mua, he hōʻailona ia ua hana mākou i kekahi mea pono. A ʻo ia ka mea e ʻakaʻaka i ka manaʻo. A ʻoi aku ko mākou hilinaʻi ua hana mākou i ka hoʻoholo kūpono. Ma ka ʻaoʻao ʻē aʻe, ʻo ia ka manaʻolana i ka wā e hiki mai ana e lawe mai kēia iā mākou i nā manaʻo hou, nā noi hou mai nā mea hoʻohana ʻekolu. ʻO ka hapa nui o nā pilikia ma GitHub i hana ʻia e nā luna hoʻoponopono ʻōnaehana hoʻokahi, nā DBA pākahi, nā mea hoʻolālā hoʻokahi, nā ʻenekini pākahi, akā i kekahi manawa hele mai nā poʻe me ka ʻike ʻōnaehana a ʻōlelo mai aia ma 30% o kekahi mau hihia i loaʻa iā mākou kēia pilikia a e noʻonoʻo kākou pehea e hoʻoponopono ai. ʻO kēia ka mea a mākou e kali nui nei. Manaʻo mākou i ka kaʻana like ʻana i nā ʻike me nā paepae ao ʻē aʻe.

Ua kamaʻilio nui ʻoe e pili ana i ka marathon. ʻIke wau ua holo ʻoe i kahi marathon ma Moscow. Ma ka hopena? Loaʻa i nā kāne mai PostgreSQL?

ʻAʻole, holo wikiwiki ʻo Oleg Bartunov. Hoʻopau ʻo ia i hoʻokahi hola ma mua oʻu. ʻO ka holoʻokoʻa, hauʻoli wau i ka lōʻihi o koʻu loaʻa ʻana. Noʻu, ʻo ka hoʻopau wale ʻana he mea hoʻokō. Ma ke ʻano holoʻokoʻa, he mea kupanaha ka nui o nā kukini ma ke kaiāulu postgres. Me he mea lā aia kekahi ʻano pilina ma waena o nā haʻuki aerobic a me ka makemake no ka hoʻonohonoho ʻana i nā ʻōnaehana.

Ke ʻōlelo nei ʻoe ʻaʻohe mea holo ma ClickHouse?

ʻIke maopopo wau aia lākou ma laila. ʻO ClickHouse kekahi waihona. Ma ke ala, ke kākau mai nei ʻo Oleg iaʻu: "E holo anei mākou ma hope o ka hōʻike?" He manaʻo maikaʻi kēia.

ʻO kekahi nīnau mai ka hoʻolaha mai Nikita: "No ke aha ʻoe i hoʻoponopono ai i ka bug ma Greenplum iā ʻoe iho a hāʻawi ʻole i nā juniors?" ʻOiaʻiʻo, ʻaʻole maopopo loa i ke ʻano o ka bug a me kahi lawelawe, akā ʻo ia paha ka mea āu i kamaʻilio ai.

ʻAe, ma ke kumu, hiki ke hāʻawi ʻia i kekahi. ʻO ia wale nō ke code aʻu i hoʻololi ai. A he mea maʻamau ka hoʻomau i ka hana koke. Ma ke kumu, he manaʻo maikaʻi ka manaʻo e kaʻana like i ka ʻike me ka hui. E kaʻana like mākou i nā hana Greenplum i waena o nā lālā āpau o kā mākou mahele.

No ka mea, ke kamaʻilio nei mākou no nā juniors, eia kahi nīnau. Ua hoʻoholo ke kanaka e hana i ka hana mua ma Postgres. He aha kāna mea e pono ai e hana i ka hana mua?

He nīnau hoihoi kēia: "Ma hea e hoʻomaka ai?" He paʻakikī loa ka hoʻomaka ʻana me kekahi mea i loko o ka kernel. Ma Postgres, no ka laʻana, aia kahi papa inoa e hana ai. Akā ʻo ka ʻoiaʻiʻo, he pepa kēia o kā lākou i hoʻāʻo ai e hana, ʻaʻole i kūleʻa. He mau mea paʻakikī kēia. A ʻo ka mea maʻamau, hiki iā ʻoe ke loaʻa i kekahi mau pono i loko o ka kaiaola, kekahi mau hoʻonui i hiki ke hoʻomaikaʻi ʻia, e huki liʻiliʻi i ka nānā ʻana mai nā mea hoʻomohala kernel. A no laila, ʻoi aku ka nui o nā wahi no ka ulu ʻana ma laila. Ma ka Google Summer of code program, i kēlā me kēia makahiki, hoʻopuka ka poʻe postgres community i nā kumuhana like ʻole e hiki ke kamaʻilio ʻia. I kēia makahiki, ua loaʻa iā mākou ʻekolu mau haumāna. Ua kākau kekahi ma WAL-G i nā kumuhana koʻikoʻi no Yandex. Ma Greenplum, ʻoi aku ka maʻalahi o nā mea āpau ma mua o ke kaiāulu Postgres, no ka mea, mālama maikaʻi nā mea hackers Greenplum i nā noi huki a hoʻomaka e loiloi koke. ʻO ka hoʻouna ʻana i kahi patch i Postgres he mau mahina, akā e hele mai ʻo Greenplum i kahi lā a ʻike i kāu mea i hana ai. ʻO kekahi mea e pono ai ʻo Greenplum e hoʻoponopono i nā pilikia o kēia manawa. ʻAʻole hoʻohana nui ʻia ʻo Greenplum, no laila paʻakikī loa ka ʻimi ʻana i kāu pilikia. A ʻo ka mea mua, pono mākou e hoʻoponopono i nā pilikia, ʻoiaʻiʻo.

Source: www.habr.com