Groupcache: كيفية محاكاة وقت انتهاء الصلاحية

تم إنشاؤها على ٢٩ يوليو ٢٠١٣  ·  3تعليقات  ·  مصدر: golang/groupcache

لقد لاحظت في قرار التصميم Setting and expiration time كما تم استبعاده. أتخيل أن هذا لأن لديك فكرة عن كيفية محاكاة هذه الميزة.

حالة الاستخدام التي أفكر بها هي إنشاء وكيل عكسي مؤقت أمام تطبيق ويب. أعلم أن الصفحات يجب أن تكون مخبأة لمدة X دقيقة.

هل يمكنك أن توضح قليلاً كيف ستتعامل مع هذا؟

(لست متأكدًا من أن هذا هو المكان المناسب لطرح الأسئلة.)

التعليق الأكثر فائدة

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

ومع ذلك ، يمكنك إنشاء مفتاح ذاكرة تخزين مؤقت فريد كل X دقيقة عن طريق تشفير معلومات الوقت في مفتاح التخزين المؤقت نفسه. على سبيل المثال ، قد يصف "foo-12: 30" العنصر "foo" بشكل فريد في الوقت 12:30. يمكن للتطبيق الخاص بك بعد ذلك الوصول إلى هذا العنصر حتى دعنا نقول 12:40. في هذا الوقت ، قد يتم إنشاء عنصر جديد ، "foo-12: 40" وستنتهي صلاحية العنصر القديم ("foo-12: 30") في النهاية بمجرد توقف العملاء عن الوصول إليه.

إذا كان التطبيق الموزع الخاص بك قادرًا على تحديث واسترداد أرقام المراجعة بطريقة متسقة (يمكنك القيام بذلك على سبيل المثال باستخدام doozerd أو zookeeper أو حل قاعدة البيانات الذي تختاره) ، يمكنك أيضًا تشفير رقم المراجعة هذا كجزء من مفتاح التخزين المؤقت. بدلاً من ذلك ، قد تتمكن أيضًا من استخدام رؤوس HTTP "Last-Modified" أو "ETag" كنوع من رقم المراجعة في وكيل الويب الخاص بك.

ال 3 كومينتر

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

ومع ذلك ، يمكنك إنشاء مفتاح ذاكرة تخزين مؤقت فريد كل X دقيقة عن طريق تشفير معلومات الوقت في مفتاح التخزين المؤقت نفسه. على سبيل المثال ، قد يصف "foo-12: 30" العنصر "foo" بشكل فريد في الوقت 12:30. يمكن للتطبيق الخاص بك بعد ذلك الوصول إلى هذا العنصر حتى دعنا نقول 12:40. في هذا الوقت ، قد يتم إنشاء عنصر جديد ، "foo-12: 40" وستنتهي صلاحية العنصر القديم ("foo-12: 30") في النهاية بمجرد توقف العملاء عن الوصول إليه.

إذا كان التطبيق الموزع الخاص بك قادرًا على تحديث واسترداد أرقام المراجعة بطريقة متسقة (يمكنك القيام بذلك على سبيل المثال باستخدام doozerd أو zookeeper أو حل قاعدة البيانات الذي تختاره) ، يمكنك أيضًا تشفير رقم المراجعة هذا كجزء من مفتاح التخزين المؤقت. بدلاً من ذلك ، قد تتمكن أيضًا من استخدام رؤوس HTTP "Last-Modified" أو "ETag" كنوع من رقم المراجعة في وكيل الويب الخاص بك.

نعم ، ما قاله tux21b. (تم استبعاده عن قصد ، على الأقل في الوقت الحالي).

شكرًا @ tux21b على الاقتراح المتعلق بالمراجعات!

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات