note:本文要说的是一篇论文(Software defined just-in-time caching in an enterprise
storage system)的思想。
框架
如下图所示,如果你懂SAN,DAS以及cache的机制,从这个框架就可以看出这个框架的思想(~~不解释啦)
note:虽然SAN中的存储节点画出了storage node的tier结构,实际上这个论文完全不讲tier policy,只关心DAS的cache read...
SDCC layer
协调flash和san,来达到很好的优化的目的。sdcc server通过给client做出caching决定。而client则负责管理局部的数据cache空间,细粒度的监控workload,然后将数据从SAN搬运到DAS,从而达到更短的读请求相应时间。
每个client的设计如下
SDCC protocol就是通信的协议,负责和server通信;
cache directory是一个维护cache目录的结构体;
watchlist维护一个待放入cache的信息结构体;
DAS Manager主要是负责管理Flash cache;
application 的hint:是一种将app的数据放置到目标位置的消息,是应用程序调用SDCC的API(注意框架图中的SDCC
API layer,应用程序的hint API通过这个层次可以到达SDCC client)发出的,这个是和应用程序本身存取请求不一样的;
SDCC Server
?在SDCC集群的拓扑图中,sdcc server处于这么一个重要的位置,集群中cache的事情也都要这个sdcc server来做。
?sdcc server掌握了workload的存取特征,系统配置和hint消息。利用这些消息来做data的移动
?正因为sdcc server处于这么重要的位置上,有global view,从而可以做出更好的决定。server也不盲目的认为hint是很重要的,但是会很看重。
selective caching
?SDCC client选择 what to promote:
1.Monitor workload
2.Advise from the server
3.Hints from SDCC-API
达到的三重目标:
1.增加hit命中率
2.最大化read带宽
3.最大化Flash 生命周期
测试结果
1.对于Brokerage Tansactiuonal(90% read)
?Brokeragetransactional workload:90% read ;10% write操作;To demonstate how SDCC improvetransactionnal rate
?OLTPtransactional workload;40%read;60%write;To demonstrate the response timeimprovement under constant throughput
p.s.本文讲的过于简单,但是希望至少是带入了SDCC(软件定义的cache一致性)这个情景,如果感兴趣,还得仔细阅读原文。