При реализации персистентности на карте орехового дерева должен быть реализован интерфейс MapStore
. При вызове clear()
на карте, hazelcast называет deleteAll(Collection<K> clctn)
для отдельного набора ключей, которые должны быть удалены из хранилища итерационно, используя вызов удаления для каждого ключа.Избегайте отправки удалять по каждой клавише, когда выполняете каруселирование deleteAll
Это создает проблему с производительностью в хранилище, содержащем большое количество записей в карте. К сожалению, нет способа сказать магазину «обрезать» карту, независимо от ключей, известных для газели.
Кто-нибудь знает обходное решение? Планируется ли поддерживать усеченный призыв к файловому календарю MapStore?
С уважением, Александр.
Цель состоит в том, чтобы очистить системный кеш для определенной карты по требованию. Таким образом, это должен быть общесистемный вызов 'clear' – Sahlix
Это будет вызов по всему кластеру, но этот вызов не является атомарным. Узел 1 уже выполнен ясно, а узел 2 все еще нажимает данные, и в итоге узел 2 вызывает ясность. Тем временем другой поток на узле 1, возможно, снова начал передавать данные. Для простого кеша это нормально, но он не предлагает никаких гарантий и согласованности. Что не для меня, почему есть MapStore для простого кеша, звучит очень неправильно для меня. Кэш предназначен для быстрой работы, MapStore предотвращает это поведение. Использование write-behind делает четкую работу еще хуже. – noctarius
Итак, зачем тогда предлагать интерфейс магазина в первую очередь? – Sahlix