Hazelcast Listener для удаления иерархически зависимых данных? - PullRequest
0 голосов
/ 15 января 2019

Попытка вникнуть в лучшие практики при работе с неполными иерархическими кэшированными данными.

Пример: У меня два кеша

  1. Кеш на ресурс {"foo": "bar", "parent", "${Object}"}
  2. на одного родителя. [{"foo": "bar", "parent", "${Object}"}, {"foo": "buz", "parent", "${Object}"}]

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

Первоначально казалось, что EventListener может решить эту проблему, однако это может быстро привести в каскад типы событий, если у нас удален корневой элемент (например, ваш диск C: \), и у него миллионы дочерних элементов. Это будет регистрировать событие для каждого дочернего элемента.

Другой подход заключается в использовании тем, но я не уверен, даст ли это аналогичную производительность EventListeners.

Существуют ли какие-либо другие маршруты или способы прослушивания событий кэширования только иногда?

1 Ответ

0 голосов
/ 15 января 2019

Слушатели работают, не обращая внимания, поэтому вы можете получить неполные удаленные записи в таких случаях, как нарушение работы сети.

Для меня самым безопасным подходом было бы разместить связанные записи разных карт на одном и том же элементе с помощью интерфейса PartitionAware и использовать исполнителя для удаления записи и ее потомков / родителей. Пример заказа / клиента в ссылке должен отражать ваш вариант использования.

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