WAL-G: шинэ боломжууд ба олон нийтийн өргөжилт. Георгий Рылов

Би танд Георгий Рыловын 2020 оны эхэн үеийн "WAL-G: шинэ боломж ба хамтын нийгэмлэгийн тэлэлт" илтгэлийн хуулбарыг уншихыг санал болгож байна.

Нээлттэй эх сурвалжийг дэмжигчид өсч хөгжихийн хэрээр олон бэрхшээлтэй тулгардаг. Хэрхэн илүү олон шаардлагатай функцуудыг бичиж, илүү олон асуудлыг шийдэж, илүү олон татах хүсэлтийг харах боломжтой вэ? Жишээ болгон WAL-G (PostgreSQL-д зориулсан нөөцлөх хэрэгсэл)-ийг ашигласнаар бид их сургуульд Нээлттэй эхийн хөгжүүлэлтийн курс эхлүүлснээр эдгээр асуудлыг хэрхэн шийдсэн, юунд хүрсэн, цаашид хаашаа шилжихээ хэлэх болно.

WAL-G: шинэ боломжууд ба олон нийтийн өргөжилт. Георгий Рылов

Бүгдээрээ дахин сайн уу! Би Екатеринбургийн Yandex хөгжүүлэгч. Өнөөдөр би WAL-G-ийн талаар ярих болно.

Тайлангийн гарчиг нь нөөцлөлттэй холбоотой гэж хэлээгүй. WAL-G гэж юу болохыг мэдэх хүн байна уу? Эсвэл хүн бүр мэддэг үү? Мэдэхгүй бол гараа өргө. Гэгээн новш, та тайланд ирсэн бөгөөд энэ нь юу болохыг мэдэхгүй байна.

Өнөөдөр юу болохыг танд хэлье. Манай баг нэлээд удаан хугацаанд нөөцлөлт хийж байгаа нь ийм тохиолдол юм. Энэ бол бид өгөгдлийг хэрхэн аюулгүй, найдвартай, тохь тухтай, үр ашигтайгаар хадгалах талаар ярилцдаг цуврал тайлан юм.

WAL-G: шинэ боломжууд ба олон нийтийн өргөжилт. Георгий Рылов

Өмнөх цувралд Андрей Бородин, Владимир Лесков нарын олон илтгэл гарсан. Бидний олон байсан. Мөн бид WAL-G-ийн талаар олон жилийн турш ярьж байна.

clck.ru/F8ioz — https://www.highload.ru/moscow/2018/abstracts/3964

clck.ru/Ln8Qw — https://www.highload.ru/moscow/2019/abstracts/5981

Энэ тайлан нь техникийн тал дээр илүү байсан гэдгээрээ бусдаас арай өөр байх болно, гэхдээ би энд олон нийтийн өсөлттэй холбоотой асуудлуудтай хэрхэн тулгарсан тухай ярих болно. Үүнийг даван туулахад туслах бяцхан санааг бид хэрхэн олж авсан бэ.

WAL-G: шинэ боломжууд ба олон нийтийн өргөжилт. Георгий Рылов

Хэдэн жилийн өмнө WAL-G нь бидний Citus Data-аас авсан нэлээд жижиг төсөл байсан. Тэгээд бид зүгээр л авсан. Тэгээд нэг хүн хөгжүүлсэн.

Зөвхөн WAL-G-д байхгүй байсан:

  • Хуулбараас нөөцлөлт.
  • Нэмэлт нөөцлөлт байхгүй байсан.
  • WAL-Delta нөөцлөлт байхгүй байсан.
  • Бас их зүйл дутуу байсан.

Энэ хэдэн жилийн хугацаанд WAL-G маш их өссөн.

WAL-G: шинэ боломжууд ба олон нийтийн өргөжилт. Георгий Рылов

