🚀 جرب Zilliz Cloud، الـ Milvus المدارة بالكامل، مجاناً — تجربة أداء أسرع بـ 10 أضعاف! جرب الآن>>

milvus-logo
LFAI
  • Home
  • Blog
  • فهم مستوى الاتساق في قاعدة بيانات ناقلات ميلفوس

فهم مستوى الاتساق في قاعدة بيانات ناقلات ميلفوس

  • Engineering
August 29, 2022
Chenglong Li

Cover_image صورة_الغلاف

هذا المقال بقلم تشنغلونغ لي ونسخته أنجيلا ني.

هل تساءلت يومًا عن سبب استمرار ظهور البيانات التي قمت بحذفها أحيانًا من قاعدة بيانات Mlivus vector في نتائج البحث؟

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

ولذلك، تهدف هذه المقالة إلى إزالة الغموض عن مفهوم الاتساق والتعمق في مستويات الاتساق التي تدعمها قاعدة بيانات Milvus vector.

انتقل إلى:

ما هو الاتساق

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

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

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

الاتساق في قاعدة بيانات ميلفوس المتجهة

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

ومع ذلك، تمت إعادة هيكلة ميلفوس في إصداره 2.0، وميلفوس 2.0 هو قاعدة بيانات متجهات موزعة تعتمد على آلية pub-sub. تشير نظرية PACELC إلى أن النظام الموزع يجب أن يفاضل بين الاتساق والتوافر والكمون. علاوة على ذلك، تخدم مستويات مختلفة من الاتساق سيناريوهات مختلفة. لذلك، تم تقديم مفهوم الاتساق في Milvus 2.0 وهو يدعم ضبط مستويات الاتساق.

أربعة مستويات من الاتساق في قاعدة بيانات ميلفوس المتجهة

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

قوي

قوي هو أعلى مستويات الاتساق وأكثرها صرامة. يضمن أن يتمكن المستخدمون من قراءة أحدث إصدار من البيانات.

Strong قوي

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

التقادم المحدود

يسمح التقادم المحدود، كما يوحي اسمه، بعدم اتساق البيانات خلال فترة زمنية معينة. ومع ذلك، بشكل عام، تكون البيانات متسقة دائمًا بشكل عام خارج تلك الفترة الزمنية.

Bounded_staleness التقادم_المحدود

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

الجلسة

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

Session جلسة العمل

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

في نهاية المطاف

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

Eventual الاتساق النهائي

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

حاشية ختامية

بالعودة إلى السؤال المطروح في بداية هذه المقالة، لا تزال البيانات المحذوفة تُعاد كنتائج بحث لأن المستخدم لم يختر مستوى الاتساق المناسب. القيمة الافتراضية لمستوى الاتساق هي الثبات المحدود (Bounded) في قاعدة بيانات Milvus vector. ولذلك، قد تتأخر قراءة البيانات وقد يحدث أن يتأخر ميلفوس في قراءة عرض البيانات قبل إجراء عمليات الحذف أثناء البحث أو الاستعلام عن التشابه. ومع ذلك، فإن هذه المشكلة سهلة الحل. كل ما عليك فعله هو ضبط مستوى الاتساق عند إنشاء مجموعة أو إجراء بحث أو استعلام عن تشابه المتجهات. الأمر بسيط!

في المنشور التالي، سنكشف النقاب عن الآلية الكامنة وراء وشرح كيفية تحقيق قاعدة بيانات المتجهات في ميلفوس لمستويات مختلفة من الاتساق. ترقبوا ذلك!

ما التالي

مع الإصدار الرسمي لـ Milvus 2.1، قمنا بإعداد سلسلة من المدونات التي تقدم الميزات الجديدة. اقرأ المزيد في سلسلة المدونات هذه:

Like the article? Spread the word

استمر في القراءة