WAL-G: yeni xüsusiyyətlər və icmanın genişləndirilməsi. Georgi Rılov

Georgi Rılovun “WAL-G: yeni imkanlar və cəmiyyətin genişlənməsi” adlı 2020-ci ilin əvvəlindəki hesabatının stenoqramını oxumağı təklif edirəm.

Açıq mənbə sahibləri böyüdükcə bir çox problemlə üzləşirlər. Getdikcə daha çox tələb olunan funksiyaları necə yazmaq, getdikcə daha çox problemi həll etmək və getdikcə daha çox cəlbedici sorğuları necə görmək olar? Nümunə olaraq WAL-G (PostgreSQL üçün ehtiyat alət) istifadə edərək, universitetdə Açıq mənbənin inkişafı üzrə kurs açaraq bu problemləri necə həll etdiyimizi, nələrə nail olduğumuzu və bundan sonra hara keçəcəyimizi izah edəcəyəm.

WAL-G: yeni xüsusiyyətlər və icmanın genişləndirilməsi. Georgi Rılov

Hər kəsə bir daha salam! Mən Yekaterinburqdan Yandex tərtibatçısiyəm. Və bu gün WAL-G haqqında danışacağam.

Hesabatın başlığında bunun ehtiyat nüsxələrlə bağlı bir şey olduğu deyildi. WAL-G-nin nə olduğunu bilən varmı? Yoxsa hamı bilir? Bilmirsənsə əlini qaldır. Tanrım, hesabata gəldin və bunun nə olduğunu bilmirsən.

İcazə verin, sizə bu gün nə olacağını söyləyim. Elə olur ki, komandamız xeyli müddətdir ki, ehtiyat nüsxələri ilə məşğul olur. Bu, məlumatları təhlükəsiz, təhlükəsiz, rahat və səmərəli şəkildə necə saxladığımızdan bəhs etdiyimiz bir sıra hesabatdır.

WAL-G: yeni xüsusiyyətlər və icmanın genişləndirilməsi. Georgi Rılov

Əvvəlki seriyalarda Andrey Borodin və Vladimir Leskovun çoxlu hesabatları var idi. Bizdə çox idi. Və biz uzun illərdir ki, WAL-G haqqında danışırıq.

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

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

Bu hesabat digərlərindən bir az fərqli olacaq, ona görə ki, o, daha çox texniki hissəyə aid idi, amma burada icmanın böyüməsi ilə bağlı problemlərlə necə qarşılaşdığımızdan danışacağam. Və bunun öhdəsindən gəlməyimizə kömək edən kiçik bir fikrə necə gəldik.

WAL-G: yeni xüsusiyyətlər və icmanın genişləndirilməsi. Georgi Rılov

Bir neçə il əvvəl WAL-G, Citus Data-dan əldə etdiyimiz kifayət qədər kiçik bir layihə idi. Və sadəcə götürdük. Və bir nəfər tərəfindən hazırlanmışdır.

Və yalnız WAL-G-də yox idi:

  • Replikadan ehtiyat nüsxə.
  • Artan ehtiyat nüsxələri yox idi.
  • WAL-Delta ehtiyat nüsxələri yox idi.
  • Və hələ çox şey yox idi.

Bu bir neçə il ərzində WAL-G çox böyüdü.

WAL-G: yeni xüsusiyyətlər və icmanın genişləndirilməsi. Georgi Rılov

Və 2020-ci ilə qədər yuxarıda göstərilənlərin hamısı artıq ortaya çıxdı. Və buna indi əlimizdə olanlar əlavə edildi:

  • GitHub-da 1-dən çox ulduz.
  • 150 çəngəl.
  • Təxminən 15 açıq PR.
  • Və daha çox töhfə verənlər.
  • Və hər zaman açıq məsələlər. Baxmayaraq ki, biz sözün həqiqi mənasında hər gün oraya gedirik və bununla bağlı bir şey edirik.

WAL-G: yeni xüsusiyyətlər və icmanın genişləndirilməsi. Georgi Rılov