Мөн 2020 он гэхэд дээрх бүх зүйл аль хэдийн гарч ирсэн. Үүнд одоо бидэнд байгаа зүйлийг нэмсэн:

  • GitHub дээр 1 гаруй одтой.
  • 150 сэрээ.
  • 15 орчим нээлттэй PR.
  • Мөн өөр олон хувь нэмэр оруулагчид.
  • Мөн асуудал байнга нээлттэй байдаг. Хэдийгээр бид өдөр бүр тэнд очиж, энэ талаар ямар нэгэн зүйл хийдэг.

WAL-G: шинэ боломжууд ба олон нийтийн өргөжилт. Георгий Рылов

Бид өөрсдөө Yandex-д удирддаг мэдээллийн сангийн үйлчилгээнд ямар нэгэн зүйл хэрэгжүүлэх шаардлагагүй байсан ч энэ төсөл нь бидний анхаарлыг илүү ихээр шаарддаг гэсэн дүгнэлтэд хүрсэн.

2018 оны намар хаа нэгтээ бидний толгойд нэг санаа орж ирэв. Ихэвчлэн баг нь зарим функцийг хөгжүүлэх эсвэл танд хангалттай гар байхгүй бол алдаа засах хэд хэдэн арга байдаг. Жишээлбэл, та өөр хөгжүүлэгч хөлсөлж, түүнд мөнгө төлж болно. Эсвэл та хэсэг хугацаанд дадлагажигч авч, түүнд тодорхой хэмжээний цалин өгч болно. Гэхдээ нэлээн том бүлэг хүмүүс байсаар байгаа бөгөөд тэдний зарим нь код бичихийг үнэхээр мэддэг болсон. Та код нь ямар чанартай болохыг тэр бүр мэддэггүй.

Бид энэ талаар бодож, оюутнуудыг татахыг хичээхээр шийдсэн. Гэхдээ оюутнууд бидэнтэй хамт бүх зүйлд оролцохгүй. Тэд зөвхөн ажлын зарим хэсгийг л хийх болно. Жишээлбэл, тэд тест бичих, алдаа засах, үндсэн функцэд нөлөөлөхгүй функцуудыг хэрэгжүүлэх болно. Гол функц нь нөөцлөлт үүсгэх, нөөцлөлтийг сэргээх явдал юм. Хэрэв бид нөөцлөлт үүсгэхдээ алдаа гаргавал өгөгдөл алдагдах болно. Мэдээжийн хэрэг хэн ч үүнийг хүсэхгүй. Бүх зүйл маш аюулгүй байгаасай гэж хүн бүр хүсдэг. Тиймээс, мэдээжийн хэрэг, бид өөрсдийнхөөсөө бага итгэдэг кодыг зөвшөөрөхийг хүсэхгүй байна. Өөрөөр хэлбэл, ямар ч чухал бус код бол нэмэлт ажилчдаас авахыг хүсдэг зүйл юм.

Оюутны PR-ийг ямар нөхцөлд хүлээн зөвшөөрдөг вэ?

  • Тэд кодоо тестээр хамрах шаардлагатай. Бүх зүйл CI-д явагдах ёстой.
  • Мөн бид 2 шүүмжийг давж гардаг. Нэгийг нь Андрей Бородин, нэгийг нь би.
  • Нэмж дурдахад, энэ нь манай үйлчилгээнд ямар нэгэн зүйл эвдэхгүй эсэхийг шалгахын тулд би угсралтыг тусад нь байршуулж байна. Мөн бид төгсгөлийн шалгалтанд юу ч бүтэлгүйтсэн эсэхийг шалгадаг.

Нээлттэй эхийн тусгай сургалт

WAL-G: шинэ боломжууд ба олон нийтийн өргөжилт. Георгий Рылов

Энэ яагаад хэрэгтэй вэ, яагаад энэ нь надад маш сайхан санаа юм шиг санагдаж байна.

Бидний хувьд ашиг нь тодорхой байна:

  • Бид нэмэлт гар авдаг.
  • Мөн бид ухаалаг код бичдэг ухаалаг оюутнуудын дунд багт нэр дэвшигчдийг хайж байна.

