2016-12-23 10 views
1

Я сохраняю записи в IgniteCache, и после каждого временного интервала (скажем, 1 час) записи, хранящиеся в этом Часе, должны быть выбраны и сохранены в Hbase. Как я могу это достичь?Вычитка записей кэша Ignite в определенное время и хранения до HBASE

Я пробовал следующим образом.

setExpiryPolicyFactory(CreatedExpiryPolicy.factoryOf(Duration.ONE_HOUR)); 

Но это выселяет записи по одной, через 1 час, когда особенно запись была вставлена, я хочу Bulk выселении и выселенные данные будут сохранены в Hbase.

+0

Что такое политика выселения? –

+0

Привет, я использую LruEvictionPolicy, вы можете предложить любые другие политики – iamLalit

ответ

0

Похоже, вы собираетесь выселить все, что у вас есть в кеше, не так ли? Если это так, я бы просто использовал write-through, чтобы убедиться, что все обновления кэша распространяются на HBASE, а затем просто уничтожают и воссоздают кеш с нуля каждый час.

+0

Да, я собираюсь удалить все вещи из кеша, я использовал запись, хотя это влияет на одну запись, которую я вставляю, то есть запись, вставляемая в Cache (Я сохраняю entyries в виде JSONObject). Я хочу одно полное изъятие кеша, и все эти коллективные записи будут выселены на слушателя. Короче говоря, я делаю Ignite буфером для записей, которые должны быть вставлены в HBASE в течение 1 часа. – iamLalit

+0

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

+0

Здравствуйте, Что случилось с выселенными данными, могу ли я получить эти выселенные данные о любом слушателе или методе или таком – iamLalit