الحديث عن بوستجرس. مقابلة مع أليكسي ليسوفسكي في بودكاست الزنك. الجزء الأول

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

مرحباً بالجميع ، هذه هي القضية الأربعون في بودكاست Zinc Prod ، وأنطون أوكوليلوف ونيكيتا فاسيلتشينكو وأوليغ غريتساك مضيفين دائمين معنا في الاستوديو.


انطون : اليوم ، لدينا ضيف ، أليكسي ليسوفسكي. ليشا ، يرجى تقديم نفسك ، من أنت ، ماذا تفعل ، وهلم جرا.


أليكسي : مرحباً بالجميع ، اسمي أليكسي ليسوفسكي ، حيث قدمني أنتوخا بالفعل. أدير Postgres ، وأنا PostgreSQL DBA (مسؤول قاعدة بيانات) ، أعمل مع تسجيل الدخول كل يوم ، 7 أيام في الأسبوع ، وإدارة قواعد بيانات العميل. لدينا مكتب - إنها شركة استشارية ، تعمل في مجال الإدارة والدعم والدعم. ويأتي إلينا أشخاص مختلفون للغاية مع قواعد بياناتهم ، وكقاعدة عامة ، هذه شركات - صغيرة ، كبيرة ، صغيرة ، وجميع أنواع مختلفة - لديهم مشاكل في قاعدة البيانات ، ونحلل هذه المشاكل ونحاول إصلاحها بطريقة أو بأخرى. في الواقع ، نحن نحل مشاكل الأشخاص الآخرين والشركات الأخرى. شيء من هذا القبيل.


حسنًا ، في وقت فراغي ، أحب القيام بأشياء مختلفة ، والمشي عبر الغابة ، والتزلج على الجليد ، والمشي ، وشرب البيرة


انطون : شرب البيرة المدخنة


نيكيتا : قبل الإصدار تحدث ليوكا عن البيرة المدخنة


اليكسي : نعم ، البيرة المدخنة ، هناك مثل هذا لذيذ ، أوصي. روشبير ميرزن.


أنتون : حسناً ، فضلاً أخبرني ، أنت dbshnik ، لقد كنت تعمل لفترة طويلة ، منذ عدة سنوات. ما مدى صعوبة ذلك؟ يسمونك في الليل ويطلبون منك إصلاح القاعدة. اتصلت بك في الخامسة صباحًا منذ حوالي عام أو نصف.


أليكسي : نعم ، كان الأمر كذلك.


انطون : كيف يمكنك البقاء على قيد الحياة ، قل لي


أليكسي : اسمع ، لقد كنت أعمل منذ عام 2014. حتى عام 2014 ، عملت كمسؤول Linux في تطوير الويب. لدى المشرف الكثير من الأشياء ، كان لدينا kvm الافتراضية ، كان هناك الكثير من Linux ، كانت هناك جميع أنواع Ruby-on-rails ، nginxs ، php ، rails ...


أوليغ : عامل الميناء بالفعل؟


أليكسي : عامل الإرساء قد بدأ لتوه ، ولم نقم بتقديمه في أي مكان في الإنتاج ، ولكن الاتجاهات لهذا قد بدأت بالفعل.


وكان هناك الكثير من postgres في مكتبنا. ثم طاردت روبل طويل وقررت أنه يمكنني العمل على وظيفتين في نفس الوقت. وبدأ العمل كمسؤول عن بعد في مكتب موسكو. جمعت بين عملين ، هناك فقط قواعد البيانات كانت تدار من قبل Postgresql الاستشارية. كان هناك Max Boguk ، Ilya Kosmodemyansky ، وكمسؤول ، بدأت في أداء جزء من المهام المرتبطة بالسفارة. حسنًا ، أنا بدأت أتناول الخبز بهدوء. وفي مرحلة ما يقول ماكس هذا لي: اسمع ، ودعك تذهب للعمل معنا. سوف تترك كل عملك ، وظائف بدوام جزئي ، وسوف تأتي إلينا بدوام كامل.


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


انطون : ولكن بشكل عام ، هل من الضروري معرفة هذه الأشياء الادارية؟ ليس هناك فقط ، فالقاعدة في فراغ ، إنها تدور في مكان ما ، تحتاج إلى تكوين نظام التشغيل ، أليس كذلك؟


أليكسي : نعم ، نعم ، هذا بالضبط لأنه يعتمد بشكل كبير بشكل كبير على الأنظمة الفرعية لنظام التشغيل والذاكرة الظاهرية وإدارة القرص ، أي يبدو الأمر كما لو كان هو نفسه لا يعمل مباشرة على الموارد ، كما لو كان يفرغ كل هذا العمل إلى نظام التشغيل ، وهو نفسه يدير القرص I / O ، إدارة صفحة الذاكرة ، هذا كل شيء ، تبديل العملية ، وبالتالي ، إذا واجهت إيقاف تشغيل postgres ، هناك أيضًا اختراق صغير في نظام التشغيل ، وكيف يعمل كل شيء هناك ، وكيف يعمل على الواجهة مع postgres.


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


أوليغ : هل لديك لدعم postgres على ويندوز؟


أليكسي : نعم ، كان عليّ أن يكون لدينا عميل ، هم مع ويندوز ، خدمنا نوعًا من مكتب سان بطرسبرغ ، قمنا بمراجعة قاعدة البيانات لهم. قاعدتهم كانت على ويندوز ، كان الأمر مخيفًا بشكل عام ، لقد وصلنا ببعض البروتوكول عبر بروتوكول المحطة الطرفية ، افتتح Remote Desktop ، أطلقنا هناك بعض الأشياء المتعلقة بتسجيل الأداء. باختصار ، لقد كان من الصعب ، المخيف ، كيف يتم الآن تذكر حلم رهيب. والآن يجلس العملاء بشكل أساسي على نظام Linux. تقريبا لا أحد على ويندوز.


أوليغ : ما هو الألم الرئيسي في Postgre الذي يمكن أن يلاحظه الجميع؟


أليكسي : الكثير من الناس يريدون مصورًا تلقائيًا وسيدًا متعددًا. حسنا ، المتعدد ، بالطبع ، مثل هذا الشيء ، لا يمكن تحقيقه. لكن الجميع عمل مع جاليرا (مع Mysql) ، ويقولون: لماذا ، نحن نريد أيضًا تقدمًا متعدد الأطراف.


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


انطون : اسمع ، هل يمكن أن تخبرنا باختصار ما هي رعاة للمبرمجين بسيطة؟ نحن نستمع بشكل رئيسي إلى قادة الفرق والمبرمجين


نيكيتا : انتظر ، هل لي أن أقتلك ، وسأطلب أكثر لغير المبرمجين أن يشرحوا ما هو جهاز الإرسال المتعدد


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


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


نيكيتا : وهذا يرتبط مباشرة بمروحة السيارات ، نعم ، هل هو متصل؟


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


انطون : هل باتروني محض التبديل أو شوكة postgres ، نوعا من الإضافة؟


أليكسي : هذا ، إذا جاز التعبير ، خدمة منفصلة ، وهي عملية منفصلة يتم تشغيلها على مضيف مع قاعدة بيانات. وقال انه يراقب حالة الكتلة بعد الكتلة. يتم متابعة هدفين هنا - autofailover وإدارة الكتلة. لكن في هذه الحالة ، نحصل على كتلة موزعة ، ولكن لدينا عدة عقد في الكتلة ، رئيسية والعديد من النسخ المتماثلة. وفقا لذلك ، تحتاج إلى مراقبة حالة الكتلة باستمرار ، ومعرفة ما إذا كان السيد على قيد الحياة باستمرار. إذا توفي فجأة - تحتاج إلى التبديل إلى دور "سيد" خادم آخر. ولهذا يستخدم ، بشكل عام ، هناك طريقتان ، كيفية دعم مجموعة العرض هذه ، التمثيل في مجموعة كيف ينبغي أن تعيش في الوقت الحالي. هناك خيار عند كل من عقد الكتلة - أنها تحقق بعضها البعض. ويمكنك تخزين هذه الحالة في الخارج ، أي خارج الكتلة. ويستخدم فقط Patroni هذا النهج ، فهو يأخذ ويخزن حالة الكتلة في النظام الثالث. هذا هو عادة نوع من DCS (تكوين نظام التخزين الموزع). يمكن أن يكون الخ ، القنصل ، أو يمكن أن يكون kuberenetesovsky الخ. أي اعتمادا على ما هي البنية التحتية. حسنًا وتبعًا لذلك ، يحفظ Patroni ببساطة حالة الكتلة في نظام DCS هذا ويقوم بتحديثه.


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


انطون : وإذا كانت الشبكة قد تراجعت بين Patroni والقاعدة؟


أليكسي : حسنًا ، هناك قاعدة بيانات ، إما أن يكون نوعًا من الخوادم ، أو لنقل ، في Kubernetes ، يمكن أن يكون نوعًا من الباطن. النظر في حالة بسيطة ، دعنا نقول هذا هو الخادم. على نفس الخادم ، لدينا قاعدة بيانات قيد التشغيل ، وعلى نفس الخادم ، نقوم بتشغيل وكيل Patroni. هذه عملية خفيفة الوزن ، تعمل على نفس المضيف وتتحدث بشكل نسبي على المضيف المحلي. قد تومض شبكتنا بين مستودع DCS والمضيف حيث تعمل القاعدة و Patroni.


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


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


أوليغ . نعم ، على الفور


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


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


ونوع المشاكل التي تنشأ: المشكلة الأساسية التي لا يشعر بها الناس على الفور هي أننا يمكن أن نفقد بعض البيانات من خلال الملف التلقائي


أوليغ : بسبب تأخر النسخ المتماثل؟


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


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


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


انطون : ماذا عن النسخ المتماثل متزامن؟


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


انطون : اسمع ، خادمين فقط يسقطان - إنه يشبه تقديم غزو للأجانب


أليكسي : وهناك العاهرة


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


انطون : كان عاملا بشريا. حسنا نعم ، هذا يحدث.


أليكسي : بالمناسبة ، لا أتذكر سبب المكالمة


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


أوليغ : مائة العربات والسجلات


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


أليكسي : حسنًا ، هناك الشيء الوحيد الذي ربما نكون على صلة به ، نظرنا إلى أن كل شيء على ما يرام


أوليغ : أكد وفاة المريض


أنتون : في الواقع ، كان عليك فقط الانتظار إلى حد كبير.


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


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


أوليغ : كل ​​شيء من شركتنا هو المرجح


أليكسي : لا ، مختلف


انطون : أوليغ ، اتصل أكثر


أوليغ : سنفعل التحول اليوم ، ربما سأكون على اتصال


أليكسي : لدينا شباب ، وقت المساء يغلق ، وسوف يعملون فقط


أنتون : اسمع يا ليخ ، قلت إن باتروني لديه بعض نظائرها. كيف تختلف ، ما هي


أليكسي : هناك خياران أساسيان ، هناك repmgr ، ظهر هذا الشيء منذ زمن بعيد ، منذ حوالي 10 سنوات. وهي تنفذ آلية عندما تتحقق عقد مجموعة ما بعد النعمة من بعضها البعض ، وهو على قيد الحياة ، وليس على قيد الحياة. لكن في رأيي ، هذا ليس بالشيء الذي لا يعجبني مخطط العمل هذا.


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


وهناك خيار آخر هو Stolon. ظهر في نفس الوقت تقريبا مثل Patroni ، في وقت لاحق قليلا. هو مكتوب على الذهاب.


ولكن لديها المزيد من الهندسة المعمارية branchy. إذا قمت بفتح موقع المشروع ، فستكون هناك صور ، ويتكون Stolon نفسه من عدة مكونات. لديه العقد keeper التي تعمل مع قواعد البيانات التي ترفع Postges. ثم هناك ما يسمى العقد الحارس. يراقبون حالة الكتلة ، والتحقق من توافرها ، والتحقق من أن العقد على قيد الحياة أو ليست على قيد الحياة. يقومون بإدارة حالة الكتلة وإعادة تكوينها إذا حدث شيء ما.


وهناك ما يسمى العقد بالوكالة ، وكل حركة المرور تمر عبرها. تطبيق العميل يعمل مع الوكلاء. -, - , . أي . , , Stolon DCS, consul, etcd. - .


, - , bare metal , , - , . . ( -) , , .


, . . , . , . oltp- . Stolon , .


, 6 8, . , , . , — wal_keep_segments — - , , , . , - . , . . أي , . , , . , — . .


: , , - Citus? , .


: Citus — . Citus , CitusDB, -. , , ,


: ?


: , , . . , pg autofailover. , . , , . , , . , , . , , . أي .


: Citus. , , . — , ...


: , ,


: , , , , ,


: , , . , , , . "in the wild" . , .


سيتم نشر المزيد من فك تشفير المشكلة على موقع Habr في المستقبل القريب ، ولكن الآن اشترك في بودكاست Zinc Prod ، فهناك الكثير من الأشياء المثيرة للاهتمام في المستقبل!

Source: https://habr.com/ru/post/ar485322/


All Articles