Оюутнуудад ямар ашиг тустай вэ?

Оюутнууд наад зах нь бичсэн кодынхоо төлбөрийг авдаггүй, зөвхөн оюутны бүртгэлд дүн авдаг тул тэдгээр нь тийм ч тодорхой биш байж магадгүй юм.

Би тэднээс энэ талаар асуусан. Мөн тэдний үгээр:

  • Нээлттэй эх сурвалж дахь хувь нэмэр оруулагчийн туршлага.
  • CV-дээ мөр бичнэ үү.
  • Өөрийгөө баталж, Yandex-д ярилцлага өг.
  • GSoC-ийн гишүүн болоорой.
  • Код бичих хүсэлтэй хүмүүст зориулсан +1 тусгай сургалт.

Хичээл хэрхэн зохион байгуулагдсан талаар би ярихгүй. WAL-G бол гол төсөл байсан гэдгийг л хэлье. Мөн бид энэ сургалтанд Odyssey, PostgreSQL, ClickHouse зэрэг төслүүдийг оруулсан.

Тэд зөвхөн энэ курст асуудал өгөөд зогсохгүй диплом, курсын ажил тараасан.

Хэрэглэгчдэд ямар ашиг тустай вэ?

Одоо хамгийн их сонирхдог хэсэг рүүгээ орцгооё. Энэ чамд ямар ашигтай вэ? Гол нь оюутнууд маш олон алдаа зассан. Мөн бид таны асуусан хүсэлтийн онцлогуудыг хийсэн.

Мөн та бүхэнд удаан хугацаанд хүсэж мөрөөдөж, биелсэн зүйлсийнхээ талаар хүргэе.

WAL-G: шинэ боломжууд ба олон нийтийн өргөжилт. Георгий Рылов

Хүснэгтийн зайг дэмждэг. WAL-G нь WAL-G-г гаргаснаас хойш хүснэгтийн зайг ашиглах төлөвтэй байсан, учир нь WAL-G нь хүснэгтийн зай бүхий мэдээллийн сангийн нөөцлөлтийг дэмждэг WAL-E өөр нөөц хэрэгслийн залгамжлагч юм.

Энэ нь юу болох, яагаад хэрэгтэй байгааг танд товчхон сануулъя. Ерөнхийдөө таны Postgres-ийн бүх өгөгдөл нь үндсэн гэж нэрлэгддэг файлын системийн нэг директорийг эзэлдэг. Мөн энэ сан нь Postgres-д шаардлагатай бүх файлууд болон дэд сангуудыг аль хэдийн агуулж байна.

Хүснэгтийн орон зай нь Postgres өгөгдлийг агуулсан сангууд боловч тэдгээр нь үндсэн сангаас гадуур байрладаггүй. Слайд нь хүснэгтийн талбайнууд нь үндсэн лавлахын гадна байрладаг болохыг харуулж байна.

WAL-G: шинэ боломжууд ба олон нийтийн өргөжилт. Георгий Рылов

Энэ нь Postgres-ийн хувьд ямар харагдаж байна вэ? Үндсэн санд pg_tblspc тусдаа дэд сан байдаг. Мөн энэ нь үндсэн лавлахаас гадуур Postgres өгөгдлийг агуулсан лавлах тэмдгүүдийн холбоосыг агуулдаг.

WAL-G: шинэ боломжууд ба олон нийтийн өргөжилт. Георгий Рылов

Та энэ бүгдийг ашиглах үед таны хувьд эдгээр тушаалууд иймэрхүү харагдах болно. Өөрөөр хэлбэл, та тодорхой хүснэгтийн зайд хүснэгт үүсгэж, одоо хаана байгааг харах болно. Эдгээр нь сүүлийн хоёр мөр, сүүлчийн хоёр тушаал юм. Мөн тэнд ямар нэг арга байгаа нь тодорхой байна. Гэвч бодит байдал дээр энэ нь бодит арга биш юм. Энэ бол үндсэн лавлахаас хүснэгтийн зай хүртэлх угтвар зам юм. Тэндээс энэ нь таны бодит өгөгдөл рүү хөтлөх тэмдэгт холбоостой таарч байна.

