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 ، كل ما سبق قد ظهر بالفعل. وإلى هذا أضفنا ما لدينا الآن:

  • أكثر من 1 نجمة على جيثب.
  • 150 شوكة.
  • حوالي 15 العلاقات العامة المفتوحة.
  • والعديد من المساهمين.
  • وفتح القضايا باستمرار. وهذا على الرغم من حقيقة أننا نذهب إلى هناك حرفيًا كل يوم ، فإننا نفعل شيئًا به.

WAL-G: ميزات جديدة وتوسيع المجتمع. جورجي ريلوف

وتوصلنا إلى استنتاج مفاده أن هذا المشروع يتطلب المزيد من اهتمامنا ، حتى عندما لا نحتاج نحن أنفسنا إلى تنفيذ شيء ما لخدمة قواعد البيانات المُدارة الخاصة بنا في Yandex.

وفي مكان ما في خريف عام 2018 ، خطرت لنا فكرة. عادةً ما يكون لدى الفريق عدة طرق حول كيفية قص بعض الميزات وإصلاح الأخطاء إذا لم يكن لديك يد كافية. على سبيل المثال ، يمكنك استئجار مطور آخر ودفع المال له. أو يمكنك أن تأخذ متدربًا لفترة من الوقت وتدفع له أيضًا نوعًا من الراتب. ولكن لا تزال هناك طبقة كبيرة إلى حد ما من الأشخاص ، بعضهم يعرف بالفعل كيفية كتابة الكود. كل ما في الأمر أنك لا تعرف دائمًا جودة هذه الشفرة.

فكرنا في الأمر وقررنا محاولة جذب الطلاب. لكن الطلاب لن يشاركوا في كل شيء معنا. سوف يقومون ببعض الأعمال فقط. وسيقومون ، على سبيل المثال ، بكتابة الاختبارات وإصلاح الأخطاء وتنفيذ الميزات التي لا تؤثر على الوظائف الرئيسية. الوظيفة الرئيسية هي إنشاء نسخ احتياطية واستعادة النسخ الاحتياطية. إذا قمنا بعمل خطأ في إنشاء نسخة احتياطية ، فسنحصل على فقدان البيانات. ولا أحد يريد ذلك بالطبع. الكل يريد أن يكون كل شيء موثوقًا به للغاية. لذلك ، فإن الكود الذي نثق به أقل من الرمز الخاص بنا ، بالطبع ، لا نريد تركه هناك. أي أن أي رمز غير هام هو ما نود الحصول عليه من أيدي العاملين الإضافيين لدينا.

تحت أي شروط يتم قبول العلاقات العامة للطالب؟

  • مطلوب منهم تغطية التعليمات البرمجية الخاصة بهم بالاختبارات. كل شيء يجب أن يحدث في CI.
  • ونمر أيضًا بمراجعتين. واحد من Andrey Borodin وواحد من قبلي.
  • بالإضافة إلى ذلك ، للتحقق من أن هذا لا يكسر أي شيء في خدمتنا ، أقوم بتحميل التجميع بشكل منفصل مع هذا الالتزام. ونحن نتحقق من الاختبارات الشاملة بحيث لا يصطدم أي شيء معنا.

دورة خاصة على المصدر المفتوح

WAL-G: ميزات جديدة وتوسيع المجتمع. جورجي ريلوف

القليل عن سبب الحاجة إلى ذلك ولماذا يبدو لي أنها فكرة رائعة.

بالنسبة لنا ، الربح واضح:

  • نحصل على أيدي إضافية.
  • ونحن نبحث عن مرشحين للفريق من بين الطلاب الأذكياء الذين يكتبون أكواد ذكية.

ما فائدة الطلاب؟

قد تكون أقل وضوحًا ، لأن الطلاب ، على الأقل ، لا يتلقون المال مقابل الكود الذي يكتبونه ، لكنهم يتلقون فقط الدرجات في الاختبار.

سألتهم عن ذلك. وفي كلماتهم:

  • تجربة المساهم في المصدر المفتوح.
  • احصل على سطر في السيرة الذاتية.
  • أظهر نفسك واجتاز مقابلة في Yandex.
  • كن عضوا في GSoC.
  • +1 دورة خاصة لمن يريد كتابة الكود.

