Я использую приведенный ниже код для настройки постоянного кеша с помощью Ehcache3.
Я хотел бы использовать алгоритм отложенной записи, чтобы попытаться ускорить запись. Однако я не нашел примера кода или руководства для этого. Официальная документация по ehcache отсутствует, и когда я обратился за помощью на их форум, все, что я получил, было: «Мы должны исправить этот документ!» Я нашел много примеров того, как это сделать с кэшами, которые не относятся к типу PersistentCacheManager, которые не работают с новым типом класса.
Есть несколько примеров кода, в первую очередь поведение отложенной записи ehcache, но я не уверен какая версия Ehcache используется.
Я немного застрял здесь, и мне кажется, что я не могу быть первым, кто захочет писать в постоянное хранилище с поведением отложенной записи. Я обнаружил, что значение «отстающей записи» несколько расплывчато. Что я хочу сделать, так это записать на диск по шаблону фрагментации, а не по одному. Я надеюсь, что это ускорит скорость записи при замене существующих данных.
Я могу себе представить, что оптимизация скорости записи может привести к чему-то вроде фрагментации файла на жестком диске — в файле могут остаться неиспользуемые дыры. Я надеюсь, что есть готовый код для таких вещей. Может быть, есть варианты вокруг этого, которые я мог бы использовать в дополнительной настройке.
PersistentCacheManager myCacheManager;
myCacheManager = CacheManagerBuilder.newCacheManagerBuilder()
.with(CacheManagerBuilder.persistence(this.filename))
.withCache("myCache",
CacheConfigurationBuilder.newCacheConfigurationBuilder(
Long.class, long[].class,
ResourcePoolsBuilder.newResourcePoolsBuilder()
.heap(100000, EntryUnit.ENTRIES)
.offheap(1, MemoryUnit.GB)
.disk(2000, MemoryUnit.GB, true)
)
).build(true);