Бид энэ бүхнийг багтаа ашигладаггүй ч WAL-G руу шилжихийг хүсч байгаагаа бидэнд бичсэн бусад WAL-E хэрэглэгчид үүнийг ашигласан боловч энэ нь тэднийг зогсоож байна. Үүнийг одоо дэмжиж байна.

WAL-G: шинэ боломжууд ба олон нийтийн өргөжилт. Георгий Рылов

Тусгай сургалтын маань бидэнд авчирсан өөр нэг онцлог бол барьж авах явдал юм. Postgres-ээс илүү Oracle-тай ажиллаж байсан хүмүүс catchup-ийн талаар мэддэг байх.

Энэ нь юу болох талаар товчхон. Манай үйлчилгээний кластер топологи нь ихэвчлэн иймэрхүү харагдах болно. Бидэнд мастер бий. Урьдчилан бичих логыг түүнээс дамжуулдаг хуулбар байдаг. Мөн хуулбар нь одоо аль LSN дээр байгааг мастерт хэлж өгдөг. Үүнтэй зэрэгцэн хаа нэгтээ бүртгэлийг архивлаж болно. Бүртгэлийг архивлахаас гадна нөөцлөлтийг үүлэн рүү илгээдэг. Мөн дельта нөөцлөлтүүдийг илгээдэг.

Асуудал юу байж болох вэ? Хэрэв та нэлээд том мэдээллийн сантай бол таны хуулбар мастераас хол хоцорч эхэлдэг. Тэгээд тэр хэзээ ч түүнийг гүйцэж чадахгүй болхоор маш их хоцордог. Энэ асуудлыг ихэвчлэн ямар нэгэн байдлаар шийдэх шаардлагатай байдаг.

Хамгийн хялбар арга бол хуулбарыг устгаад дахин байршуулах явдал юм, учир нь энэ нь хэзээ ч гүйцэхгүй тул асуудлыг шийдвэрлэх шаардлагатай. Гэхдээ энэ нь нэлээд урт хугацаа юм, учир нь бүхэл бүтэн 10 TB мэдээллийн сангийн нөөцлөлтийг сэргээх нь маш урт хугацаа юм. Мөн ийм асуудал гарвал энэ бүхнийг аль болох хурдан хиймээр байна. Тэгээд яг энэ нь catchup юм.

Catchup нь ийм байдлаар үүлэн дотор хадгалагдсан дельта нөөцлөлтийг ашиглах боломжийг олгодог. Та хоцрогдсон хуулбар одоогоор аль LSN-г асааж байгааг хэлж, түүнийг catchup командад зааж өгч, тухайн LSN болон таны кластер байрладаг LSN хооронд дельта нөөцлөлт үүсгэх болно. Үүний дараа та энэ нөөцлөлтийг хоцрогдсон хуулбар руу сэргээнэ.

Бусад суурь

Оюутнууд ч гэсэн бидэнд олон шинж чанарыг нэг дор авчирсан. Yandex-д бид зөвхөн Postgres биш, MySQL, MongoDB, Redis, ClickHouse-тэй тул зарим үед MySQL-ийг цаг тухайд нь сэргээх боломжтой нөөцлөлт хийх шаардлагатай болсон тул байршуулах боломжтой болсон. тэднийг үүл рүү.

Бид үүнийг WAL-G-ийн хийдэгтэй төстэй байдлаар хийхийг хүссэн. Тэгээд бид туршилт хийж, энэ бүхэн хэрхэн харагдахыг харахаар шийдсэн.