Və belə nəticəyə gəldik ki, bu layihə bizim daha çox diqqətimizi tələb edir, hətta Yandex-də idarə olunan verilənlər bazaları xidmətimiz üçün özümüz heç bir şey tətbiq etməyə ehtiyac duymasaq da.

Və haradasa 2018-ci ilin payızında ağlımıza bir fikir gəldi. Adətən komandanın bəzi funksiyaları inkişaf etdirməyin və ya kifayət qədər əliniz yoxdursa, səhvləri düzəltməyin bir neçə yolu var. Məsələn, başqa bir tərtibatçı işə götürə və ona pul ödəyə bilərsiniz. Və ya bir müddət stajyer götürə və ona müəyyən maaş da verə bilərsiniz. Ancaq hələ də kifayət qədər böyük bir qrup insan var, onlardan bəziləri artıq həqiqətən kod yazmağı bilir. Sadəcə kodun hansı keyfiyyətdə olduğunu həmişə bilmirsiniz.

Bu barədə düşündük və tələbələri cəlb etməyə çalışmaq qərarına gəldik. Amma tələbələr bizimlə hər şeydə iştirak etməyəcəklər. Onlar işin yalnız bir hissəsini görəcəklər. Və onlar, məsələn, testlər yazacaq, səhvləri düzəldəcək, əsas funksionallığa təsir etməyən xüsusiyyətləri həyata keçirəcəklər. Əsas funksionallıq ehtiyat nüsxələri yaratmaq və ehtiyat nüsxələri bərpa etməkdir. Əgər ehtiyat nüsxəsini yaratmaqda səhv etsək, məlumat itkisi ilə qarşılaşacağıq. Və təbii ki, bunu heç kim istəməz. Hər kəs hər şeyin çox təhlükəsiz olmasını istəyir. Buna görə də, əlbəttə ki, özümüzdən daha az etibar etdiyimiz koda icazə vermək istəmirik. Yəni kritik olmayan istənilən kod əlavə işçilərimizdən almaq istədiyimiz şeydir.

Tələbə PR hansı şərtlərlə qəbul edilir?

  • Onlardan kodlarını testlərlə əhatə etmələri tələb olunur. Hər şey CI-də baş verməlidir.
  • Və biz də 2 rəydən keçirik. Biri Andrey Borodin, biri isə mən.
  • Bundan əlavə, bunun xidmətimizdə heç bir şeyi pozmayacağını yoxlamaq üçün bu öhdəlik ilə montajı ayrıca yükləyirəm. Və heç bir şeyin uğursuz olmadığını yoxlayırıq.

Açıq Mənbə üzrə xüsusi kurs

WAL-G: yeni xüsusiyyətlər və icmanın genişləndirilməsi. Georgi Rılov

Bunun nə üçün lazım olduğu və niyə bu, mənə elə gəlir ki, gözəl fikirdir.

Bizim üçün qazanc göz qabağındadır:

  • Əlavə əllər alırıq.
  • Biz isə smart kod yazan ağıllı tələbələr arasında komandaya namizədlər axtarırıq.

Tələbələrə nə faydası var?

Onlar daha az açıq ola bilər, çünki tələbələr, ən azı, yazdıqları kod üçün pul almırlar, ancaq tələbə qeydlərinə görə qiymət alırlar.

Bu barədə onlardan soruşdum. Və öz sözləri ilə:

  • Açıq Mənbədə ianəçi təcrübəsi.
  • CV-nizdə bir xətt çəkin.
  • Özünüzü sübut edin və Yandex-də müsahibədən keçin.
  • GSoC üzvü olun.
  • Kod yazmaq istəyənlər üçün +1 xüsusi kurs.

Kursun necə qurulduğu barədə danışmayacağam. Sadəcə onu deyim ki, WAL-G əsas layihə idi. Biz bu kursa Odyssey, PostgreSQL və ClickHouse kimi layihələri də daxil etdik.

Və nəinki bu kursda problem verdilər, həm də diplom və kurs işləri verdilər.

İstifadəçilər üçün fayda haqqında nə demək olar?

