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

milvus-logo
LFAI
الصفحة الرئيسية
  • المفاهيم
  • Home
  • Docs
  • المفاهيم

  • الطابع الزمني

الطابع الزمني

يشرح هذا الموضوع مفهوم الطابع الزمني ويقدم المعلمات الأربعة الرئيسية المتعلقة بالطابع الزمني في قاعدة بيانات متجه ميلفوس.

نظرة عامة

Milvus هي قاعدة بيانات متجهة يمكنها البحث والاستعلام عن المتجهات المحولة من بيانات غير منظمة. عند إجراء عملية بلغة معالجة البيانات (DML)، بما في ذلك إدراج البيانات وحذفها، تقوم Milvus بتعيين طوابع زمنية للكيانات المشاركة في العملية. لذلك، تحتوي جميع الكيانات في Milvus على سمة الطابع الزمني. وتشترك مجموعات الكيانات في نفس عملية DML في نفس قيمة الطابع الزمني.

معلمات الطابع الزمني

يتم تضمين العديد من المعلمات المتعلقة بالطابع الزمني عند إجراء بحث أو استعلام تشابه متجه في Milvus.

  • Guarantee_timestamp

  • Service_timestamp

  • Graceful_time

  • Travel_timestamp

Guarantee_timestamp

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

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

لتوفير عناء فهم TSO داخل Milvus، لا يتعين عليك كمستخدم تكوين معلمة Guarantee_timestamp مباشرةً. تحتاج فقط إلى اختيار مستوى الاتساق، ويتعامل Milvus تلقائيًا مع المعلمة Guarantee_timestamp نيابةً عنك. يتوافق كل مستوى تناسق مع قيمة Guarantee_timestamp معينة.

Guarantee_Timestamp Guarantee_Timestamp.

مثال

كما هو موضح في الرسم التوضيحي أعلاه، يتم تعيين قيمة Guarantee_timestamp على أنها 2021-08-26T18:15:00 (للتبسيط، يتم تمثيل الطابع الزمني في هذا المثال بالوقت الفعلي). عند إجراء بحث أو استعلام، يتم البحث أو الاستعلام عن جميع البيانات قبل 2021-08-26T18:15:00.

Service_timestamp

Service_timestamp هو نوع من الطوابع الزمنية التي يتم إنشاؤها وإدارتها تلقائيًا بواسطة عقد الاستعلام في Milvus. يتم استخدامه للإشارة إلى عمليات DML التي يتم تنفيذها بواسطة عقد الاستعلام.

يمكن تصنيف البيانات التي تديرها عقد الاستعلام إلى نوعين:

  • البيانات التاريخية (أو تسمى أيضًا البيانات الدفعية)

  • البيانات التزايدية (أو تسمى أيضاً البيانات المتدفقة).

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

عند وجود طلب بحث أو استعلام وارد، تقوم عقدة الاستعلام بمقارنة قيم Service_timestamp و Guarantee_timestamp. هناك سيناريوهان أساسيان.

Service_Timestamp Service_Timestamp.

السيناريو 1: Service_timestamp >= Guarantee_timestamp

كما هو موضح في الشكل 1، يتم تعيين قيمة Guarantee_timestamp على أنها 2021-08-26T18:15:00. عندما يتم زيادة قيمة Service_timestamp إلى 2021-08-26T18:15:01 ، فهذا يعني أن جميع عمليات DML قبل هذه النقطة الزمنية يتم تنفيذها وإكمالها بواسطة عقدة الاستعلام، بما في ذلك عمليات DML قبل الوقت المشار إليه Guarantee_timestamp. ونتيجة لذلك، يمكن تنفيذ طلب البحث أو الاستعلام على الفور.

السيناريو 2: Service_timestamp < Guarantee_timestamp

كما هو موضح في الشكل 2، يتم تعيين قيمة Guarantee_timestamp على أنها 2021-08-26T18:15:00 ، والقيمة الحالية لـ Service_timestamp هي فقط 2021-08-26T18:14:55. هذا يعني أن عمليات DML فقط قبل 2021-08-26T18:14:55 يتم تنفيذها وإكمالها، تاركًا جزءًا من عمليات DML بعد هذه النقطة الزمنية ولكن قبل Guarantee_timestamp غير مكتملة. إذا تم تنفيذ البحث أو الاستعلام عند هذه النقطة، فإن بعض البيانات المطلوبة تكون غير مرئية وغير متوفرة بعد، مما يؤثر بشكل خطير على دقة نتائج البحث أو الاستعلام. لذلك، تحتاج عقدة الاستعلام إلى تأجيل طلب البحث أو الاستعلام حتى تكتمل عمليات DML قبل guarantee_timestamp (أي عندما Service_timestamp >= Guarantee_timestamp).

Graceful_time

من الناحية الفنية، Graceful_time ليس طابعًا زمنيًا، بل هو فترة زمنية (على سبيل المثال 100 مللي ثانية). ومع ذلك، فإن Graceful_time جدير بالذكر لأنه يرتبط ارتباطًا وثيقًا بـ Guarantee_timestamp و Service_timestamp. Graceful_time هو معلمة قابلة للتكوين في ملف تكوين ميلفوس. يتم استخدامه للإشارة إلى الفترة الزمنية التي يمكن تحملها قبل أن تصبح بيانات معينة مرئية. باختصار، يمكن التسامح مع عمليات DML غير المكتملة أثناء Graceful_time.

عندما يكون هناك طلب بحث أو استعلام وارد، يمكن أن يكون هناك سيناريوهان.

Graceful_Time وقت_المهلة.

السيناريو 1: Service_timestamp + Graceful_time >= Guarantee_timestamp

كما هو موضح في الشكل 1، يتم تعيين قيمة Guarantee_timestamp على أنها 2021-08-26T18:15:01 ، و Graceful_time على أنها 2s. يتم زيادة قيمة Service_timestamp إلى 2021-08-26T18:15:00. على الرغم من أن قيمة Service_timestamp لا تزال أصغر من قيمة Guarantee_timestamp ولا تكتمل جميع عمليات DML قبل 2021-08-26T18:15:01 ، يتم التسامح مع فترة ثانيتين من عدم رؤية البيانات كما هو موضح في قيمة Graceful_time. لذلك، يمكن تنفيذ طلب البحث أو الاستعلام الوارد على الفور.

السيناريو 2: Service_timestamp + Graceful_time < Guarantee_timestamp

كما هو موضح في الشكل 2، يتم تعيين قيمة Guarantee_timestamp على أنها 2021-08-26T18:15:01 ، و Graceful_time على أنها 2s. القيمة الحالية لـ Service_timestamp هي 2021-08-26T18:14:54 فقط، وهذا يعني أن عمليات DML المتوقعة لم تكتمل بعد وحتى مع إعطاء ثانيتين من الوقت المريح، لا يزال إخفاء البيانات غير محتمل. لذلك، تحتاج عقدة الاستعلام إلى تأجيل البحث أو طلب الاستعلام حتى تكتمل طلبات DML معينة (أي عندما Service_timestamp + Graceful_time >= Guarantee_timestamp).

ما التالي

جرب Managed Milvus مجاناً

Zilliz Cloud خالي من المتاعب، ويعمل بواسطة Milvus ويعمل بسرعة 10 أضعاف.

ابدأ
التعليقات

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