Make statement cache LRU use size instead of the capacity
На текущий момент у нас есть два параметра:
- storage_cache_capacity - количество выражений в кэш тарантула, на количество которых смотрит LRU
- sql_cache_size - емкость тарантульного кэша в байтиках
Емкость в байтиках имеет больший приоритет, чем количество выражений. Так что LRU должен ориентироваться на емкость в байтах, а storage_cache_capacity нужно удалить и не путать пользователя.
- Нужно порефакторить в ядре тарантула API для компиляции запросов: нужно получать количество байт, которые будет занимать statement в тарантульном кэше. Так же хотелось бы после получения размера statement сразу складывать его в кэш тарантула без двойной компиляции (а следовательно, нужно управлять жизнью этого объекта из раста)
- Нужно отрефакторить LRU в пикодате (сейчас он умеет работать только с количеством записей, но не абстрактной функцией, которая могла бы байтики).
Edited by Denis Smirnov