İndi keçək sizi ən çox maraqlandıran hissəyə. Bunun sənə nə faydası var? Məsələ ondadır ki, tələbələr bir çox səhvləri düzəldiblər. Və bizdən xahiş etdiyiniz sorğu xüsusiyyətlərini etdik.

İcazə verin, sizə çoxdan arzuladığınız və reallaşan şeylərdən danışım.

WAL-G: yeni xüsusiyyətlər və icmanın genişləndirilməsi. Georgi Rılov

Tablespaces dəstəyi. WAL-G-də cədvəl boşluqları, ehtimal ki, WAL-G-nin buraxılışından bəri gözlənilirdi, çünki WAL-G, cədvəl boşluqları ilə verilənlər bazası ehtiyat nüsxələrinin dəstəkləndiyi başqa bir ehtiyat nüsxə aləti olan WAL-E-nin davamçısıdır.

İcazə verin, bunun nə olduğunu və nə üçün lazım olduğunu sizə qısaca xatırladım. Tipik olaraq, bütün Postgres məlumatlarınız fayl sistemində baza adlanan bir qovluğu tutur. Və bu kataloq artıq Postgres-in tələb etdiyi bütün faylları və alt kataloqları ehtiva edir.

Cədvəl boşluqları Postgres məlumatlarını ehtiva edən qovluqlardır, lakin onlar əsas kataloqdan kənarda yerləşmirlər. Slayd göstərir ki, masa boşluqları əsas kataloqdan kənarda yerləşir.

WAL-G: yeni xüsusiyyətlər və icmanın genişləndirilməsi. Georgi Rılov

Postgresin özü üçün bu nə kimi görünür? Əsas kataloqda ayrıca pg_tblspc alt kataloqu var. Və əslində əsas kataloqdan kənar Postgres məlumatlarını ehtiva edən qovluqlara simvolik bağlantıları ehtiva edir.

WAL-G: yeni xüsusiyyətlər və icmanın genişləndirilməsi. Georgi Rılov

Bütün bunları istifadə edərkən, sizin üçün bu əmrlər belə görünə bilər. Yəni müəyyən edilmiş cədvəl məkanında cədvəl yaradırsınız və onun indi harada olduğunu görürsünüz. Bunlar son iki sətir, çağırılan son iki əmrdir. Və orada aydın olur ki, bir yol var. Amma reallıqda bu, real yol deyil. Bu, əsas kataloqdan cədvəl sahəsinə qədər prefiksli yoldur. Və oradan real məlumatlarınıza aparan simvolik əlaqə ilə uyğunlaşdırılır.

Bütün bunları komandamızda istifadə etmirik, lakin WAL-G-yə keçmək istədiklərini bizə yazan bir çox digər WAL-E istifadəçiləri tərəfindən istifadə edildi, lakin bu, onları dayandırdı. Bu indi dəstəklənir.

WAL-G: yeni xüsusiyyətlər və icmanın genişləndirilməsi. Georgi Rılov

Xüsusi kursumuzun bizə gətirdiyi başqa bir xüsusiyyət tutmaqdır. Yəqin ki, Postgres ilə müqayisədə Oracle ilə daha çox işləmiş insanlar catchup haqqında bilirlər.

Bunun nə olduğu haqqında qısaca. Xidmətimizdəki klaster topologiyası adətən bu kimi görünə bilər. Ustamız var. Ondan qabaqcadan yazma jurnalını yayımlayan bir replika var. Və replika ustaya hazırda hansı LSN-də olduğunu bildirir. Bununla paralel olaraq bir yerdə jurnal arxivləşdirilə bilər. Və jurnalın arxivləşdirilməsi ilə yanaşı, ehtiyat nüsxələr də buludlara göndərilir. Və delta ehtiyat nüsxələri göndərilir.

Problem nə ola bilər? Kifayət qədər böyük bir verilənlər bazanız olduqda, replikanızın masterdan çox geri qalmağa başladığı ortaya çıxa bilər. Və o qədər geridə qalır ki, heç vaxt ona çata bilmir. Bu problem adətən bir şəkildə həll edilməlidir.

