一次逻辑地址连续的读取,若这个块大于某自定义大小(例如512K),那么就认为这属于连续数据,不保存进L2。
此策略可选择是否仅在L2剩余空间低于某比例时生效。
如果方便实现的话,软件应保存最近从磁盘读取的若干次的读取记录。
举例来说,当前读取了磁盘的第1000-1079簇,大小是320K,而之前几次读取中有第920-959和960-999簇的记录,虽然它们都小于512K,但是地址连续且合并超过512K,那么这3块应视为连续数据,不保存进L2。
同时这也意味着,一块待写入L2的数据应先保留一小段时间,确认没有后续连续数据时再写入L2。
在缓存已满时,优先替换较大的块。
这样可以极大提高L2的使用效率,减少SSD写入,降低L2被意外覆盖的可能性。
关于增加自定义L2最大缓存块大小的建议
Re: 关于增加自定义L2最大缓存块大小的建议
谢谢您的建议!我们会结合您的想法考虑。实际情况比这理想情况要复杂的多,再加上Windows经常有自带的预读功能,所以不是简单一个算法就可以的。