EHCache возможна проблема с обратной записью в случае сбоя системы - PullRequest
4 голосов
/ 08 июля 2011

Новое в кешировании ...

Я изучал Spring EHCache и обнаружил, что его новая функция «обратной записи» очень интересна. Данные сначала записываются в кэш, а затем в базовую базу данных асинхронным способом, снижая нагрузку на базу данных за счет сдвига во времени, ограничения скорости или сопоставления (кстати, другие ли кэши имеют такие же возможности?). Это просто великолепно звучит для того, что мне нужно.

сейчас ..

Что произойдет, если мой сервер / система / кэш выйдет из строя плохо (я имею в виду действительно плохо) по каким-либо причинам? Потеряю ли я данные, хранящиеся в кеше, который ожидает загрузки в базу данных? Могу ли я предотвратить это, используя «Большую память» или «Дисковое хранилище», и будут ли эти варианты удобными?

Большое спасибо.

Ответы [ 2 ]

1 голос
/ 14 февраля 2012

Терракотовый кластер даст вам долговременную очередь для записи http://ehcache.org/documentation/apis/write-through-caching#using-a-combined-read-through-and-write-behind-cache и http://vimeo.com/21193026

0 голосов
/ 08 июля 2011

Потеряю ли я [sic] данные, хранящиеся в кеше, который ожидает загрузки в базу данных?

Да, вы бы это сделали.Это компромисс, который вы должны принять с помощью кэшей с отложенной записью.

Если вам нужна целостность транзакций, вам нужно записать напрямую в транзакционное резервное хранилище, а затем либо очистить запись из кэша («обратная запись»), либо обновить кэш синхронно с записью вхранилище данных («сквозная запись»).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...