Və ən asan yol, replikanı silmək və yenidən yükləməkdir, çünki o, heç vaxt tutmayacaq və problemi həll etmək lazımdır. Lakin bu, kifayət qədər uzun müddətdir, çünki bütöv bir 10 TB verilənlər bazası ehtiyat nüsxəsini bərpa etmək çox, çox uzun müddətdir. Və belə problemlər yaranarsa, bütün bunları mümkün qədər tez etmək istəyirik. Və tutmaq məhz bunun üçündür.

Catchup bu şəkildə buludda saxlanılan delta ehtiyat nüsxələrindən istifadə etməyə imkan verir. Siz geridə qalan replikanın hazırda hansı LSN-nin aktiv olduğunu deyirsiniz və həmin LSN ilə hal-hazırda klasterinizin yerləşdiyi LSN arasında delta ehtiyat nüsxəsini yaratmaq üçün onu catchup əmrində təyin edirsiniz. Bundan sonra siz bu ehtiyat nüsxəni geridə qalan replikaya bərpa edirsiniz.

Digər əsaslar

Tələbələr də bir anda bizə bir çox xüsusiyyətləri gətirdilər. Yandex-də təkcə Postgres deyil, həm də MySQL, MongoDB, Redis, ClickHouse-a sahib olduğumuz üçün bir anda MySQL-in vaxtında bərpası ilə ehtiyat nüsxələri çıxara bilməli olduq və buna görə də yükləmək imkanı var idi. onları buluda.

Və biz bunu WAL-G-nin etdiyinə oxşar şəkildə etmək istədik. Və biz sınaqdan keçirməyə və hər şeyin necə görünəcəyini görmək qərarına gəldik.

Və əvvəlcə bu məntiqi heç bir şəkildə paylaşmadan, kodu çəngəldə yazdılar. Gördülər ki, bizim bir növ işləyən modelimiz var və o, uça bilir. Sonra düşündük ki, bizim əsas cəmiyyətimiz postqresistlərdir, WAL-G-dən istifadə edirlər. Və buna görə də bu hissələri bir şəkildə ayırmalıyıq. Yəni Postgres üçün kodu redaktə edərkən MySQL-i pozmuruq, MySQL-i redaktə edərkən Postgres-i pozmuruq.

WAL-G: yeni xüsusiyyətlər və icmanın genişləndirilməsi. Georgi Rılov

Bunu necə ayırmaq barədə ilk fikir PostgreSQL uzantılarında istifadə edilən eyni yanaşmadan istifadə etmək fikri idi. Və əslində MySQL ehtiyat nüsxəsini yaratmaq üçün bir növ dinamik kitabxana quraşdırmalı idiniz.

Ancaq burada bu yanaşmanın asimmetriyası dərhal görünür. Postgres-in ehtiyat nüsxəsini çıxardığınız zaman üzərinə Postgres üçün normal ehtiyat nüsxəsini qoyursunuz və hər şey qaydasındadır. Və MySQL üçün belə çıxır ki, siz Postgres üçün ehtiyat nüsxəsini quraşdırırsınız və bunun üçün MySQL üçün dinamik kitabxana quraşdırırsınız. Bir növ qəribə səslənir. Biz də belə düşündük və qərara gəldik ki, bu bizə lazım olan həll yolu deyil.

Postgres, MySQL, MongoDB, Redis üçün müxtəlif quruluşlar

Amma bu, bizə elə gəlir ki, düzgün qərara gəlməyə – müxtəlif bazalar üçün müxtəlif məclislər ayırmağa imkan verdi. Bu, WAL-G-nin tətbiq etdiyi ümumi API-yə daxil olacaq müxtəlif verilənlər bazalarının ehtiyat nüsxələrinə bağlı məntiqi təcrid etməyə imkan verdi.

WAL-G: yeni xüsusiyyətlər və icmanın genişləndirilməsi. Georgi Rılov

Bu, tələbələrə problemləri verməzdən əvvəl özümüz yazdığımız hissədir. Yəni, bu, onların səhv bir şey edə biləcəyi hissədir, buna görə də belə bir şey etmək qərarına gəldik və hər şey yaxşı olacaq.

