تعيين إصدار لمجموعة بيانات في RDBMS باستخدام الأحرف الأولى والدلتا

StackOverflow https://stackoverflow.com/questions/5838332

سؤال

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

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

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

يؤدي هذا إلى ترك مسألة كيفية تكوين عرض لمجموعة بيانات بالضبط إلى إصدار معين من الملف الأولي والدلتا. (تقوم Apple's TimeMachine بعمل شيء مشابه ، وذلك باستخدام الروابط الصلبة في نظام الملفات لإنشاء "عرض" لنقطة زمنية معينة.)

هل لدى أي شخص خبرة في حل هذا النوع من المشكلات أو تنفيذ هذا الحل تحديدًا؟

شكرًا!

هل كانت مفيدة؟

المحلول 2

شكرا لمن حاول.

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

حقق هذا الأسلوب متوسط أداء يصل إلى 80٪ حتى الآن ، وهو ما قد يكون مقبولاً لأغراضنا.

نصائح أخرى

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top