لن أتحدث عن كيفية ترتيب الدورة. سأقول فقط أن WAL-G كان المشروع الرئيسي. قمنا أيضًا بتضمين مشاريع مثل Odyssey و PostgreSQL و ClickHouse في هذه الدورة التدريبية.

وقد أعطوا مشاكل ليس فقط في هذه الدورة ، ولكن أيضًا أصدروا شهادات وأوراق نهاية.

ماذا عن فوائد المستخدم؟

الآن دعنا ننتقل إلى الجزء الذي يثير اهتمامك ، بدلاً من ذلك. ما هو الهدف من هذا بالنسبة لك؟ النقطة المهمة هي أن الطلاب أصلحوا الكثير من الأخطاء. وقمنا بعمل ميزات الطلب التي طلبت منا القيام بها.

واسمحوا لي أن أخبركم عن الأشياء التي طالما أردتمها والتي تم تنفيذها.

WAL-G: ميزات جديدة وتوسيع المجتمع. جورجي ريلوف

دعم للطاولات. تم توقع مساحات الجداول في WAL-G منذ إصدار WAL-G ، لأن WAL-G هو خليفة أداة نسخ احتياطي WAL-E أخرى حيث تم دعم النسخ الاحتياطية لقاعدة البيانات مع مساحات الجداول.

اسمحوا لي أن أذكركم بإيجاز بما هو عليه ولماذا كل ذلك ضروري. عادةً ما يكون لديك جميع بيانات Postgres في دليل واحد على نظام الملفات ، يُسمى القاعدة. ويحتوي هذا الدليل بالفعل على جميع الملفات والأدلة الفرعية التي يطلبها Postgres.

مساحات الجداول عبارة عن أدلة حيث توجد بيانات Postgres ، لكنها لا تقع خارج الدليل الأساسي. توضح الشريحة أن tabpacs تقع خارج الدليل الأساسي.

WAL-G: ميزات جديدة وتوسيع المجتمع. جورجي ريلوف

كيف يبدو هذا بالنسبة لـ Postgres نفسها؟ يحتوي الدليل الأساسي على دليل فرعي pg_tblspc منفصل. ويحتوي على روابط رمزية لأدلة تحتوي بالفعل على بيانات Postgres خارج الدليل الأساسي.

WAL-G: ميزات جديدة وتوسيع المجتمع. جورجي ريلوف

عندما تستخدم كل هذا ، قد تبدو هذه الأوامر بالنسبة لك شيئًا كهذا. بمعنى ، يمكنك إنشاء جدول في بعض مساحات الجداول المحددة ومعرفة مكانها الحالي. فيما يلي آخر سطرين ، تم استدعاء الأمرين الأخيرين. وهناك من الواضح أن هناك طريقة. لكن في الحقيقة ، هذه ليست الطريقة الحقيقية. هذا هو المسار المسبق من الدليل الأساسي إلى مساحة الجدول. ومن هناك تتم مطابقته مع ارتباط رمزي يؤدي إلى بياناتك الحقيقية.

لا نستخدم كل هذا في فريقنا ، ولكن تم استخدامه من قبل العديد من مستخدمي WAL-E الآخرين الذين كتبوا إلينا أنهم يريدون الانتقال إلى WAL-G ، ولكن هذا الأمر أزعجهم. الآن يتم دعمه.

WAL-G: ميزات جديدة وتوسيع المجتمع. جورجي ريلوف

ميزة أخرى قدمتها لنا دورتنا الخاصة هي اللحاق بالركب. Catchup معروف للأشخاص الذين ربما عملوا مع Oracle أكثر من Postgres.

باختصار حول ما هو عليه. بطريقة ما ، يمكن أن تبدو طوبولوجيا الكتلة في خدمتنا عادة هكذا. لدينا سيد. يوجد نسخة متماثلة تقوم بدفق سجل الكتابة المسبقة منه. والنسخة المتماثلة تخبر السيد أي LSN تعمل حاليًا. وفي مكان ما بالتوازي مع هذا ، يمكن أرشفة السجل. بالإضافة إلى أرشفة السجل ، يتم أيضًا إرسال النسخ الاحتياطية إلى السحابة. ويتم إرسال النسخ الاحتياطية دلتا.

