提高缓存性能的方法及缓存系统技术方案

技术编号:2827755 阅读:212 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了一种提高缓存性能的方法,该方法包括:以扇区为基本单位处理访问缓存Cache的输入输出IO请求,其中,所述扇区大小要小于缓存时隙Cache  slot大小。相应地,本发明专利技术还提供了一种缓存系统。利用本发明专利技术提供的技术方案,能够减少IO请求响应时间,加快响应速度,提高缓存性能。

【技术实现步骤摘要】

本专利技术涉及数据缓存技术,尤其涉及提高缓存性能的方法及缓存系统
技术介绍
在数据存储系统中,通常包括非易失存储器和高速缓冲存储器(Cache)即缓存两部分。当外部设备发起输入输出(IO)请求访问数据存储系统时,首先搜索Cache,如果在Cache中发现需要的数据,则称为缓存命中,从Cache中读取数据;否则称为缓存未命中,从非易失存储器中读取数据。缓存命中可以提高数据存储系统的响应速度,缩短IO路径距离。Cache由多个缓存时隙(Cache slot)组成,每个Cache slot都是一段连续的内存,其大小一般为2K、4K、8K、16K、32K、64K或128K等。Cacheslot是Cache操作的基本单位,在实际操作过程中,不仅一个IO请求可能涉及多个Cache slot,一个Cache slot上也可能发生多个IO请求。在现有的缓存技术中,当一个IO请求涉及到某一个Cache slot时,就会将该Cache slot锁住,用以表示该Cache slot上当前存在IO请求,后续发生在该Cache slot上的其它IO请求必须等待,直到当前IO请求处理完毕才能处理后续IO请求。也就是说,一个Cache slot上一次只能处理一个IO请求,而不能同时处理多个IO请求,这样会延长IO请求的响应时间,减缓响应速度,并最终导致缓存性能的下降。
技术实现思路
有鉴于此,本专利技术的目的在于提供一种提高缓存性能的方法及缓存系统,以减少IO请求响应时间,加快响应速度,提高缓存性能。为达到上述目的,本专利技术提供的技术方案如下:-->一种提高缓存性能的方法,该方法包括:以扇区为基本单位处理访问缓存Cache的输入输出IO请求,其中,所述扇区大小要小于缓存时隙Cache slot大小。所述处理过程包括:接收到访问Cache的IO请求后,判断该IO请求对应的所有扇区当前是否都处于空闲状态,如果是,则处理该IO请求;否则,先将该IO请求挂起,等到该IO请求对应的所有扇区都处于空闲状态时再处理该IO请求。该方法还包括:为Cache的各个扇区分别设置请求标志位,用以表示各个扇区当前是否处于空闲状态;所述判断该IO请求对应的所有扇区当前是否都处于空闲状态包括:根据该IO请求对应的所有扇区的请求标志位判断该IO请求对应的所有扇区当前是否都处于空闲状态。所述判断该IO请求对应的所有扇区当前是否都处于空闲状态的过程具体包括:针对所述IO请求对应的各个扇区,分别判断该扇区的请求标志位当前是否处于空闲状态,如果是,则将该扇区的请求标志位置为非空闲状态;否则,标记该扇区发生了冲突;当所述IO请求对应的所有扇区都执行完毕上述判断操作之后,判断是否存在发生了冲突的扇区,如果不存在,则确定该IO请求对应的所有扇区当前都处于空闲状态。发生了冲突的扇区恢复为空闲状态之后进一步包括:将发生了冲突的扇区的请求标志位置为非空闲状态;所述IO请求处理完毕之后进一步包括:将该IO请求对应的所有扇区的请求标志位都置为空闲状态。所述Cache slot大小为扇区大小的整数倍。一种缓存系统,该系统包括:用于缓存数据的缓存模块以及对缓存模块进行控制的缓存控制模块,其中,所述缓存控制模块,用于接收访问缓存模-->块的IO请求,并以扇区为基本单位处理访问缓存模块的IO请求,其中,所述扇区大小要小于Cache slot大小。所述缓存控制模块接收到访问缓存模块的IO请求后,判断该IO请求对应的所有扇区当前是否都处于空闲状态,如果是,则处理该IO请求;否则,先将该IO请求挂起,等到该IO请求对应的所有扇区都处于空闲状态时再处理该IO请求。所述缓存控制模块进一步为缓存模块的各个扇区分别设置请求标志位,用以表示各个扇区当前是否处于空闲状态,缓存控制模块根据所述IO请求对应的所有扇区的请求标志位判断所述IO请求对应的所有扇区当前是否都处于空闲状态。所述缓存控制模块针对所述IO请求对应的各个扇区,分别判断该扇区的请求标志位当前是否处于空闲状态,如果是,则将该扇区的请求标志位置为非空闲状态;否则,标记该扇区发生了冲突;当所述IO请求对应的所有扇区都执行完毕上述判断操作之后,判断是否存在发生了冲突的扇区,如果不存在,则确定该IO请求对应的所有扇区当前都处于空闲状态。所述缓存控制模块进一步在发生了冲突的扇区恢复为空闲状态之后,将发生了冲突的扇区的请求标志位置为非空闲状态;并在所述IO请求处理完毕之后,将该IO请求对应的所有扇区的请求标志位都置为空闲状态。所述Cache slot大小为扇区大小的整数倍。由此可见,采用以扇区为Cache操作的基本单位的方案后,对于发生在同一个Cache slot上的多个IO请求,只要它们所涉及到的扇区不一样,那么就可以同时得到处理,而无需进行等待,从而避免了现有技术中一个Cacheslot上一次只能处理一个IO请求而不能同时处理多个IO请求的情况,有效减少了IO请求的响应时间,加快了响应速度,提高了缓存性能。附图说明图1为本专利技术实施例中提高缓存性能的方法流程图;-->图2为本专利技术实施例中的IO请求处理过程示意图;图3为本专利技术实施例中的缓存系统结构示意图。具体实施方式为了克服现有技术中的问题,本专利技术提供一种解决方案,其基本思想是:以扇区(sector)为基本单位处理访问Cache的IO请求。其中,扇区是Cacheslot的进一步划分,每个扇区的大小一般为512字节或1K,要小于一个Cacheslot的大小,一个Cache slot可以分为多个扇区,Cache slot大小是扇区大小的整数倍。为使本专利技术的目的、技术方案及优点更加清楚明白,下面参照附图并举实施例,对本专利技术作进一步详细说明。图1示出了本专利技术提供的提高缓存性能方法的流程图,包括如下步骤:步骤101:接收到访问Cache的IO请求后,判断该IO请求对应的所有扇区当前是否都处于空闲状态,如果是,则执行步骤102;否则,执行步骤103。步骤102:处理该IO请求,并结束本流程的处理。步骤103:先将该IO请求挂起,等到该IO请求对应的所有扇区都处于空闲状态时,再处理该IO请求。由于发生在同一个Cache slot上的多个IO请求所涉及的扇区可能是不同的,因此,以扇区为Cache操作的基本单位,而不以Cache slot为Cache操作的基本单位,能够缩小IO请求的冲突范围。为了实现本专利技术,可以对现有的Cache slot数据结构进行修改。比如,参见表1所示的示例性Cache slot数据结构,地址(Address)、时隙指针(Cacheslot pointer)和状态(Status)是现有的数据位,而sectors cmd是新增的扇区请求标志位。其中,Address表示Cache slot所在的逻辑单元号(LUN)和起始逻辑块地址(LBA)信息;Cache slot pointer指向数据缓存区域;Status表示Cache slot的数据状态;sectors cmd为新增的扇区请求标志位,用于指-->示Cache slot中的各个扇区当前是否处于空闲状态。其中,扇区处于空闲状态是指该扇区上当前不存在正在处理的IO请求;扇区处于非空闲状态是指该扇区上当前存在正在处理的IO请求。也就是说,当Cache sl本文档来自技高网...

