2016-11-03 3 views
1

Мы хотели бы сохранить первичные ключи в памяти и резервные ключи на дисках. Таким образом, при повторном перетасовке мы будем учитывать производительность чтения ключей/значений с дисков.Можете ли вы выселить резервные копии кэша Ignite на диск?

Из моих исследований документации по зажиганию я не вижу эту возможность из коробки. Есть ли способ сделать это через конфигурацию?

Если этой функции не существует, в качестве обходного решения у меня возникла следующая идея. Если мы знаем, что наш кеш занимает 1 терабайт, мы знаем, что с резервными копиями он будет 2 терабайта. (Приблизительно). Если мы выделяем чуть более 1 терабайта в память и устанавливаем политику вытеснения на диск, это эффективно обеспечит нам функциональность, которую мы хотим? То есть будет ли он вытеснять резервные копии на диск и оставить праймериз в памяти?

ответ

0

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

Обратите внимание, что я вижу смысл только в том случае, если вы используете SQL-запросы и/или если у вас нет хранилища сохраняемости. Если вы используете только доступ на основе ключа, любая потерянная запись будет перезагружена из хранилища сохраняемости по мере необходимости.

+0

Да, мы не используем доступ на основе ключа. На самом деле мы не используем SQL, мы передаем лямбду и выполняем локальные записи. Благодаря! –

+0

Просто перейдя к написанию этого сейчас. В рамках политики вытеснения мы думаем использовать функцию Affinity, чтобы определить, какие ключи являются первичными, а какие - резервные. Кажется ли это подходящим подходом? Кроме того, не уверен, имеет ли это значение, но мы также внедрили нашу собственную функцию близости. –