ماذا ممكن ان تكون المشكلة؟ عندما يكون لديك قاعدة كبيرة إلى حد ما ، فقد ينتهي بك الأمر بنسخة متماثلة تبدأ في التخلف كثيرًا عن السيد. وهي متأخرة جدًا لدرجة أنها لا تستطيع اللحاق به أبدًا. عادة ما تحتاج هذه المشكلة إلى حل بطريقة ما.

وأسهل طريقة هي إزالة النسخة المتماثلة وإعادة تحميلها مرة أخرى ، لأنها لن تلحق بالركب مطلقًا ، ويجب التعامل مع المشكلة. لكن هذا وقت طويل جدًا ، لأن استعادة نسخة احتياطية كاملة من قاعدة بيانات 10 تيرابايت هي وقت طويل جدًا جدًا. ونريد أن نفعل كل ذلك بأسرع ما يمكن إذا ظهرت مثل هذه المشاكل. وهذا هو سبب اللحاق بالركب.

يتيح لك Catchup استخدام نُسخ دلتا الاحتياطية المخزنة في السحابة بهذه الطريقة. يمكنك تحديد LSN النسخة المتماثلة المتأخرة قيد التشغيل حاليًا وتحديدها في أمر catchup من أجل إنشاء نسخة احتياطية دلتا بين LSN و LSN التي تعمل بها مجموعتك حاليًا. وبعد ذلك ، يمكنك استعادة هذه النسخة الاحتياطية إلى نسخة متماثلة كانت متأخرة.

قواعد أخرى

جلب لنا الطلاب أيضًا الكثير من الميزات في وقت واحد. نظرًا لأننا لا نطبخ Postgres فقط في Yandex ، فلدينا أيضًا MySQL و MongoDB و Redis و ClickHouse ، في وقت ما كنا بحاجة إلى عمل نسخ احتياطية باستخدام الاسترداد في الوقت المناسب لـ MySQL ، وكان من الممكن تحميلها إلى الغيمة.

وأردنا القيام بذلك بطريقة مماثلة لما يفعله WAL-G. وقررنا أن نجرب ونرى كيف يبدو كل شيء.

وفي البداية ، دون مشاركة هذا المنطق بأي شكل من الأشكال ، قاموا بكتابة الكود في مفترق طرق. لقد رأينا أن لدينا نوعًا من نموذج العمل ويمكنه الطيران. ثم اعتقدنا أن مجتمعنا الرئيسي هو خبراء postgres'ists ، فهم يستخدمون WAL-G. ولذا فأنت بحاجة إلى فصل هذه الأجزاء بطريقة أو بأخرى. أي عندما يتم تصحيح كود Postgres ، فإننا لا نكسر MySQL ؛ عندما نصحح MySQL ، لا نكسر Postgres.

WAL-G: ميزات جديدة وتوسيع المجتمع. جورجي ريلوف

كانت الفكرة الأولى حول كيفية الفصل بين هذه الفكرة هي استخدام نفس الأسلوب المستخدم في امتدادات PostgreSQL. وفي الواقع ، لعمل نسخة احتياطية من MySQL ، كان عليك تثبيت نوع من المكتبات الديناميكية.

ولكن هنا يظهر عدم تناسق هذا النهج على الفور. عندما تقوم بعمل نسخة احتياطية من Postgres ، فإنك تضع نسخة احتياطية عادية من Postgres عليها وكل شيء على ما يرام. وبالنسبة لـ MySQL ، اتضح أنك تقوم بتثبيت نسخة احتياطية لـ Postgres وكذلك تثبيت مكتبة ديناميكية لـ MySQL لها. تبدو غريبة نوعا ما. لقد اعتقدنا ذلك أيضًا وقررنا أن هذا ليس هو الحل الذي نحتاجه.

تصميمات مختلفة لـ Postgres و MySQL و MongoDB و Redis