【技术保护点】
一种提高缓存性能的方法,其特征在于,该方法包括:以扇区为基本单位处理访问缓存Cache的输入输出IO请求,其中,所述扇区大小要小于缓存时隙Cache  slot大小。

【技术特征摘要】
1.一种提高缓存性能的方法,其特征在于,该方法包括:以扇区为基本单位处理访问缓存Cache的输入输出IO请求,其中,所述扇区大小要小于缓存时隙Cache slot大小。2.根据权利要求1所述的方法,其特征在于,所述处理过程包括:接收到访问Cache的IO请求后,判断该IO请求对应的所有扇区当前是否都处于空闲状态,如果是,则处理该IO请求;否则,先将该IO请求挂起,等到该IO请求对应的所有扇区都处于空闲状态时再处理该IO请求。3.根据权利要求2所述的方法,其特征在于,该方法还包括:为Cache的各个扇区分别设置请求标志位,用以表示各个扇区当前是否处于空闲状态;所述判断该IO请求对应的所有扇区当前是否都处于空闲状态包括:根据该IO请求对应的所有扇区的请求标志位判断该IO请求对应的所有扇区当前是否都处于空闲状态。4.根据权利要求3所述的方法,其特征在于,所述判断该IO请求对应的所有扇区当前是否都处于空闲状态的过程具体包括:针对所述IO请求对应的各个扇区,分别判断该扇区的请求标志位当前是否处于空闲状态,如果是,则将该扇区的请求标志位置为非空闲状态;否则,标记该扇区发生了冲突;当所述IO请求对应的所有扇区都执行完毕上述判断操作之后,判断是否存在发生了冲突的扇区,如果不存在,则确定该IO请求对应的所有扇区当前都处于空闲状态。5.根据权利要求4所述的方法,其特征在于,发生了冲突的扇区恢复为空闲状态之后进一步包括:将发生了冲突的扇区的请求标志位置为非空闲状态;所述IO请求处理完毕之后进一步包括:将该IO请求对应的所有扇区的请求标志位都置为空闲状态。6.根据权利要求1至5任一项所述的方法,其特征在于,所述Cache slot大小为扇区大小的整数倍。7...

【专利技术属性】
技术研发人员:李至哲
申请(专利权)人:杭州华三通信技术有限公司
类型:发明
国别省市:86[中国|杭州]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1