Удалено из-за отсутствия ответа.Поддерживает ли Oracle Coherence операции массового удаления?
ответ
Я думаю, что вы хотите AbstractCacheStore.eraseAll(Collection colKeys)
Если вы хотите реализовать кэширование чтения/записи, то необходимо расширить
com.tangosol.net.cache.AbstractCacheStore
(или реализовать интерфейсcom.tangosol.net.cache.CacheStore
), который добавляет следующие методы:public void erase(Object oKey); public void eraseAll(Collection colKeys); public void store(Object oKey, Object oValue); public void storeAll(Map mapEntries);
Метод
erase()
должен удалить указанный ключ из внешнего источника данных. Методstore()
должен обновить указанный элемент в источнике данных, если он существует, или вставить его, если он в настоящее время не существует.После того, как реализован
CacheLoader
/CacheStore
, его можно подключить через файл когерентностиcache-config.xml
.
Это похоже на код Java. –
@YuvalItzchakov Он отредактировал сообщение, начальное сообщение сказало Java. – durron597
this Согласно документации, это правильный C интерфейс # для того, что вам нужно:
AbstractCacheStore.EraseAll Метод:
Удалите указанные ключи от базового хранилища, если настоящее время.
пространство имен:
Tangosol.Net.Cache Ассамблея: Согласованность (в Coherence.dll) Версия: 12.1.2.0 (12.1.2.0) Collapse imageSyntax
общественного недействительными EraseAll (ключи ICollection)
Выполнение этого метода вызывает Стереть (объект) для каждой клавиши в поставляемый ICollection. После успешного удаления ключа удаляется с ICollection (если возможно). Примечание. Для многих типов постоянных хранилищ одна операция стирания столь же дорога, как и полная стирание ; поэтому подклассы должны переопределять этот метод, если возможно .
Похоже, что даже базовый API, который стирает всю коллекцию, делает это, вызывая Erase
для каждого значения. Хотя, Oracle Coherence является кэшем в памяти, поэтому на самом деле он не идет по кабелю 10 000 раз, чтобы стереть ключи, его доступ к нему в памяти.
Как подключить это в файл cache-config.xml? –
Можете ли вы добавить свой кеш-конфиг в вопрос? –
@HenleyChiu См. Документацию [this] (https://docs.oracle.com/middleware/1212/coherence/COHCG/net_library.htm#COHCG5082). –
cache.InvokeAll(filter, new ConditionalRemove(AlwaysFilter.INSTANCE));
или
cache.InvokeAll(colKeys, new ConditionalRemove(AlwaysFilter.INSTANCE));
вы пытаетесь решения с [ConditionalRemove] (ли http://docs.oracle.com/html/E15727_01/html/919a417f-0ed2-254e-f842-dd9d416946e3.htm) класс? – ThinkJet
Вам нужна помощь с Java или C#? –