flashcache作为通用的缓存模块,可应用于多种应用场景。但与其同时,由于其工作原理的限制,它只缓存特定大小的块,在某些特定场合下可能不适用。
下面,就flashcache的技术点进行分析和探讨。
一、可靠性
(1)由于flashcache本身的电子特性引起的位反转和串扰,会影响可靠性;
(2)flashcache本身的异常处理机制是否完善;
(3)SSD的容量一般比较大,在服务器宕机时,如何及时的转移数据并恢复业务运行;
(4)随便负载增大,对flashcache的性能会有影响,如何保证其性能相对平滑;
二、cache策略
(1)目前支持wb,wa,wt三种模式,但wt模式性能较差;
三、cache算法
(1)基于时间,如LRU
(2)基于效率
(3)兼顾时间和效率,能使flashcache的性能在任何情况下,均有较好性能
(4)基于特定业务模型,如IBM,提出了针对顺序和随机IO均有较高性能的SARC算法
四、元数据
(1)元数据分布
元数据占有的存储空间,及运行时占用的内存;
元数据占用空间太大,会加剧SSD的消耗,并且会损坏和减小SSD的寿命;
flashcache占用存储空间不算太大,但会占用较大内存,如300G的cache,占用1G内存;
(2)元数据更新
元数据以元数据块大小(即元数据扇区)为单位进行批量更新;
但没有考虑到定期更新,即如果某set内长时间没有IO,则其中的脏块会长时间得不到清理,危害数据安全;可考虑增加定期更新;
元数据以元数据块大小对齐。
五、数据的组织和管理
(1)512路组相联哈希;
(2)SSD被分为多个具有相同大小(默认,512个块)的set,set为数据查找、更新,以及数据清理的范围;
flashcache的不足
一、可靠性
(1)异常处理机制比较简单,支持checksum,但软件实现的checksum容易制约性能;
(2)
二、cache策略
三、cache算法
(1)目前只支持LRU和FIFO,实现比较简单,但增加算法十分容易;
(2)在LRU基础上选择合适的二次算法,避免暂时热点的出现;
四、