Тэгээд эхлээд энэ логикийг ямар нэгэн байдлаар хуваалцахгүйгээр тэд кодыг сэрээгээр бичсэн. Тэд бидэнд ямар нэгэн ажлын загвартай, тэр нь нисч чаддаг гэдгийг харсан. Дараа нь бид гол нийгэмлэг маань постгресистууд, тэд WAL-G ашигладаг гэж бодсон. Тиймээс бид эдгээр хэсгүүдийг ямар нэгэн байдлаар салгах хэрэгтэй. Өөрөөр хэлбэл, бид Postgres-ийн кодыг засварлахдаа MySQL-г эвддэггүй; MySQL-ийг засварлахдаа Postgres-ийг эвддэггүй.

WAL-G: шинэ боломжууд ба олон нийтийн өргөжилт. Георгий Рылов

Үүнийг хэрхэн салгах талаархи анхны санаа бол PostgreSQL өргөтгөлүүдэд ашигладаг ижил аргыг ашиглах санаа байв. Үнэн хэрэгтээ, MySQL нөөцлөхийн тулд та ямар нэгэн динамик номын сан суулгах хэрэгтэй байсан.

Гэхдээ энд энэ аргын тэгш бус байдал шууд харагдана. Та Postgres-ийг нөөцлөхдөө Postgres-ийн ердийн нөөцлөлтийг түүн дээр тавиад бүх зүйл хэвийн байна. MySQL-ийн хувьд та Postgres-ийн нөөцлөлтийг суулгаж, мөн MySQL-д зориулж динамик номын сан суулгасан нь харагдаж байна. Энэ нь хачирхалтай сонсогдож байна. Бид ч бас тэгж бодож, энэ нь бидэнд хэрэгтэй шийдэл биш гэж шийдсэн.

Postgres, MySQL, MongoDB, Redis-д зориулсан төрөл бүрийн бүтээцүүд

Гэхдээ энэ нь бидэнд зөв шийдвэрт хүрэх боломжийг олгосон юм шиг санагдаж байна - өөр өөр суурийн хувьд өөр өөр чуулгануудыг хуваарилах. Энэ нь WAL-G-ийн хэрэгжүүлдэг нийтлэг API-д хандах янз бүрийн мэдээллийн сангийн нөөцлөлттэй холбоотой логикийг тусгаарлах боломжийг олгосон.

WAL-G: шинэ боломжууд ба олон нийтийн өргөжилт. Георгий Рылов

Энэ бол оюутнуудад асуудал өгөхөөс өмнө бид өөрсдөө бичсэн хэсэг юм. Өөрөөр хэлбэл, энэ нь тэдний буруу зүйл хийж болох хэсэг учраас бид ийм зүйл хийвэл бүх зүйл сайхан болно гэж шийдсэн.

WAL-G: шинэ боломжууд ба олон нийтийн өргөжилт. Георгий Рылов

Үүний дараа бид асуудлуудаа гаргалаа. Тэднийг нэн даруй буулгасан. Оюутнууд гурван суурийг дэмжих шаардлагатай байв.

Энэ бол MySQL бөгөөд бид үүнийг WAL-G ашиглан нэг жил гаруйн хугацаанд нөөцөлж байна.

Одоо MongoDB үйлдвэрлэлд ойртож байгаа бөгөөд тэд үүнийг файлаар дуусгаж байна. Уг нь бид энэ бүхний хүрээг бичсэн. Дараа нь оюутнууд ажил хэрэг болохуйц зүйл бичжээ. Тэгээд бид тэдгээрийг үйлдвэрлэлд хүлээн зөвшөөрч болохуйц байдалд хүргэдэг.

Эдгээр асуудлууд нь оюутнуудад эдгээр мэдээллийн сан бүрт бүрэн нөөцлөх хэрэгслийг бичих шаардлагагүй юм шиг харагдаж байсан. Бидэнд тийм асуудал байгаагүй. Бидний асуудал бол бид цаг алдалгүй сэргээхийг хүсч байсан бөгөөд бид үүлэн дээр нөөцлөхийг хүссэн юм. Тэд оюутнуудаас үүнийг шийдэх код бичихийг хүссэн. Оюутнууд аль хэдийн нөөцлөлт хийх хэрэгслүүдийг ашиглаж, ямар нэгэн байдлаар нөөцлөлт хийдэг, дараа нь WAL-G-ээр бүгдийг нь нааж, үүлэн рүү шилжүүлсэн. Мөн тэд үүн дээр цаг алдалгүй сэргээх аргыг нэмсэн.

