Добрый день!
Использую тарантул на бою как сервис кэша сессий.
Записей в таблице около 300000, rps до 400, в пиках 600.
Версия 2.3.1-2-g92750c828
Настройки
log level 5
set 'memtx_memory' configuration option to 1048576000
set 'listen' configuration option to "3301"
set 'force_recovery' configuration option to true
set 'memtx_max_tuple_size' configuration option to 5242880
set 'checkpoint_count' configuration option to 3
Использую java-connctor для работы. С версии 2.3.1 начал замечать в логах такие записи (до этого кажется версия 2.1.3 была):
Failed to allocate 202251 bytes in slab allocator for memtx_tuple
До этого специально устанавливал опцию memtx_max_tuple_size в 5242880, после чего проверял строкой в 10 мегабайт, на что получил корректную ошибку
main/159/main memtx_engine.c:1136 E> ER_MEMTX_MAX_TUPLE_SIZE: Failed to allocate 10000085 bytes for tuple: tuple is too large. Check memtx_max_tuple_size' configuration option.
Проверка на строке в 4Мб отработала правильно, все данные записались.
Тем не менее, сейчас примерно 4-5 раз в час получаю такие исключения при попытке записи гораздо менее объемных данных. При этом исключение вижу в java-коннекторе, а в самом логе тарантула это никак не отражено.
В этой таблице примерно 300000 записей и раз в минуту в отдельном файбере вызывается метод очистки просроченных записей.Добавление новых записей происходит около 200 раз в секунду.Этот же самый код работал и на предыдущих версиях тарантула, ошибок замечено не было.
В чем может быть проблема?