برمجة

Redis SCAN: الصفحة الفارغة لا تعني انتهاء الجرد

فريق فايندو جروب2 دقائق قراءة0 مشاهدة0 تعليقات
مشاركة:
شاشة جرد مفاتيح Redis تعرض مؤشرات المتابعة وصفحة نتائج فارغة وسيطة

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

اقرأ المؤشر قبل اتخاذ قرار الانتهاء

بحسب مرجع Redis لأمر SCAN تبدأ الجولة بمؤشر صفر، ثم تمرر في كل استدعاء المؤشر الذي عاد من الاستدعاء السابق، وتنتهي عندما يعود المؤشر صفرًا. قد تعود قائمة عناصر فارغة مع مؤشر غير صفري؛ لا تعني تلك القائمة اكتمال الجولة.

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

COUNT ميزانية عمل تقريبية

يوضح المرجع أن COUNT تلميح لحجم العمل، وليس وعدًا بعدد ثابت من النتائج. لا تبنِ شريط تقدم يقسم ما جُمِع على عدد صفحات مفترض، ولا تعتبر اختلاف حجم الدفعة فشلًا تلقائيًا. ومع MATCH قد تفحص الجولة مفاتيح لا تطابق النمط، فتصل دفعات قليلة أو فارغة.

حدد معنى العدد الذي تعرضه

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

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

اجعل الجرد منفصلًا عن التنظيف

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

التصنيفات:برمجة
شارك:

التعليقات

لا توجد تعليقات بعد

أضف تعليقك

كن أول من يعلق على هذا المقال

02 · تابع القراءة

مقالات ذات صلة