大表扫描调优

神通支持使用 ring buffer 策略。神通 ring buffer 策略是指全表扫描需要使用大量的缓冲区时采用的一种特殊的策略。

ring buffer 策略不会像正常 LRU 算法置换整片缓冲区中的数据,而是在一小块缓冲区上使用 LRU 算法置换页面,并会重用这块缓冲区完成整个扫描,这样就会避免大量全表扫描带来的缓冲区命中率的下降。

相关配置参数:

BUF_RING_SCAN_THRESHOLD:采用 ring buffer 策略的阈值,参数范围是[0.0, 1.0],默认取值 0.25。 参数取值不为 0.0 时,如果扫描的表的大小超过缓冲区大小乘以参数值,对该表扫描尽量只使用配置参数 BUF_RING_SIZE 指定数量的缓冲区,在这一块缓冲区中做页面的替换,避免占用过多空闲缓冲区。 参数取值为 0.0 时,表示关闭此 RING 扫描策略的功能。

BUF_RING_SIZE:ring扫描策略所使用的环形缓冲区的大小,参数范围是[192, BUF_DATA_BUFFER_PAGES],默认取值 192。