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

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

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

  • Engineering
August 01, 2021
Xiaofan Luan

كان الأمر أشبه بالأمس فقط عندما وضعنا أول سطر من التعليمات البرمجية لـ Milvus في أكتوبر 2018. في مارس 2021، بعد 19 تكرارًا تم اختبارها من قبل أكثر من 1000 مستخدم حول العالم، أطلقنا Milvus 1.0، وهو أول إصدار رسمي لنا بدعم طويل الأمد. وباعتبارها قاعدة بيانات المتجهات الأكثر شيوعًا في العالم مفتوحة المصدر، تمكنت Milvus 1.0 من حل بعض المشكلات الأساسية في إدارة المتجهات، مثل عمليات CRUD واستمرار البيانات. ومع ذلك، مع ظهور سيناريوهات ومتطلبات جديدة، بدأنا ندرك أن هناك الكثير من المشكلات التي لم يتم حلها بعد. تقدم هذه المقالة ملخصًا عن الملاحظات التي قمنا بها في السنوات الثلاث الماضية، والتحديات التي من المتوقع أن يعالجها Milvus 2.0، ولماذا يعتبر Milvus 2.0 حلاً أفضل لهذه التحديات. لمعرفة المزيد حول ما يقدمه Milvus 2.0، راجع ملاحظات الإصدار Milvus 2.0.

التحديات التي يواجهها الإصدار Milvus 1.x

صومعة البيانات: لا يمكن لـ Milvus 1.0 سوى التعامل مع التضمينات المتجهة الناتجة عن البيانات غير المهيكلة، ولا يقدم دعمًا كبيرًا للاستعلام القياسي. يؤدي تجزئة تخزين البيانات في تصميمه إلى بيانات مكررة ويزيد من تعقيد عملية تطوير التطبيق، كما أن البحث الهجين بين البيانات المتجهة والقياسية غير مرضٍ بسبب عدم وجود مُحسِّن موحد.

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

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

  1. يتم دعم عقدة كتابة واحدة فقط في Mishards ولا يمكن توسيع نطاقها.
  2. يتم تنفيذ توسيع نطاق عقد القراءة في Mishards باستخدام التوجيه المتسق القائم على التجزئة. على الرغم من أن التجزئة المتسقة سهلة التنفيذ وتساعد في حل مشكلة توحيد توزيع البيانات، إلا أنها ليست مرنة بما فيه الكفاية في جدولة البيانات ولا تعالج عدم التطابق بين حجم البيانات والقدرة الحاسوبية.
  3. يعتمد Milvus 1.0 على MySQL لإدارة البيانات الوصفية، ولكن الاستعلامات وحجم مجموعة البيانات التي يستطيع خادم MySQL المستقل التعامل معها محدودة إلى حد ما.

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

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

تجربة مستخدم غير بديهية:

  1. يترتب على النشر الموزع المعقد تكاليف تشغيلية عالية.
  2. لا تتوفر واجهة مستخدم رسومية جيدة التصميم (GUI).
  3. أصبحت واجهات برمجة التطبيقات غير البديهية عائقًا أمام تطوير التطبيقات.

السؤال الكبير هو ما إذا كان يجب الانتقال من التصحيح أو البدء من الصفر. يعتقد تشارلز شيه، الأب الروحي لشركة Milvus، أنه مثلما لم تستطع العديد من شركات صناعة السيارات التقليدية أن تتحول تدريجياً إلى شركة Tesla، يجب أن تصبح Milvus مغيّرة لقواعد اللعبة في مجال معالجة البيانات غير المنظمة والتحليلات لكي تزدهر. هذه القناعة هي التي دفعتنا إلى إطلاق Milvus 2.0، وهي قاعدة بيانات متجهة سحابية أصلية مُعاد هيكلتها.

صناعة ميلفوس 2.0

مبادئ التصميم

كجيل جديد من قاعدة بيانات المتجهات السحابية الأصلية، تم تصميم Milvus 2.0 حول المبادئ الثلاثة التالية:

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

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

معالجة الدفعات والدفق الموحد: يطبّق Milvus 2.0 بنية لامدا الموحدة، التي تدمج معالجة البيانات الدفعية والتاريخية. ومقارنةً ببنية كابا، يقدم Milvus 2.0 بنيةً تُقدم ميزة الردم الاحتياطي للسجل، والتي تخزن لقطات السجل والفهارس في مخزن الكائنات لتحسين كفاءة استرداد الأعطال وأداء الاستعلام. ولتقسيم البيانات غير المحدودة (الدفق) إلى نوافذ محدودة، يتبنى Milvus آلية جديدة للعلامة المائية، والتي تقسم بيانات الدفق إلى حزم رسائل متعددة وفقًا لوقت الكتابة أو وقت الحدث، وتحتفظ بجدول زمني للمستخدمين للاستعلام حسب الوقت.

2.0 image 1.png 2.0 الصورة 1.png

بنية النظام

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

طبقة الوصول: الواجهة: طبقة الوصول هي الطبقة الأمامية للنظام ونقطة النهاية للمستخدمين. وهي مسؤولة عن إعادة توجيه الطلبات وجمع النتائج.

