Предположим, что у нас есть данные пары ключ-значение 500TB
. Мы можем использовать 2.5TB
памяти для кэширования этих пар для будущих запросов. Запросы несколько случайные.
The probability of cache hit would be 2.5/500 = 0.5%
Я знаю, что частота попаданий может увеличиваться со временем, если мы используем вытеснение LFU, поскольку со временем все чаще ключи остаются в кеше, увеличивая частоту обращений в кеш.
Таким образом, если пропускная способность чтения системы из хранилища 10K QPS
, то использование кэша повысит скорость на 0.05%
(без учета времени поиска в памяти).
Тогда пропускная способность будет 10,050 QPS
.
Насколько эффективно использовать кеш в этом случае?
Должны ли мы идти без кеша?
UPDATE
Я думаю, что здесь произошла ошибка. Если у нас будет 100% попадание, то пропускная способность будет 1MQPS. Если у нас 0% попаданий, то пропускная способность будет 10KQPS.
При коэффициенте попадания 0,5% (в предположении линейного отношения) доходность составляет
(0.5*(1M-10K)/100)+10K = 14950 QPS
Это увеличение пропускной способности на 50%.