WAL-G: шинэ боломжууд ба олон нийтийн өргөжилт. Георгий Рылов

Оюутнууд өөр юу авчирсан бэ? Тэд WAL-G-д Libsodium шифрлэлтийн дэмжлэгийг авчирсан.

Бидэнд мөн нөөц хадгалах бодлого бий. Одоо нөөцлөлтийг байнгын гэж тэмдэглэж болно. Тэднийг хадгалах үйл явцыг автоматжуулах нь таны үйлчилгээнд ямар нэгэн байдлаар илүү тохиромжтой.

WAL-G: шинэ боломжууд ба олон нийтийн өргөжилт. Георгий Рылов

Энэ туршилт ямар үр дүнд хүрсэн бэ?

Уг сургалтанд анх 100 гаруй хүн бүртгүүлсэн. Эхэндээ би Екатеринбургийн их сургууль бол Уралын холбооны их сургууль гэж хэлээгүй. Бид тэнд бүх зүйлийг зарласан. 100 хүн бүртгүүлсэн. Бодит байдал дээр хамаагүй цөөхөн хүн ямар нэг зүйл хийж эхэлсэн, 30 орчим хүн.

Өмнө нь байгаа кодуудын тест бичих шаардлагатай байсан тул цөөхөн хүн курс төгссөн. Мөн зарим алдааг засах эсвэл зарим функцийг хийх. Мөн зарим оюутнууд хичээлээ хаасан хэвээр байна.

Одоогийн байдлаар энэ хичээлийн үеэр оюутнууд 14 орчим асуудлыг шийдэж, янз бүрийн хэмжээтэй 10 функцийг хийжээ. Миний бодлоор энэ бол нэг эсвэл хоёр хөгжүүлэгчийг бүрэн солих явдал юм.

Үүнээс гадна бид диплом, курсын ажил олгосон. Мөн 12 нь диплом авсан. Тэдний 6 нь “5”-аар өөрийгөө хамгаалчихсан. Үлдсэн хүмүүс хараахан хамгаалалтгүй байсан ч тэдний хувьд бүх зүйл сайхан болно гэж би бодож байна.

РџР »Р ° РЅС <РЅР ° Р ± САРРґЭсарС ‰ РμРμ

Бид ирээдүйд ямар төлөвлөгөөтэй байна вэ?

Наад зах нь хэрэглэгчидээс сонссон, хийхийг хүсч буй функцүүдийн хүсэлтүүд. Энэ:

  • HA кластерын нөөц архивт цагийн хуваарийг хянах зөв эсэхийг хянах. Та үүнийг WAL-G-ээр хийж болно. Мөн энэ асуудлыг авч хэлэлцэх оюутнуудтай болно гэж бодож байна.
  • Бидэнд нөөцлөлт болон WAL-г үүлэн хооронд шилжүүлэх үүрэгтэй хүн аль хэдийн бий.
  • Хуудсуудыг дахин бичихгүйгээр өсөн нэмэгдэж буй нөөцлөлтүүдийг задалж, тэнд илгээсэн архиваа оновчтой болгосноор WAL-G-г улам хурдасгах боломжтой гэсэн санааг бид саяхан нийтэлсэн.

Та эндээс хуваалцаж болно

Энэ тайлан юунд зориулагдсан бэ? Түүгээр ч барахгүй, одоо энэ төслийг дэмжиж байгаа 4 хүнээс гадна бидэнд нэмэлт гарууд бий, үүнээс нэлээд олон хүн бий. Ялангуяа та тэдэнд хувийн мессежээр бичвэл. Хэрэв та өгөгдлөө нөөцөлж аваад WAL-G ашиглан хийвэл эсвэл WAL-G руу шилжихийг хүсвэл бид таны хүслийг хялбархан биелүүлж чадна.