WAL-G: yeni xüsusiyyətlər və icmanın genişləndirilməsi. Georgi Rılov

Bundan sonra problemləri həll etdik. Onlar dərhal söküldü. Tələbələrdən üç əsası dəstəkləmələri tələb olunurdu.

Bu, bir ildən artıqdır ki, bu şəkildə WAL-G-dən istifadə edərək ehtiyat nüsxəsini çıxardığımız MySQL-dir.

İndi MongoDB istehsala yaxınlaşır, burada onu bir faylla bitirirlər. Əslində bütün bunların çərçivəsini biz yazdıq. Sonra tələbələr bəzi işlək şeylər yazdılar. Sonra onları istehsalda qəbul edə biləcəyimiz vəziyyətə gətiririk.

Bu problemlər tələbələrin bu verilənlər bazalarının hər biri üçün tam ehtiyat alətləri yazmağa ehtiyac duyduğu kimi görünmürdü. Bizim belə problemimiz yox idi. Problemimiz ondan ibarət idi ki, biz vaxtında bərpa etmək istəyirdik və buludda ehtiyat nüsxəsini çıxarmaq istəyirdik. Və tələbələrdən bunu həll edəcək kod yazmağı xahiş etdilər. Tələbələr birtəhər ehtiyat nüsxələrini götürən artıq mövcud ehtiyat alətlərindən istifadə etdilər və sonra hamısını WAL-G ilə birlikdə yapışdırdılar, bu da hamısını buludlara yönləndirdi. Həm də buna bir nöqtədə bərpa əlavə etdilər.

WAL-G: yeni xüsusiyyətlər və icmanın genişləndirilməsi. Georgi Rılov

Tələbələr başqa nə gətirdilər? WAL-G-yə Libsodium şifrələmə dəstəyi gətirdilər.

Yedək saxlama siyasətlərimiz də var. İndi ehtiyat nüsxələri daimi olaraq qeyd etmək olar. Və birtəhər onların saxlanması prosesini avtomatlaşdırmaq xidmətiniz üçün daha rahatdır.

WAL-G: yeni xüsusiyyətlər və icmanın genişləndirilməsi. Georgi Rılov

Bu təcrübənin nəticəsi nə oldu?

Kursa ilkin olaraq 100-dən çox insan qeydiyyatdan keçib. Əvvəlcə Yekaterinburqdakı universitetin Ural Federal Universiteti olduğunu demədim. Biz orada hər şeyi elan etdik. 100 nəfər qeydiyyatdan keçib. Əslində, daha az adam bir şey etməyə başladı, təxminən 30 nəfər.

Kursu daha az adam bitirdi, çünki artıq mövcud olan kodlar üçün testlər yazmaq lazım idi. Həm də bəzi səhvləri düzəldin və ya bəzi funksiyalar yaradın. Və bəzi tələbələr hələ də kursu bağladılar.

Hazırda bu kurs zamanı tələbələr 14-ə yaxın məsələni həll ediblər və müxtəlif ölçülü 10 funksiya hazırlayıblar. Və mənə elə gəlir ki, bu, bir və ya iki tərtibatçının tam hüquqlu dəyişdirilməsidir.

Digər işlərlə yanaşı, biz diplomlar və kurs işləri verdik. 12 nəfər isə diplom alıb. Onlardan 6-sı artıq “5”-də özünü müdafiə edib. Qalanların hələ müdafiəsi yox idi, amma düşünürəm ki, onlar üçün də hər şey yaxşı olacaq.

Gələcək üçün planlar

Gələcək üçün hansı planlarımız var?

