一种利用缓存实现数据存储的方法和装置制造方法及图纸

技术编号:2918487 阅读:149 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种利用缓存实现数据存储的方法和装置。在该方法中,设置每一种业务访问类型对应的替换算法或预取算法;根据用户发来的指令确定当前的业务访问类型;选择与当前的业务访问类型对应的替换算法或预取算法;使用所选择的替换算法或预取算法将数据存储到缓存(Cache)中。本发明专利技术针对每一种业务的访问特点来选择替换算法或预取算法,因此,提高了从Cache中读取数据的命中率,从而提高了系统的访问效率。

【技术实现步骤摘要】

本专利技术涉及数据存储技术,特别是涉及一种利用緩存实现数据存储的方 法和装置。
技术介绍
随着信息技术的高速发展,目前出现了能够提供数据存储业务的数据存 储系统。数据存储系统中主要包括磁盘阵列和主机处理器,其中,磁盘阵列 用于存储数据,主机处理器用于将外部用户的数据写入磁盘阵列,或者从磁 盘阵列中读取用户所需的数据。然而,由于主机处理器的工作频率远大于磁盘阵列的工作频率,因此,主机处理器对磁盘阵列发出一次读写命令后,需 要等待较长的时间才能够收到磁盘阵列的响应来完成数据读写,这样,则大 大降低了数据读写的效率。为了解决主机处理器与磁盘阵列的工作频率相差较大导致数据读写效率低下的问题,目前,采用了在主机处理器与磁盘阵列之间设置緩存(Cache ) 的做法。图l是数据存储控制系统的结构示意图。参见图1,为了提高数据 读写的效率,设置工作频率介于主机处理器和磁盘阵列之间的缓存控制器和 緩存。这样,将外部数据写入磁盘阵列的过程包括主机处理器将外部发来 的数据写入指令发送给緩存控制器;緩存控制器检查Cache中是否有空闲的 存储空间,如果有,则直接将数据写入指令中携带的数据写入Cache中空闲 的存储空间,如果没有,则需要使用预先配置的替换算法,得到Cache中能 够替换的存储空间,将该能够替换的存储空间中存储的数据删除,然后将数 据写入指令中携带的数据写入该能够替换的存储空间中;磁盘阵列扫描緩存 控制器,确定有新写入的数据后,从Cache中读取该新写入的数据,从而完成了外部数据写入磁盘阵列的过程。外部从磁盘阵列中读取数据的过程包括主机处理器将外部发来的数据读取请求发送给緩存控制器;緩存控制器检查Cache中是否存储有外部所请 求的数据,如果有,则直接将Cache中存储的对应的数据发送给主机处理器, 如果没有,则向磁盘阵列发送该数据读取请求,并且,为了进一步提高数据 读取命中率,緩存控制器还根据预先配置的预取算法,预测后续会从磁盘阵 列中读取的数据,将预取数据的请求也发送给磁盘阵列;磁盘阵列将当前请 求的数据和预取的数据均发送给缓存控制器,緩存控制器将其存储在Cache 中,主机处理器从Cache中读取出当前请求的数据后发送到外部。由以上描述可以看出,替换算法和预取算法是利用Cache实现数据存储 过程中的两个重要算法。替换算法保证在Cache中没有空闲存储空间时,能 够替换出存储空间来存储最新接收到的数据,而预取算法则能够预测主机处 理器后续会读取的数据并提前存储到Cache中,保证主机处理器在后续访问 时能够从Cache中一次读取到数据,提高读取数据的命中率。然而,在现有技术中,緩存控制器使用的替换算法和预取算法是单一的, 也就是说,无论对于何种业务类型的读写数据,緩存控制器均按照同一种替 换算法替换出Cache中一段存储空间,并且,緩存控制器均按照同一种预取 算法预测出主机处理器后续想要读取的数据。现有技术此种使用单一替换算 法和预取算法的做法,无法适应多种业务类型的多种使用需求,往往会导致 主机处理器从Cache中读取数据的命中率4氐下。
技术实现思路
有鉴于此,本专利技术的一个目的在于提供一种利用緩存实现数据存储的方 法,本专利技术的另一个目的在于提供一种利用缓存实现数据存储的装置,本发 明的再一个目的在于提供一种网络存储控制系统,以便于提高从Cache中读 取数据的命中率。为了达到上述目的,本专利技术的技术方案是这样实现的一种利用緩存实现数据存储的方法,设置每一种业务访问类型对应的替 换算法或预取算法,该方法包括根据用户发来的指令确定当前的业务访问类型;选择与当前的业务访问类型对应的替换算法或预取算法;使用所选择的替换算法或预取算法将数据存储到緩存Cache中。一种利用緩存实现数据存储的装置,包括交互单元,用于接收用户发送的指令;存储单元,用于存储每一种业务访问类型对应的替换算法或预取算法; 处理单元,用于根据交互单元接收到的指令确定当前的业务访问类型,从存储单元中选择与当前的业务访问类型对应的替换算法或预取算法,将所选择的替换算法或预取算法的信息发送给緩存执行单元;緩存执行单元,用于使用所选择的替换算法或预取算法将数据存储到Cache中。一种网络存储控制系统,包括用户主机通道、磁盘阵列通道、位于上述 两个通道之间用以提高用户主机响应速度的緩存,以及用以根据用户主机业 务类型动态改变自身算法的緩存控制器,其中该算法至少包括替换算法和预 取算法两类算法中的一类。由此可见,在本专利技术中,针对每一种业务的访问特点来选择将数据存储 到Cache中的替换算法或预取算法,保证Cache中存储的数据尽可能的是主 机处理器后续访问所需使用的,因此,提高了主机处理器从Cache中读取数 据的命中率,从而提高了系统的访问效率,提高了系统的吞吐量。附图说明图1是数据存储控制系统的结构示意图。图2是在本专利技术实施例1中一种利用替换算法在緩存中进行数据存储的 流程图。图3是在本专利技术实施例1中另一种利用替换算法在緩存中进行数据存储的流程图。图4是在本专利技术实施例2中一种利用预取算法在緩存中进行数据存储的 流程图。图5是在本专利技术实施例2中另一种利用预取算法在緩存中进行数据存储 的流程图。图6是在本专利技术一个实施例中的利用緩存实现数据存储的装置的结构 示意图。图7是在本专利技术一个实施例中利用緩存实现数据存储的装置设置在緩 存控制器中的具体结构示意图。图8是在本专利技术另一个实施例中利用緩存实现数据存储的装置设置在 主机处理器和缓存控制器中的具体结构示意图。具体实施例方式为使本专利技术的目的、技术方案和优点更加清楚,下面结合附图及具体实 施例对本专利技术作进一 步地详细描述。在实际的业务实现中,用户在进行不同类型的业务时对数据的访问方式 是不同的,这样,主机处理器根据用户请求从Cache中读取数据的方式则不 同。比如,用户进行的业务需要始终访问连续性数据,即连续性访问业务, 如用户下载一部电影,这样,主机处理器则会从Cache中从前至后的读取连 续存储的数据。再如,用户进行的业务需要对部分数据进行反复使用,即局 部性反复访问业务,如用户对数据库中的特定数据进行反复访问,这样,主 机处理器则会从Cache中反复读取一部分特定数据。又如,用户进行的业务 需要对数据进行循环使用,即循环访问业务,这样,主机处理器则会从Cache 中循环读取全部数据。在现有技术中,由于使用单一替换算法,比如为先进先出(FIFO)算 法,因此,当有新的数据到来时,根据该先进先出算法,就会用新到来的数 据替换Cache中最先存储的数据,而如果当前进行的是局部性反复访问业务,那么,主机处理器在多次访问中很可能均需要读取最先存储在Cache中 的原始数据,这样,用FIFO算法作为替换算法,则会导致主机处理器后续 无法访问到正确的数据,降低了读取数据的命中率。另外,由于现有技术中 使用单一预取算法,如局部性周边预取算法,那么,在从磁盘阵列中预取数 据时,则会预取出存储在当前所请求数据之前和之后特定位置的数据并存储 在Cache中,然而,如果当前进行的业务是连续性访问业务时,预取并存储 在Cache中的当前所请求数据之前特定位置的数据则并不是所需的,因此, 也降低了读取数据的命中率。可见,要想保本文档来自技高网
...

【技术保护点】
一种利用缓存实现数据存储的方法,其特征在于,设置每一种业务访问类型对应的替换算法或预取算法,该方法包括:根据用户发来的指令确定当前的业务访问类型;选择与当前的业务访问类型对应的替换算法或预取算法;使用所选择的替换算法 或预取算法将数据存储到缓存Cache中。

【技术特征摘要】

【专利技术属性】
技术研发人员:刘介良安辉赖守锋
申请(专利权)人:杭州华三通信技术有限公司
类型:发明
国别省市:86[中国|杭州]

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

1