Skip to content

Make statement cache LRU use size instead of the capacity

На текущий момент у нас есть два параметра:

  • storage_cache_capacity - количество выражений в кэш тарантула, на количество которых смотрит LRU
  • sql_cache_size - емкость тарантульного кэша в байтиках

Емкость в байтиках имеет больший приоритет, чем количество выражений. Так что LRU должен ориентироваться на емкость в байтах, а storage_cache_capacity нужно удалить и не путать пользователя.

  1. Нужно порефакторить в ядре тарантула API для компиляции запросов: нужно получать количество байт, которые будет занимать statement в тарантульном кэше. Так же хотелось бы после получения размера statement сразу складывать его в кэш тарантула без двойной компиляции (а следовательно, нужно управлять жизнью этого объекта из раста)
  2. Нужно отрефакторить LRU в пикодате (сейчас он умеет работать только с количеством записей, но не абстрактной функцией, которая могла бы байтики).
Edited by Denis Smirnov
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information