WAL-G: шинэ боломжууд ба олон нийтийн өргөжилт. Георгий Рылов

Энэ бол QR код ба холбоос юм. Та тэдгээрийн дундуур явж, бүх хүслээ бичиж болно. Жишээлбэл, бид зарим алдааг засахгүй байна. Эсвэл та үнэхээр ямар нэгэн функц хүсч байна, гэхдээ ямар нэг шалтгааны улмаас энэ нь манайхыг оруулаад ямар ч нөөцлөлтөнд хараахан ороогүй байна. Энэ талаар заавал бичээрэй.

WAL-G: шинэ боломжууд ба олон нийтийн өргөжилт. Георгий Рылов

Асуултууд

Сайн уу? Мэдээлэл өгсөнд баярлалаа! WAL-G-ийн тухай асуулт, гэхдээ Postgres-ийн тухай биш. WAL-G нь MySQL-г нөөцлөх ба нэмэлт нөөцлөлтийг дууддаг. Хэрэв бид CentOS дээр орчин үеийн суулгацуудыг авбал, хэрэв та MySQL-г суулгах юм бол MariDB суулгана. 10.3 хувилбараас нэмэлт нөөцлөлтийг дэмждэггүй, MariDB нөөцлөлтийг дэмждэг. Та энэ талаар яаж байгаа вэ?

Одоогоор бид MariDB-г нөөцлөхийг оролдоогүй байна. Бидэнд FoundationDB-н дэмжлэг үзүүлэх хүсэлт ирсэн боловч ерөнхийдөө ийм хүсэлт байгаа бол бид үүнийг хийх хүмүүсийг олох боломжтой. Энэ нь миний бодож байгаа шиг урт эсвэл хэцүү биш юм.

Өдрийн мэнд Мэдээлэл өгсөнд баярлалаа! Боломжит шинэ боломжуудын талаархи асуулт. Та WAL-G-г соронзон хальснууд дээр нөөцлөхөд бэлэн үү?

соронзон хальсны хадгалах санд нөөцлөх нь бололтой?

Тиймээ.

Энэ асуултад надаас илүү хариулах Андрей Бородин бий.

(Андрей) Тийм ээ, асуулт тавьсанд баярлалаа! Бидэнд үүлэн сангаас соронзон хальс руу нөөц хуулбарыг шилжүүлэх хүсэлт ирсэн. Мөн үүний төлөө хөрөөдөх үүл хооронд шилжүүлэх. Учир нь үүлнээс үүлэнд шилжүүлэх нь соронзон хальсны дамжуулалтын ерөнхий хувилбар юм. Нэмж дурдахад бид Хадгалах байгууламжийн хувьд өргөтгөх боломжтой архитектуртай. Дашрамд хэлэхэд, олон Сторогийг оюутнууд бичсэн. Хэрэв та соронзон хальсны хадгалах газар гэж бичвэл энэ нь мэдээж хэрэг дэмжигдэх болно. Бид татах хүсэлтийг авч үзэхэд бэлэн байна. Тэнд та файл бичих, файл унших хэрэгтэй. Хэрэв та Go дээр эдгээр зүйлсийг хийвэл ихэвчлэн 50 мөр кодтой болдог. Дараа нь соронзон хальс нь WAL-G дээр дэмжигдэх болно.

Мэдээлэл өгсөнд баярлалаа! Хөгжлийн сонирхолтой үйл явц. Нөөцлөх нь туршилтанд сайн хамрагдах ёстой ноцтой функц юм. Та шинэ мэдээллийн сангийн функцийг хэрэгжүүлэхдээ оюутнууд мөн тест бичдэг үү, эсвэл та өөрөө тест бичээд дараа нь хэрэгжилтийг оюутнуудад өгсөн үү?

