كيف يمكنني تعطيل ذاكرة التخزين المؤقت للمستوى الثاني لبعض الكيانات المعينة في السبات دون تغيير التعليقات التوضيحية

StackOverflow https://stackoverflow.com/questions/934133

سؤال

أنا أستخدم ذاكرة التخزين المؤقت للمستبة الثانية في طلبي، لسبب تجاري معين لا أستطيع تغيير شرح الكيان بعد الآن.

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

شكرا مقدما!

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

المحلول

تحذير: كما لاحظ Jens Schauder، من المستحيل تكوين EHCACHE لتخزين 0 عناصر في الذاكرة عن طريق إعداد MaxelementSinMemory = "0" لأنها تسبب فعليا في التأثير المعاكس - قم بتعيين حجم غير محدود لذاكرة التخزين المؤقت. لم يتم ذكر هذا السلوك على الإسبات التخزين المؤقت الصفحة ولكن تم توثيقها تكوين ذاكرة التخزين المؤقت صفحة.

لقد استعرضت بسرعة الوثائق ولم أجد نهجا بديلا بعد. أنا غير قادر على حذف هذا الجواب بنفسي. :-(

اقتراحي الأصلي:

يمكنك تكوين موفر تنفيذ ذاكرة التخزين المؤقت المستوى الثاني إلى أوقات TTL قصيرة و / أو لتخزين 0 إدخالات لنوع كيان معين.

على سبيل المثال، إذا كنت تستخدم EHCACHE، فيمكنك تكوينها في EHCACHE.xml: *

<cache
name="com.problematic.cache.EntityName"
maxElementsInMemory="0" <<== this should effectively disable caching for EntityName
overflowToDisk="false" <<== Do not overflow any entries to disk
/>

يرى الإسبات التخزين المؤقت في وثائق ehcache.

نصائح أخرى

في Terracotta 3.1 وما فوق، يمكنك تمكين / تعطيل مخابئ السبات 2nd المستوى الثاني على أساس كل منطقة، سواء في التكوين (ثابت) وفي وقت التشغيل، باستخدام وحدة التحكم في المطور Terracotta.

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

Terracotta هو مصدر مفتوح. لمزيد من التفاصيل، تحقق من terracotta للبيلات.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top