لكن هذا سمح لنا ، كما يبدو لنا ، بالتوصل إلى القرار الصحيح - لتخصيص مجموعات مختلفة لقواعد مختلفة. هذا جعل من الممكن عزل المنطق المرتبط بالنسخ الاحتياطية لقواعد البيانات المختلفة التي من شأنها الوصول إلى واجهة برمجة التطبيقات الشائعة التي تنفذها WAL-G.

WAL-G: ميزات جديدة وتوسيع المجتمع. جورجي ريلوف

هذا هو الجزء الذي كتبناه بأنفسنا - قبل تكليف الطلاب بالمهام. أعني ، هذا هو بالضبط الجزء الذي يمكن أن يفعلوا فيه شيئًا خاطئًا ، لذلك توصلنا إلى أنه من الأفضل أن نفعل شيئًا كهذا وسيكون كل شيء على ما يرام.

WAL-G: ميزات جديدة وتوسيع المجتمع. جورجي ريلوف

بعد ذلك أصدرنا المهام. تم تفكيكهم على الفور. كان الطلاب مطالبين بدعم ثلاث قواعد.

هذه هي MySQL ، التي كنا ندعمها باستخدام WAL-G بهذه الطريقة لأكثر من عام الآن.

والآن يقترب MongoDB من الإنتاج ، حيث ينتهي بملف. في الواقع ، لقد كتبنا الإطار العام لكل هذا. ثم كتب الطلاب بعض الأشياء العملية. ومن ثم نأتي بهم إلى حالة يمكننا قبولها في إنتاجنا.

لا تبدو هذه المشكلات كما لو كان على الطلاب كتابة أدوات نسخ احتياطي كاملة لكل قاعدة من قواعد البيانات هذه. لم يكن لدينا هذه المشكلة. كانت مشكلتنا أننا أردنا الاسترداد في الوقت المناسب وأردنا عمل نسخة احتياطية على السحابة. وطلبوا من الطلاب كتابة بعض الأكواد التي من شأنها حل هذه المشكلة. استفاد الطلاب من أدوات النسخ الاحتياطي الحالية التي تقوم بطريقة ما بأخذ النسخ الاحتياطية ، ثم لصقها جميعًا باستخدام WAL-G ، الذي أرسل كل ذلك إلى السحابة. وأيضًا تمت إضافة الاسترداد في الوقت المناسب إلى هذا.

WAL-G: ميزات جديدة وتوسيع المجتمع. جورجي ريلوف

ماذا أحضر الطلاب أيضًا؟ جلبوا دعم تشفير Libsodium إلى WAL-G.

لدينا أيضًا سياسات تخزين النسخ الاحتياطي. يمكن الآن وضع علامة على النسخ الاحتياطية على أنها دائمة. وبطريقة ما يكون من الأنسب لخدمتك أتمتة عملية تخزينها.

WAL-G: ميزات جديدة وتوسيع المجتمع. جورجي ريلوف

ماذا كانت نتيجة هذه التجربة؟

اشترك أكثر من 100 شخص في الدورة. في البداية لم أقل أن الجامعة في يكاترينبورغ هي جامعة أورال الفيدرالية. أعلنا كل شيء هناك. قام 100 شخص بالتسجيل. في الواقع ، بدأ أقل من ذلك بكثير في فعل شيء ما ، حوالي 30 شخصًا.

أغلق عدد أقل من الأشخاص الدورة التدريبية ، لأنه كان من الضروري كتابة اختبارات لتلك الرموز الموجودة بالفعل. وأيضًا إصلاح بعض الأخطاء أو إنشاء نوع من الميزات. وما زال بعض الطلاب يغلقون الدورة.

في الوقت الحالي ، خلال هذه الدورة ، قام الطلاب بإصلاح حوالي 14 مشكلة ، وجعلوا 10 ميزات بأحجام مختلفة. ويبدو لي أن هذا بديل كامل لمطور واحد أو اثنين.

من بين أمور أخرى ، أصدرنا شهادات وأوراق نهاية. وحصل 12 على دبلومات. 6 منهم قد دافعوا بالفعل عن "5". لا يزال الباقون بلا حماية ، لكنني أعتقد أنهم سيكونون على ما يرام أيضًا.

خطط للمستقبل

ما هي خططنا للمستقبل؟

على الأقل طلبات الميزات التي سمعناها بالفعل من المستخدمين ونريد تقديمها. هذا:

  • تتبع صحة تتبع الخط الزمني في أرشيف النسخ الاحتياطي لمجموعة HA. يمكنك القيام بذلك باستخدام WAL-G. وأعتقد أننا سنجد الطلاب الذين سيتولون هذه المسألة.
  • لدينا بالفعل شخص مسؤول عن نقل النسخ الاحتياطية و WAL بين السحاب.
  • وقد نشرنا مؤخرًا فكرة أنه يمكننا تسريع WAL-G أكثر من خلال فك ضغط النسخ الاحتياطية المتزايدة دون إعادة كتابة الصفحات وتحسين الأرشيفات التي نرسلها هناك.

يمكنك مشاركتها هنا

لماذا كان هذا التقرير؟ بالإضافة إلى حقيقة أنه بالإضافة إلى 4 أشخاص يدعمون هذا المشروع ، لدينا أيدي إضافية ، وهي كثيرة جدًا. خاصة إذا كنت تكتب إليهم بشكل شخصي. وإذا قمت بنسخ بياناتك احتياطيًا وقمت بذلك باستخدام WAL-G أو كنت ترغب في الانتقال إلى WAL-G ، فيمكننا مراعاة رغباتك بسهولة تامة.

WAL-G: ميزات جديدة وتوسيع المجتمع. جورجي ريلوف

هذا رمز الاستجابة السريعة ورابط. يمكنك متابعتها وكتابة كل قائمة الرغبات الخاصة بك. على سبيل المثال ، نحن لا نصلح الخلل. أو تريد حقًا بعض الميزات ، ولكن لسبب ما لم يتم حفظها في أي نسخة احتياطية ، بما في ذلك الميزة الخاصة بنا. تأكد من الكتابة عنها.

WAL-G: ميزات جديدة وتوسيع المجتمع. جورجي ريلوف

الأسئلة

مرحبًا! شكرا على التقرير! السؤال عن WAL-G ، ولكن ليس عن Postgres. يقوم WAL-G بعمل نسخة احتياطية من MySQL ويستدعي نسخة احتياطية إضافية. إذا أخذنا تثبيتات حديثة على CentOS وإذا قمت بتثبيت MySQL ، فسيتم تثبيت MariDB. نظرًا لعدم دعم النسخ الاحتياطي الإضافي للإصدار 10.3 ، يتم دعم النسخ الاحتياطي لـ MariDB. كيف حالك مع هذا؟

في الوقت الحالي ، لم نحاول إجراء نسخ احتياطي لـ MariDB. لقد تلقينا طلبات دعم لـ FoundationDB ، ولكن بشكل عام ، إذا كان هناك مثل هذا الطلب ، فيمكننا العثور على الأشخاص الذين سيقومون بذلك. إنها ليست طويلة وليست صعبة كما أعتقد.

مساء الخير شكرا على التقرير! سؤال حول الميزات الجديدة المحتملة. هل أنت مستعد لجعل WAL-G يعمل مع الأشرطة حتى تتمكن من النسخ الاحتياطي إلى الأشرطة؟

يبدو أن النسخ الاحتياطي على تخزين الشريط يعني؟

نعم.

أندري بورودين موجود هناك ، يمكنه الإجابة على هذا السؤال أفضل مني.

(أندري) نعم ، شكرًا على السؤال! تلقينا طلبًا لنقل النسخة الاحتياطية إلى شريط من التخزين السحابي. ولهذا منشور نقل بين الغيوم. لأن النقل بين السحب هو نسخة معممة من النقل إلى الشريط. بالإضافة إلى ذلك ، لدينا بنية قابلة للتوسيع من حيث المخازن. بالمناسبة ، كتب العديد من Storoges من قبل الطلاب. وإذا كتبت تخزينًا للشريط ، فسيتم دعمه بالطبع. نحن على استعداد للنظر في طلب السحب. هناك من الضروري كتابة ملف لقراءة ملف. إذا قمت بهذه الأشياء في Go ، فعادةً ما ينتهي بك الأمر بـ 50 سطرًا من التعليمات البرمجية. وبعد ذلك سيتم دعم الشريط في WAL-G.