خدمة المنسق: تقوم خدمة المنسق بتعيين المهام للعقد العاملة وتعمل كعقل النظام. هناك أربعة أنواع من المنسقين: منسق الجذر (منسق الجذر)، ومنسق البيانات (منسق البيانات)، ومنسق الاستعلام (منسق الاستعلام)، ومنسق الفهرس (منسق الفهرس).

العقد العمالية: الأذرع والأرجل. العقد العاملة هي عبارة عن منفذين أغبياء يتبعون التعليمات من خدمة المنسق ويستجيبون لطلبات القراءة/الكتابة من طبقة الوصول. هناك ثلاثة أنواع من العقد العاملة: عقد البيانات، وعقد الاستعلام، وعقد الفهرس.

التخزين: العظام. يحتوي التخزين على ثلاثة أنواع: التخزين الوصفية ووسيط السجل وتخزين الكائنات.

  • يُستخدم التخزين الوصفية الذي يتم تنفيذه بواسطة etcd، لتخزين البيانات الوصفية مثل التجميع ونقطة التحقق لخدمة المنسق.
  • يُستخدم وسيط السجلات، المنفذ بواسطة Pulsar، بشكل أساسي لتخزين السجلات الإضافية وتنفيذ إشعارات غير متزامنة موثوقة.
  • يتم تنفيذه بواسطة MinIO أو S3، ويستخدم تخزين الكائنات بشكل أساسي لتخزين لقطات السجل وملفات الفهرس.

فيما يلي مخطط بنية النظام لميلفوس 2.0: 2.0 image 2.png2.0 صورة 2.png

الميزات الرئيسية

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

متصل دائمًا بالإنترنت

موثوقية البيانات واستدامة الخدمة هي المتطلبات الأساسية لقاعدة البيانات، واستراتيجيتنا هي "فشل رخيص، فشل صغير، وفشل متكرر".

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

البحث الهجين بين البيانات القياسية والمتجهة

للاستفادة من التآزر بين البيانات المهيكلة وغير المهيكلة، يدعم Milvus 2.0 البيانات القياسية والمتجهة ويتيح البحث الهجين بينهما. يساعد البحث الهجين المستخدمين في العثور على أقرب الجيران التقريبي الذي يطابق معايير التصفية. يدعم Milvus حاليًا العمليات العلائقية مثل EQUAL و GREATER THAN و LESS THAN والعمليات المنطقية مثل NOT و AND و OR و IN.

الاتساق القابل للضبط

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

السفر عبر الزمن

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

ORM Python SDK

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

2.0 image 3.png 2.0 الصورة 3.png

أدوات الدعم

  • إن Milvus Insight هي واجهة المستخدم الرسومية الخاصة بـ Milvus التي تقدم وظائف عملية مثل إدارة حالة المجموعة وإدارة التعريف والاستعلام عن البيانات. كما ستكون الشفرة المصدرية لـ Milvus Insight مفتوحة المصدر كمشروع مستقل. نحن نبحث عن المزيد من المساهمين للانضمام إلى هذا الجهد.
  • تجربة خارج الصندوق (OOBE)، نشر أسرع: يمكن نشر الإصدار Milvus 2.0 من Milvus 2.0 باستخدام helm أو docker-compose.
  • يستخدم Milvus 2.0 قاعدة بيانات Prometheus، وهي قاعدة بيانات مفتوحة المصدر ذات سلاسل زمنية لتخزين الأداء ومراقبة البيانات، ومنصة Grafana، وهي منصة مفتوحة للمراقبة، لتصور المقاييس.

التطلع إلى المستقبل

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

قاعدة البيانات للذكاء الاصطناعي: إلى جانب وظائف CRUD الأساسية، يحتاج Milvus، كنظام قاعدة بيانات، إلى مُحسِّن استعلام أكثر ذكاءً، وقدرات استعلام بيانات أكثر قوة، ووظائف إدارة بيانات أكثر شمولاً. سيركز عملنا للمرحلة القادمة على وظائف لغة معالجة البيانات (DML) وأنواع البيانات غير المتوفرة بعد في Milvus 2.0، بما في ذلك إضافة عمليات الحذف والتحديث ودعم أنواع بيانات السلسلة.

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

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

سهولة الاستخدام: تواصل شركة Milvus تحسين سهولة الاستخدام من خلال توفير أدوات إدارة المجموعات وحزم تطوير البرمجيات بلغات متعددة وأدوات النشر والأدوات التشغيلية وغيرها.

لمعرفة المزيد حول خطط إصدار Milvus، راجع خارطة طريق Milvus.

شكرًا لجميع المساهمين في مجتمع Milvus، الذين لولاهم لما كان Milvus 2.0 ممكنًا. لا تتردد في إرسال مشكلة أو المساهمة برمزك في مجتمع ميلفوس!


عن المؤلف

يعمل شياوفان لوان الآن في شركة Zilliz كمدير للهندسة يدير البحث والتطوير في مشروع Milvus. لديه خبرة 7 سنوات في العمل مع التركيز على بناء أنظمة قواعد البيانات/التخزين. بعد تخرجه من جامعة كورنيل، عمل في Oracle وHEDVIG وAlibaba Cloud على التوالي.

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started

Like the article? Spread the word

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