Riak и серверная часть памяти: обработка истечения срока действия и обрезка

Мне интересно, какова наилучшая стратегия для управления истечением срока действия данных, связанных с сеансом, хранящихся в типе корзины памяти Riak.

Кажется, этот сервер поддерживает ttl (http://docs.basho.com/riak/kv/2.2.3/setup/planning/backend/memory/#ttl и http://docs.basho.com/riak/kv/2.2.3/configuring/backend/#memory-backend), однако в документации по второй ссылке указано, что:

«Как только время этого объекта истечет, он будет удален при следующем чтении его ключа». Что, если объект больше никогда не будет прочитан? Останется ли он в памяти? Однако я думаю, что в конечном итоге он будет уничтожен при достижении предела memory_backend.max_memory_per_vnode.

Является ли сохранение метки времени истечения срока действия еще одним подходящим вариантом? В этом случае обрезка будет выполняться процессом, периодически ищущим «старые» временные метки:

:riakc_pb_socket.search(pid, "expirable_token", "exp_counter:[* TO 1542468475]")
# then we delete them

Я проверил это, сохранив отметку времени в счетчике, поскольку регистры запроса диапазона, которые индексируются как строки, невозможны:

iex(34)> :riakc_counter.increment(System.system_time(:second), :riakc_counter.new())
{:counter, 0, 1542468373}

Однако я не уверен, что счетчики предназначены для хранения целых чисел. Как лучше хранить целые числа в типах данных Riak? Пользовательская схема с объявленным правильным типом int?


person Tangui    schedule 17.11.2018    source источник


Ответы (1)


Я бы порекомендовал использовать другой бэкэнд. Срок действия Bitcask очень эффективен и может быть настроен очень точно. Истечение срока действия leveldb работает достаточно хорошо.

person dams    schedule 23.11.2018
comment
Спасибо за ваш комментарий. Тем не менее, я хотел бы использовать Riak в качестве кеша (а-ля Redis), так как меня не волнует потеря данных, мне не нужно сохранять данные на диске, и я хотел бы избежать другой зависимости (например, Redis ). Что ты предлагаешь? - person Tangui; 24.11.2018