Как определить постоянство хранилища в cache2k?

Сказано в Cache apidoc, что несколько методов, как purge() или же flush() работает в зависимости от настроенного постоянного хранилища.

К сожалению, я не могу найти, как настроить один?

Это действительно возможно?

1 ответ

Решение

В более старых версиях cache2k была встроена поддержка персистентности. Она работала, но, тем не менее, она не достигла уровня, которому я бы полностью доверял для производства.

Актуальная проблема была clear() операция, которая имела довольно сложную реализацию. Очистка должна быть быстрой, независимо от того, какой реализации хранилища требуется время для удаления данных. Итак, моя идея состояла в том, чтобы переключиться на схему обратной записи, где операции ставятся в очередь и выполняются, когда хранилище снова становится доступным. Реализация схемы частичной обратной записи просто для ясности, это довольно сложная инженерная задача...

На данный момент я исключил постоянство из набора функций, так как я не хочу версию 1.0, которая имеет стабилизированный API и предоставляет уже много полезных функций.

Как видно из дорожной карты на домашней странице cache2k, текущий план - сначала добавить массовые и асинхронные функции, а затем вернуться в хранилище. Вероятно, интерфейс асинхронного хранилища должен выглядеть совершенно иначе.

Внутри текущей реализации cache2k все еще есть интерфейсы, где хранилище будет подключено, так что я не полностью отказываюсь от того, что уже достигнуто. flush() а также purge() все еще есть некоторые остатки этого. Поэтому я лучше уберу эти два метода для версии 1.0, чтобы избежать путаницы.

Кстати, так как я видел ваш вопрос по Guava, cache2k имеет поддержку CacheWriter который является аналогом для CacheLoader, С помощью загрузчика и записи кеша вы можете читать и записывать в хранилище самостоятельно, но это не идентично поддержке хранилища внутри самого кеша. Например cache.contains(...) будет проверять хранилище, но он не проверяет загрузчик кэша, по крайней мере, в соответствии с JSR107 и в каждой реализации кэша, о которой я знаю.

Другие вопросы по тегам