Ən azından istifadəçilərdən eşitdiyimiz və etmək istədiyimiz xüsusiyyət tələbləri. Bu:

  • HA çoxluq ehtiyat nüsxə arxivində vaxt qrafiki izləmənin düzgünlüyünün monitorinqi. Bunu WAL-G ilə edə bilərsiniz. Düşünürəm ki, bu məsələ ilə məşğul olacaq tələbələrimiz olacaq.
  • Artıq buludlar arasında ehtiyat nüsxələrin və WAL-ın ötürülməsinə cavabdeh olan bir insanımız var.
  • Və bu yaxınlarda biz səhifələri yenidən yazmadan və ora göndərdiyimiz arxivləri optimallaşdırmadan artımlı ehtiyat nüsxələrini çıxarmaqla WAL-G-ni daha da sürətləndirə biləcəyimiz haqqında bir fikir dərc etdik.

Onları burada paylaşa bilərsiniz

Bu hesabat nə üçün idi? Üstəlik, indi bu layihəni dəstəkləyən 4 nəfərdən başqa əlavə əllərimiz də var ki, onlardan da kifayət qədər çoxdur. Xüsusilə onlara şəxsi mesajda yazsanız. Əgər siz məlumatlarınızın ehtiyat nüsxəsini çıxarır və bunu WAL-G-dən istifadə edərək edirsinizsə və ya WAL-G-ə keçmək istəyirsinizsə, biz sizin istəklərinizi asanlıqla yerinə yetirə bilərik.

WAL-G: yeni xüsusiyyətlər və icmanın genişləndirilməsi. Georgi Rılov

Bu QR kodu və keçiddir. Onlardan keçib bütün arzularınızı yaza bilərsiniz. Məsələn, bəzi səhvləri düzəltmirik. Və ya həqiqətən hansısa funksiyanı istəyirsiniz, amma nədənsə o, bizimki də daxil olmaqla, hələ heç bir ehtiyat nüsxədə deyil. Bu barədə yazmağınızdan əmin olun.

WAL-G: yeni xüsusiyyətlər və icmanın genişləndirilməsi. Georgi Rılov

Suallar

Salam! Hesabat üçün təşəkkür edirik! WAL-G haqqında sual, lakin Postgres haqqında deyil. WAL-G MySQL-in ehtiyat nüsxəsini çıxarır və əlavə ehtiyat nüsxəsini çağırır. Əgər biz CentOS-da müasir quraşdırmaları götürsək və MySQL-i yaxşı quraşdırsanız, MariDB quraşdırılacaq. 10.3 versiyasından əlavə ehtiyat nüsxə dəstəklənmir, MariDB ehtiyat nüsxəsi dəstəklənir. Bununla necə məşğulsunuz?

Hal-hazırda biz MariDB-nin ehtiyat nüsxəsini çıxarmağa çalışmamışıq. FoundationDB dəstəyi ilə bağlı müraciətlərimiz olub, amma ümumiyyətlə, belə bir müraciət olarsa, o zaman bunu edəcək insanları tapa bilərik. Düşündüyüm qədər uzun və ya çətin deyil.

Günortanız Xeyir Hesabat üçün təşəkkür edirik! Potensial yeni funksiyalar haqqında sual. Lentlərə ehtiyat nüsxəsini çıxara bilmək üçün WAL-G-ni lentlərlə işləməyə hazırsınız?

Tape yaddaşında ehtiyat nüsxə, görünür, o deməkdir ki?

Bəli.

Bu suala məndən yaxşı cavab verə bilən Andrey Borodin var.

(Andrey) Bəli, sual üçün təşəkkürlər! Bulud yaddaşından lentə ehtiyat nüsxəni köçürmək üçün sorğumuz var idi. Və bunun üçün mişar buludlar arasında köçürmə. Çünki buluddan buluda köçürmə lent ötürülməsinin ümumiləşdirilmiş versiyasıdır. Bundan əlavə, Saxlamalar baxımından genişləndirilə bilən bir arxitekturamız var. Yeri gəlmişkən, bir çox Storoges tələbələr tərəfindən yazılmışdır. Və lent üçün Storage yazsanız, o, əlbəttə ki, dəstəklənəcəkdir. Biz istəkləri nəzərdən keçirməyə hazırıq. Orada bir fayl yazmaq, faylı oxumaq lazımdır. Bunları Go-da etsəniz, adətən 50 sətir kodla nəticələnirsiniz. Və sonra lent WAL-G-də dəstəklənəcək.

Hesabat üçün təşəkkür edirik! Maraqlı inkişaf prosesi. Yedəkləmə, testlərlə yaxşı əhatə olunmalı olan ciddi bir funksionallıq parçasıdır. Yeni verilənlər bazası üçün funksionallıq tətbiq edərkən, tələbələr də testləri yazdılar, yoxsa siz testləri özünüz yazıb sonra tətbiqi tələbələrə verdiniz?

Şagirdlər testlər də yazdılar. Lakin tələbələr yeni verilənlər bazası kimi xüsusiyyətlər üçün daha çox yazdılar. İnteqrasiya testləri yazdılar. Və vahid testləri yazdılar. İnteqrasiya keçərsə, yəni hazırda bu, əl ilə icra etdiyiniz bir skriptdir və ya məsələn, cron bunu edir. Yəni orada ssenari çox aydındır.

Tələbələrin çox təcrübəsi yoxdur. Baxış çox vaxt aparır?

Bəli, rəylər çox vaxt aparır. Yəni, adətən, birdən-birə bir neçə komitəçi gəlib deyəndə ki, mən belə etmişəm, belə etmişəm, onda gərək fikirləşib yarım gün ayırıb orada nə yazdıqlarını başa düşəsən. Çünki kodu diqqətlə oxumaq lazımdır. Onların müsahibəsi yox idi. Biz onları çox yaxşı tanımırıq, ona görə də xeyli vaxt tələb olunur.

Hesabat üçün təşəkkür edirik! Əvvəllər Andrey Borodin bildirmişdi ki, WAL-G-də arxiv_komandası birbaşa çağırılmalıdır. Ancaq bir növ klaster patronu vəziyyətində, valların göndəriləcəyi düyünü müəyyən etmək üçün əlavə məntiqə ehtiyacımız var. Bu problemi özünüz necə həll edirsiniz?

Burada probleminiz nədir? Deyək ki, ehtiyat nüsxəsini çıxardığınız sinxron replikanız var? Yoxsa nə?

(Andrey) Fakt budur ki, həqiqətən WAL-G qabıq skriptləri olmadan istifadə üçün nəzərdə tutulub. Əgər bir şey çatışmırsa, onda WAL-G daxilində olması lazım olan məntiqi əlavə edək. Arxivləşdirmənin haradan gəlməsinə gəlincə, biz inanırıq ki, arxivləşdirmə klasterdəki cari masterdan olmalıdır. Replikadan arxivləşdirmək pis fikirdir. Problemlərlə bağlı müxtəlif mümkün ssenarilər var. Xüsusilə, vaxt qrafikləri və hər hansı əlavə məlumatın arxivləşdirilməsi ilə bağlı problemlər. Sual üçün təşəkkür edirik!

(Aydınlaşdırma: qabıq skriptlərindən xilas olduq bu məsələdə)

Axşamınız xeyir! Hesabat üçün təşəkkür edirik! Haqqında danışdığınız tutma xüsusiyyəti ilə maraqlanıram. Bir replikanın arxada qaldığı və yetişə bilmədiyi bir vəziyyətlə qarşılaşdıq. Və WAL-G sənədlərində bu xüsusiyyətin təsvirini tapmadım.

Catchup sözün əsl mənasında 20 yanvar 2020-ci ildə ortaya çıxdı. Sənədləşmə daha çox iş tələb edə bilər. Özümüz yazırıq və çox yaxşı yazmırıq. Və bəlkə də tələbələrdən bunu yazmağı tələb etməyə başlamalıyıq.

Artıq buraxılıb?

Çəkmə sorğusu artıq ölüdür, yəni mən onu yoxladım. Bunu bir test klasterində sınadım. İndiyə qədər bunu döyüş nümunəsində sınaqdan keçirə biləcəyimiz bir vəziyyət olmayıb.

Nə vaxt gözləmək olar?

Mən bilmirəm. Bir ay gözləyin, mütləq yoxlayacağıq.

Mənbə: www.habr.com

Добавить комментарий