【建议】缓存机制的优化

这里报告PrimoCache软件的Bug或建议,
非常感谢您的支持!
回复
rome666
5级用户
5级用户
帖子: 42
注册时间: 周六 6月 03, 2017 4:47 pm

【建议】缓存机制的优化

帖子 rome666 »

不好意思管理员,我又来提意见了。 :D

:) 目前的一级二级的读缓存,如果满载后就会把旧的数据丢掉,新被读的又载进去,好像没考虑到“频率”的问题。(我的直观理解,可能和实际有些区别 )


:) 如果能优化为一级、二级满载后按读写的频率来进行一级、二级的缓存择取就更好了,而不是按照一级或二级满载后“新的来旧的去掉”的办法,就更能提高软件使用的实际提速的效果,而且还能保养到二级固态的读写寿命。最高频的就可以被调入一级,其次就是二级。这个“频率数据”的统计得有个类似的备份档,免得哪里一故障就被清除没了又要重新累积,这也是之前的一个建议里提到的防止掉二级缓存的办法有点类似,只不过又加入了“数据被读频率”的统计。同时也要有个“统计动态管理”的办法,统计到相对低频的就被淘汰出一级、二级,但频率高起来的又进入一级、二级的读缓区域,这样一来软件又智能很多。(如果都是一样的读写频率那么就可以互相替换淘汰)

;) 因为一级或二级的空间,是相对大机械盘来得更低的,这样取“高频”的来做缓存的话能更有效的利用一级和二级的速度优势,特别是一级的优势,因为一级最快又最小。

;) 另外可以加入一个“时间淘汰”的功能,如果有些“数据”某个时间被高频读取但之后的更长的一段时间内都没被使用就可以被“降级”、“丢弃” 或 不直接丢弃但可以被“新来的”替换掉,如果没有新来的它就一直存在不被丢弃,这样一来就防止了一些假”高频被读“的数据,避免了僵尸数据占用缓存,而这个淘汰的时间可以自定义,XX天之类的。

;) 如果软件已经有上边所提到的“频率”机制,那么备份这个“热度频率”的统计数据的备份肯定是没有的,使用“频率”的统计数据应该是要有备份存底的,因为重新累积一次这种数据是要花很长时间的,不因为一次故障被清除,但也可以有个选项手动清除。

:) 这个建议是针对一级、二级满载后才开启的功能,不满载就不用开启。大家的内存都相对是很小的,这样的优化后对一级内存的运用效率应该是大大提高的,有限的空间带来更大的实用价值,不过在未开启这个功能前使用频率的统计应该是一直存在的。
头像
Support
技术支持组
技术支持组
帖子: 2743
注册时间: 周日 12月 21, 2008 10:42 am
联系:

Re: 【建议】缓存机制的优化

帖子 Support »

一二级缓存淘汰算法中是有考虑频率和时间因素的,不是仅仅FRU算法。同时我们也会评估各种算法对CPU占用以及性能的额外影响等。对于算法的优化我们也是一直在研究思考中。非常感谢您提的这些建议!
Primo Ramdisk | PrimoCache
Romex Software 技术支持组
回复