Оюутнууд бас тест бичсэн. Гэхдээ оюутнууд шинэ мэдээллийн сан гэх мэт функцүүдийн талаар илүү ихийг бичсэн. Тэд интеграцийн тест бичсэн. Тэгээд тэд нэгжийн тест бичсэн. Хэрэв интеграцчилал амжилттай болвол, өөрөөр хэлбэл, энэ нь таны гараар гүйцэтгэдэг скрипт юмуу жишээлбэл, cron үүнийг хийдэг. Тэр бол тэнд байгаа зохиол нь маш тодорхой.

Оюутнууд тийм ч их туршлагагүй. Дүгнэлт хийхэд их цаг зарцуулдаг уу?

Тийм ээ, тойм хийхэд маш их цаг зарцуулдаг. Энэ нь ихэвчлэн хэд хэдэн комиссар нэг дор ирээд би үүнийг хийсэн, би үүнийг хийсэн гэж хэлэх үед та тэнд юу бичсэнийг ойлгохын тулд хагас өдрийн турш бодож, цаг гаргах хэрэгтэй. Учир нь кодыг анхааралтай унших ёстой. Тэдэнд ярилцлага өгөөгүй. Бид тэднийг тийм ч сайн мэддэггүй тул үүнд ихээхэн цаг хугацаа шаардагдана.

Мэдээлэл өгсөнд баярлалаа! Өмнө нь Андрей Бородин WAL-G дахь архивын_командыг шууд дуудах ёстой гэж мэдэгдсэн. Гэхдээ зарим төрлийн кластер хайрцагны хувьд босоо амыг илгээх зангилааг тодорхойлох нэмэлт логик хэрэгтэй болно. Та өөрөө энэ асуудлыг хэрхэн шийдэж байна вэ?

Энд таны асуудал юу вэ? Танд нөөцлөлт хийж байгаа синхрон хуулбар байна гэж бодъё? Эсвэл юу?

(Андрей) Үнэн хэрэгтээ WAL-G нь бүрхүүлийн скриптгүйгээр ашиглах зорилготой юм. Хэрэв ямар нэг зүйл дутуу байвал WAL-G дотор байх ёстой логикийг нэмье. Архивчлалыг хаанаас авах ёстой вэ гэвэл бид кластер дахь одоогийн мастераас архивлах ёстой гэж бид үзэж байна. Хуулбараас архивлах нь муу санаа юм. Асуудалтай янз бүрийн хувилбарууд байдаг. Ялангуяа он цагийн хуваарь болон нэмэлт мэдээллийг архивлахтай холбоотой асуудлууд. Асуултанд баярлалаа!

(Тодруулга: Бид бүрхүүлийн скриптүүдээс салсан энэ дугаарт)

Оройн мэнд! Мэдээлэл өгсөнд баярлалаа! Би таны хэлсэн барьж авах онцлогийг сонирхож байна. Хуулбар ард хоцорч, гүйцэж чадахгүй нөхцөл байдалтай тулгарсан. Би WAL-G баримт бичигт энэ функцийн тайлбарыг олж чадаагүй.

Catchup 20 оны 2020-р сарын XNUMX-нд шууд утгаараа гарч ирэв. Баримт бичигт нэмэлт ажил хэрэгтэй байж магадгүй юм. Бид өөрсдөө бичдэг ч тийм ч сайн бичдэггүй. Магадгүй бид оюутнуудаас үүнийг бичихийг шаардаж эхлэх хэрэгтэй.

Аль хэдийн гарсан уу?

Татаж авах хүсэлт аль хэдийн үхсэн, өөрөөр хэлбэл би үүнийг шалгасан. Би үүнийг туршилтын кластер дээр туршиж үзсэн. Үүнийг байлдааны жишээн дээр туршиж үзэх нөхцөл бидэнд одоогоор гараагүй байна.

Хэзээ хүлээх вэ?

Би мэдэхгүй. Сар хүлээ, бид шалгана.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх