استراتيجية الحذف السابقة والمشاكل ذات الصلة
المؤلف ييهوا مو
التاريخ: 2019-12-18
استراتيجية الحذف السابقة والمشاكل ذات الصلة
في إدارة البيانات في محرك البحث المتجه واسع النطاق، ذكرنا آلية حذف ملفات البيانات. يتضمن الحذف الحذف الناعم والحذف الصلب. بعد إجراء عملية حذف على جدول، يتم تمييز الجدول بالحذف الناعم. لا يُسمح بعمليات البحث أو التحديث بعد ذلك. ومع ذلك، لا يزال من الممكن تشغيل عملية الاستعلام التي تبدأ قبل الحذف. يتم حذف الجدول بالفعل مع البيانات الوصفية والملفات الأخرى فقط عند اكتمال عملية الاستعلام.
إذن، متى يتم حذف الملفات التي تم وضع علامة الحذف الناعم عليها بالفعل؟ قبل الإصدار 0.6.0، كانت الاستراتيجية هي أن الملف يتم حذفه بالفعل بعد الحذف الناعم لمدة 5 دقائق. يعرض الشكل التالي الاستراتيجية:
5 دقائق
تعتمد هذه الاستراتيجية على فرضية أن الاستعلامات لا تدوم عادةً أكثر من 5 دقائق ولا يمكن الاعتماد عليها. إذا استمر الاستعلام لأكثر من 5 دقائق، سيفشل الاستعلام. والسبب في ذلك هو أنه عند بدء الاستعلام، يجمع Milvus معلومات حول الملفات التي يمكن البحث فيها وينشئ مهام الاستعلام. بعد ذلك، يقوم برنامج جدولة الاستعلام بتحميل الملفات إلى الذاكرة واحداً تلو الآخر ويبحث عن الملفات واحداً تلو الآخر. إذا لم يعد أحد الملفات موجوداً عند تحميل ملف ما، سيفشل الاستعلام.
قد يساعد تمديد الوقت في تقليل مخاطر فشل الاستعلام، ولكنه يسبب أيضاً مشكلة أخرى: استخدام القرص بشكل كبير جداً. والسبب هو أنه عندما يتم إدراج كميات كبيرة من المتجهات، يقوم ميلفوس باستمرار بدمج ملفات البيانات ولا تتم إزالة الملفات المدمجة من القرص على الفور، على الرغم من عدم حدوث أي استعلام. إذا كان إدراج البيانات سريعًا جدًا و/أو كانت كمية البيانات المدرجة كبيرة جدًا، يمكن أن يصل استخدام القرص الإضافي إلى عشرات الجيجابايت. ارجع إلى الشكل التالي كمثال:
النتيجة
كما هو مبين في الشكل السابق، يتم مسح الدفعة الأولى من البيانات المدرجة (إدراج_1) إلى القرص وتصبح الملف_1، ثم إدراج_2 تصبح الملف_2. يقوم الخيط المسؤول عن دمج الملفات بدمج الملفات في الملف_3. بعد ذلك، يتم وضع علامة على الملف_1 والملف_2 كحذف ناعم. الدفعة الثالثة من بيانات الإدراج تصبح الملف_4. يدمج مؤشر الترابط الملف_3 والملف_4 في الملف_5 ويضع علامة على الملف_3 والملف_4 كحذف ناعم.
وبالمثل، يتم دمج الإدراج_6 والإدراج_5. في t3، يتم وضع علامة على الملف_5 والملف_6 كحذف ناعم. بين t3 و t4، على الرغم من أن العديد من الملفات تم وضع علامة الحذف الناعم عليها، إلا أنها لا تزال في القرص. يتم حذف الملفات بالفعل بعد t4. وبالتالي، بين t3 و t4، يكون استخدام القرص 64 + 64 + 64 + 128 + 64 + 64 + 196 + 64 + 64 + 256 = 836 ميغابايت. البيانات المدرجة هي 64 + 64 + 64 + 64 + 64 + 64 + 64 = 256 ميجابايت. استخدام القرص هو 3 أضعاف حجم البيانات المدرجة. كلما زادت سرعة الكتابة على القرص، زاد استخدام القرص خلال فترة زمنية محددة.
تحسينات استراتيجية الحذف في 0.6.0
وبالتالي، قمنا بتغيير استراتيجية حذف الملفات في الإصدار 0.6.0. لم يعد الحذف الصلب يستخدم الوقت كمشغّل. بدلاً من ذلك، يكون المشغل عندما لا يكون الملف قيد الاستخدام من قبل أي مهمة.
استراتيجية جديدة
افترض أنه تم إدراج دفعتين من المتجهات. في t1 يتم إعطاء طلب استعلام، يحصل Milvus على ملفين ليتم الاستعلام عنهما (الملف_1 والملف_2، لأن الملف_3 لا يزال غير موجود.) ثم يبدأ مؤشر ترابط الواجهة الخلفية في دمج الملفين مع الاستعلام الذي يعمل في نفس الوقت. عندما يتم إنشاء الملف_3، يتم وضع علامة على الملف_1 والملف_2 كحذف ناعم. بعد الاستعلام، لن تستخدم أي مهام أخرى الملف_1 والملف_2 لذا سيتم حذفهما بشكل نهائي في t4. الفاصل الزمني بين t2 و t4 صغير جدًا ويعتمد على الفاصل الزمني للاستعلام. بهذه الطريقة، ستتم إزالة الملفات غير المستخدمة في الوقت المناسب.
أما بالنسبة للتنفيذ الداخلي، فيتم استخدام العدّ المرجعي، وهو أمر مألوف لمهندسي البرمجيات، لتحديد ما إذا كان يمكن حذف ملف ما بشكل صعب. وللتوضيح باستخدام المقارنة، عندما يكون لدى اللاعب أرواح في اللعبة، لا يزال بإمكانه اللعب. عندما يصبح عدد الأرواح 0، تنتهي اللعبة. يراقب ميلفوس حالة كل ملف. عندما يتم استخدام ملف من قبل مهمة، ستتم إضافة حياة إلى الملف. عندما لا يتم استخدام الملف، ستتم إزالة حياة من الملف. عندما يتم تمييز الملف بالحذف الناعم ويكون عدد الأرواح 0، يكون الملف جاهزًا للحذف الصلب.
المدونات ذات الصلة
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word