قواعد البيانات على HighLoad ++ 2019

العمل مع قاعدة البيانات هو ما يؤثر بشكل كبير على أداء أي خدمة ويب. إذا حاولت ، يمكنك ترتيب حمولة عالية دون أي حمولة على الإطلاق.

وإذا فعلت كل شيء بحكمة ، فسوف يتحول إلى معالجة طلبات الآلاف من المستخدمين. لذلك ، لدى الجدول HighLoad ++ تقليديا العديد من التقارير على قواعد البيانات. لدينا مسارات على PostgreSQL و MySQL و ClickHouse ، وهناك العديد من التقارير حول MongoDB (في أفضل التقاليد ، المتكلم هو مهندس أداء في MongoDB). بالإضافة إلى ذلك ، هناك خطب حول مقارنة الطرق المختلفة أو النظر في حلول متخصصة. وللعموم ، دعونا نضيف Tarantool والذاكرة هنا. يرتبط ما مجموعه 33 تقريرًا بشكل مباشر بقسم "قواعد البيانات وأنظمة التخزين" وما لا يقل عن 10 تقارير. وهذا لا يحسب عمليات التخفيف ، التي لا تقل عن عشرة ، وسيتم إضافة جديدة على طول الطريق.

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

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

ClickHouse Query Profiler


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

في هذا التقرير ، سيتحدث نيكيتا لابكوف عن جهاز مثل هذا الملف التعريفي لطلبات ClickHouse ، والذي يسمح لك بتحديد أي جزء من الكود يبطئ لطلب معين . واتخاذ التدابير المناسبة لتنفيذ الشهير "ClickHouse لا تبطئ".

النسخ الاحتياطي في البنية التحتية الحديثة


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

ملاحظة: النسخ الاحتياطية دون التحقق التلقائي ليست نسخًا احتياطية.

الانتقال إلى ClickHouse: بعد 3 سنوات


تتغلب ClickHouse على موقعها بثقة ، لكن القليل من مطوري الطرف الثالث تمكنوا من تجميع خبرة قوية في العمل معها. ألكساندر زايتسيف وألتينيتي رائدان في استخدام ClickHouse ؛ في وقت مبكر منذ 3 سنوات على HighLoad ++ ، تحدثوا عن نقل نظام تحليل متعدد الببتيت إلى ClickHouse.

ما الذي تغير منذ ذلك الحين؟ سوف يشارك ألكساندر خبرته ودرايته ، والتي لا يمكن العثور عليها في الوثائق.

MongoDB مقابل. بوستجرس المعايير


سيتحدث ضيفان عن MongoDB في HighLoad ++. يتمتع تقرير ألفارو هيرنانديز بخلفية مثيرة للاهتمام ، بل وفضيحة. عندما قام ألفارو بعمل وتقديم معايير مقارنة بين MongoDB و PostgreSQL ، اندلعت مناوشات على الإنترنت. قدمت MongoDB في وقت لاحق معاييرها.

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

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

وزعت MongoDB المعاملات من أعلى إلى أسفل


سيتم إعداد التقرير الثاني عن MongoDB من قبل Henrik Ingo ، مهندس حلول MongoDB ، والمتخصص في تحسين أداء MongoDB وتوفير إمكانية توفر عالية. لكن هنريك ، قبل MongoDB ، عمل في عالم MySQL لسنوات عديدة ، لذلك فهو يعرف بالضبط حجج المعسكرات المختلفة.

في HighLoad ++ ، سيخبرك Henrik عن كيفية إجراء المعاملات في قاعدة بيانات NoSQL الموزعة التي تلبي ACID ، ولماذا قد تحتاجها على الإطلاق.

خريطة طريق Odyssey: ماذا نريد أيضًا من مجتذب الاتصال


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

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

ديسيبل بوت جو. تخفيف آلام التنمية الخلفية


مع هذا التقرير ، تقترح Postgres.ai تغيير النهج الأساسي لتطوير الخلفية. بدلاً من التحقق من التعليمات البرمجية والاستعلامات الموجودة في قواعد البيانات الصغيرة ، تحقق من قواعد البيانات الكبيرة وشاهد النتيجة على الفور. يبدو منطقيًا - إذا كان الطلب بطيئًا ، فسيتم اكتشافه على الفور. شيء آخر هو ما يجب القيام به لهذا ، على سبيل المثال ، النسخ الكاملة لقاعدة البيانات القتالية غير مريحة للغاية. هذا هو المكان الذي يأتي فيه DBA bot joe الاصطناعي إلى الإنقاذ

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

عزيزي الحذف. أخطاء نموذجية عند إجراء عمليات ضخمة في قواعد بيانات PostgreSQL المحملة للغاية


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

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

راعي على GitLab.com


يستخدم GitLab PostgreSQL إلى MySQL الكامل الذي تم التخلي عنه مؤخرًا ، ولضمان تحول HA من REPMGR إلى Patroni. تم تطوير Patroni بواسطة Zalando ، وتتمثل مهمتها في التبديل تلقائيًا في حالة حدوث شيء ما إلى المعالج ، وضمان توفر الخدمة.

الآن Patroni هو المعيار الفعلي ، وقد طبقته GitLab على حلها السحابي - للمرة الثانية ، 25000000 عملية سحب يوميًا - وتقوم بإعداد حل لفحص المنشآت. سيشارك خوسيه كوريس فينو في هذه التجربة المذهلة للغاية على HighLoad ++ في 7 نوفمبر.

StackGres: PostgreSQL السحابية الأصلية على Kubernetes


سوف يقوم ألفارو هيرنانديز ، مقارنةً بـ PostgreSQL و MongoDB ، بتقديم منتج StackGres - وهو في الأساس بديل عن RDS. ولكن يجعل من الممكن نشر RDS في Kubernetes أرخص بكثير ، والحصول على نسخ احتياطية مكونة مع الحد الأدنى من الجهد مع مقطورة ، Patroni للتجاوز التلقائي ، والفحص الصحي ، ومجموعة من الأدوات المختلفة.

هذه مهمة واعدة في اتجاه مشابه لقصة Linux. هناك نواة لينكس ، والعديد من الجمعيات المختلفة من حوله. نرى نفس الشيء فيما يتعلق بـ PostgreSQL ، والذي يمكن اعتباره نواة لنظام إدارة قواعد البيانات ، وستظهر التجميعات حوله. تتمتع StackGres بفرص جيدة لاكتساب شعبية ، لأن هناك فريقًا نشطًا وعملاء يمكنك من خلالها تنفيذ قراراتك.

أقفال بوستجرس


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

النسخ الاحتياطي تحميل DBMS


يعمل Andrey Borodin و Georgy Rylov في Yandex ويقومان بتطوير WAL-G ، وهي أداة النسخ الاحتياطي مفتوحة المصدر.

في البداية ، تعد WAL-G أداة لـ PostgreSQL تم تطويرها بواسطة Citus (من الغريب أن Microsoft استوعبت Citus مؤخرًا ، أي في الواقع ، اشترت قطعة من PostgreSQL). لكن اتضح أن فكرة تنظيم العمل مع WAL-G مناسبة تمامًا لقواعد البيانات الأخرى. سيتحدث أندرو وجورج فقط عن وظائف MySQL و Redis و MongoDB والآفاق التي تنفتح في هذا الصدد.

فيتيس: التحجيم بلا خوف في السحابة


سوغو Sougoumarane هو مؤسس PlanetScale. ربما لم تسمع بهذه الشركة بعد ، لكنها تلقت مؤخرًا تمويلًا بقيمة 25 مليون دولار لتطوير منتجها المفتوح من فيتيس. ربما لم تكن قد سمعت من Vitess سواء. لذا Vitess هو نظام مشاركة MySQL ، وبالتأكيد تعرف أكثر من شركة واحدة كبيرة تستخدم Vitess لقواعد البيانات المحملة للغاية.

بدأ كل شيء مع يوتيوب. كان هناك Sugu وفريقه خلق ما أصبح فيما بعد نظام مفتوح المصدر Vitess. بالمناسبة ، اختاروا Go - لغة شابة جدًا في ذلك الوقت. يستطيع Sugu سرد العديد من القصص المثيرة للاهتمام حول السنوات الأولى لـ Go وحول تطورها بشكل عام - على Google أصبح فريقه أول مستخدم رئيسي للغة.

حسنًا ، الآن ، بالإضافة إلى YouTube ، يتم استخدام Vitess بواسطة شركات مثل GitHub و Pinterest و Slack و Square. بعد مغادرة Google ، أسس Sugu PlanetScale ويستمر في تطوير Vitess ، مع الحفاظ على الشفرة مفتوحة. تعال لتسمع عن المشاركة على نطاق كوكبي وعن استخدام Go in Highload الحقيقي. ولا تنس أن تسأل عن الخطط الخاصة بإصدار Postgres من Vitess - Sugu يحب هذا السؤال كثيرًا.

قصص فشل المستفيدين أو كيفية تعطل مجموعة PostgreSQL الخاصة بك


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

SQL / JSON: نطبق المعيار ولا نتوقف عند هذا الحد


في الآونة الأخيرة ، أصبحت الحدود بين قواعد بيانات قواعد البيانات العلائقية والموجهة نحو المستندات غير واضحة. يحتوي معيار SQL على وظائف للعمل مع JSON ، وتعد PostgreSQL رائدة في دعم JSON الفعال بين قواعد بيانات قواعد البيانات العلائقية . إلى حد كبير بفضل Postgres Professional ، تم بالفعل تنفيذ المعيار جزئيًا.

يعد تقرير ألكسندر كوروتكوف بمثابة حساب مباشر لتطبيق SQL / JSON و jsonpath الخاص به في PostgreSQL. هذه فرصة للتعرف على الميزات الداخلية وخبرة التشغيل وخطط المستقبل.

PostgreSQL على K8s في زالاندو: عامين في المعركة


ألكساندر كوكوشكين مؤلف مشارك في Patroni ، لكن هذا العام سيتحدث عن تطور آخر مثير للاهتمام في زالاندو. قبل عامين ، بدأوا في تطوير Postgres-Operator ، وفي الوقت الحالي ، بمساعدة من مشغلي DBA لخدمة أكثر من 1000 من مجموعات Postgres التي تعمل على Kubernetes.

بينما لا يزال البعض يشك فيما إذا كانت قواعد البيانات ممكنة في Kubernetes ، فإن الشركات الكبيرة تعمل بالفعل مع كل هذا. سيكون من الرائع التعرف والتعلم من مكان آخر.

يدعو المؤسسة ل Postgres


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

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

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

وفي هذه المذكرة - المستقبل مفتوح المصدر - سنكمل دراسة مفصلة للتقارير. لسوء الحظ ، خلف الكواليس ، تم ترك MySQL بالكامل تقريبًا. إذا كان هذا هو الموضوع الخاص بك ، تحقق من Vittorio Cioe و Alkin Tezuysal .

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

نحن أيضًا لم نلمس Tarantool ، حيث إنها قاعدة بيانات وخادم تطبيق في زجاجة واحدة. وتركز التقارير الواردة في برنامج HighLoad ++ 2019 على هذه الوظيفة المتعددة. سيتحدث Vasily Tyubek عن مشغل Tarantool Kubernetes لتشغيل قاعدة بيانات في Kubernetes ، وسيظهر Yaroslav Dynnikov راحة بناء الأنظمة الموزعة باستخدام Tarantool. ولا تفوت الفرصة لتوضيح كل التفاصيل مع المطورين أنفسهم - إنها أكثر إنتاجية وإثارة للاهتمام من قراءة الوثائق.

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

في 7 و 8 نوفمبر ، سوف يقوم HighLoad ++ بملء SKOLKOVO حتى النهاية ويخرج منه. في نوفوسيبيرسك وسانت بطرسبرغ سيكون هناك فروع HighLoad ++ مع مؤتمر عبر الهاتف إلى القاعة الرئيسية وجميع مزايا التواصل في المؤتمر. على موقع youtube ، سنطلق بث فيديو مفتوحًا للتقارير الأكثر توقعًا وجائزة HighLoad ++ ، وفي قناة التلغراف على طول المسار الآخر ، سنطلق وكلاء ترجمة النصوص. باختصار ، حتى لو لم تذهب إلى HighLoad ++ (عبثا - لا يزال بإمكانك تغيير رأيك والحصول على تذكرة وإقلاعها) ، لا يزال بإمكانك الحصول على الكثير من المرح والمتعة عبر شبكاتنا.

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


All Articles