Buffer Pool и Clock-sweep: как мы боремся с cache pollution и p99 latency
Один аналитический запрос способен испортить p99 latency всего OLTP-трафика — на время, пока горячий рабочий набор не прогреется заново с диска. Это cache pollution, и с ним рано или поздно сталкивается любая СУБД с честным LRU. Разбираем, как мы решили эту проблему в нашем OLTP-движке: почему выбрали Clock-sweep вместо LRU, как BufferRing изолирует полные сканы от горячих данных, и почему no-steal — это не стилистический выбор, а требование корректности recovery. С кодом, инвариантами и честными оговорками про то, что ещё не сделано.
https://habr.com/ru/articles/1030822/
#buffer_pool #clock_sweep #cache_pollution #lru #eviction_algorithm #oltp #p99_latency #nosteal #wal #backpressure