شكرا على التقرير! عملية تطوير مثيرة للاهتمام. يعد النسخ الاحتياطي جزءًا مهمًا من الوظائف التي يجب تغطيتها جيدًا بالاختبارات. عندما نفذت وظائف لقواعد البيانات الجديدة ، هل كان الطلاب يكتبون الاختبارات أيضًا ، أم هل كتبت الاختبارات بنفسك ، ثم أعطت التنفيذ للطلاب؟

تم كتابة الاختبارات أيضًا من قبل الطلاب. لكن الطلاب كتبوا المزيد عن ميزات مثل قواعد البيانات الجديدة. كتبوا اختبارات التكامل. وكتبوا اختبارات الوحدة. إذا نجح التكامل ، فهذا هو ، في الوقت الحالي ، نص تقوم بتنفيذه يدويًا أو يقوم cron بذلك نيابةً عنك ، على سبيل المثال. هذا هو ، هناك سيناريو مفهوم للغاية.

لا يمتلك الطلاب خبرة كبيرة. كم من الوقت تستغرق المراجعة؟

نعم ، المراجعات تستغرق وقتًا طويلاً. هذا هو ، عادة ، عندما يأتي العديد من الملتزمين في الحال ويقولون إنني فعلت ذلك ، لقد فعلت ذلك ، فأنت بحاجة إلى التفكير وتخصيص نصف يوم تقريبًا لمعرفة ما كتبوه هناك. لأنه يجب قراءة الكود بعناية. لم يتم إجراء مقابلات معهم. نحن لا نعرفهم جيدًا ، لذلك يستغرق الأمر وقتًا طويلاً.

شكرا على التقرير! صرح أندري بورودين في وقت سابق أنه يجب استدعاء archive_command في WAL-G مباشرة. ولكن في حالة بعض راعي الكتلة ، نحتاج إلى منطق إضافي لتحديد العقدة التي نرسل منها الأعمدة. كيف تحل هذه المشكلة بنفسك؟

ما هي مشكلتك هنا؟ لنفترض أن لديك نسخة متماثلة متزامنة تأخذ نسخة احتياطية منها؟ أو ماذا؟

(أندرو) النقطة المهمة هي أنه من المفترض حقًا استخدام WAL-G دون تغليفه بنصوص شل. إذا كان هناك شيء مفقود ، فلنضيف المنطق الذي يجب أن يكون داخل WAL-G. فيما يتعلق بالمكان الذي يجب أن يكون منه النسخ الاحتياطي ، نعتقد أن النسخة الاحتياطية يجب أن تكون من الرئيسي الحالي في الكتلة. الأرشفة من نسخة متماثلة فكرة سيئة. هناك العديد من السيناريوهات المحتملة للمشاكل. على وجه الخصوص ، مشاكل مع الجداول الزمنية أرشفة وأي معلومات إضافية. شكرا على السؤال!

(توضيح: تخلصنا من تغليف البرامج النصية في هذه القضية)

مساء الخير! شكرا على التقرير! كنت مهتمًا بميزة اللحاق بالركب التي ذكرتها. في مواجهة حالة النسخ المتماثلة المتأخرة ، والتي لم تستطع اللحاق بالركب. وفي WAL-G لم أجد وصفًا في وثائق هذه الميزة.

ظهر Catchup حرفيًا في 20 يناير 2020. ربما تحتاج الوثائق إلى تحسين. نكتبها بأنفسنا ولا نكتبها بشكل ممتاز. وربما ينبغي على الطلاب البدء في مطالبتهم بكتابتها.

هل تم إصداره بالفعل؟

تم دمج طلب السحب بالفعل ، أي لقد راجعته. لقد جربت هذا على مجموعة اختبار. حتى الآن ، لم يكن لدينا موقف يمكننا فيه اختبار ذلك على مثال قتالي.

متى تتوقع؟

لا أعرف. انتظر شهرًا ، وسوف نتحقق من ذلك بالتأكيد.

المصدر: www.habr.com

إضافة تعليق