通过缓存写数据的方法和缓存系统及装置制造方法及图纸

技术编号:2835444 阅读:186 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种通过缓存写数据的方法和一种缓存系统及装置。本发明专利技术将缓存块划分为多个逻辑区域,并为每个逻辑区域设置对应的信息位,用于标记该逻辑区域中是否有待刷新数据;将待刷新数据写入到逻辑区域的同时,将该逻辑区域所对应的信息位设置为表示有待刷新数据的标记,不需要等待对应目标存储空间中对应位置的数据被读回即可进行表示写入成功的响应,从而提高响应速度;在刷新时,只将缓存块中对应信息位为表示有待刷新数据的标记逻辑区域内的待刷新数据刷新到目标存储区域,不会将非待刷新数据写入到目标存储区域内,从而不会将无效数据写入到目标存储区域内,降低了对目标存储介质的误操作的发生概率。

【技术实现步骤摘要】

本专利技术涉及存储技术,特别涉及一种通过缓存写数据的方法、一种缓存系统和一种缓存装置。
技术介绍
现有技术中,通常通过缓存(Cache)来访问存储介质,以减少对存储介质的访问次数,从而提高应用程序的运行效率。具体来说,在某个系统中,应用主机/服务器中的应用程序先将例如各种指令等数据写到缓存中,然后在刷新时刻到来时,例如目标存储介质比较空闲或数据急需处理等情况发生,由该系统中实现刷新功能的刷新控制单元将缓存中存储的数据刷新到目标存储介质中。其中,缓存也可称为中间存储介质,其读写速度通常要远高于目标存储介质。假设应用程序先将多个输入/输出(I/O)指令在缓存中存储,实现I/O指令的聚合,然后同时将在缓存中存储的多个I/O指令刷新到目标存储介质中,即对于多个I/O指令,只访问一次目标存储介质,就可以实现I/O指令的并发,从而提高了多个I/O指令的执行效率。实际应用中,通常将缓存中的空间划分为多个大小相等的块,即缓存块。每个缓存块中存储着头数据,头数据中通常包括该缓存块与目标存储区域的对应关系、表示该缓存块中是否有待刷新数据的标记的标志位。其中,目标存储区域是指目标存储介质中存储空间。图1为现有通过缓存写数据的示意图。如图1所示,缓存中的每个小方块分别表示一个缓存块,目标存储介质中的每个小方块分别表示一个目标存储区域。应用程序先将数据写入到缓存中的对应缓存块内,该数据可称为待刷新数据,即如图1所示的缓存中的深色小方块内,并由系统中的刷新控制单元将被写入待刷新数据的对应缓存块的标志位设置为表示有待刷新数据的标记;然后在刷新时刻到来时,根据缓存块与目标存储区域的对应关系,由刷新控制单元将标志位为表示有待刷新数据的标记的缓存块中的待刷新数据刷新到对应目标存储区域内,即如图1所示的目标存储介质中的深色小方块内,并将该缓存块对应的标志位设置为表示没有待刷新数据的标记。虽然缓存中的各缓存块大小是相等的,但是,通常情况下,写入到缓存中的数据量大小却不一定是相等的。对于缓存块来说,只要其接收数据并存储,其对应的标志位均会被设置为表示有待刷新数据的标记,但其接收到的数据可能不足以占满该缓存块的所有存储空间。这样,通常会产生将缓存块中的无效数据刷新到目标存储介质中的情况。图2a为现有通过缓存写数据的过程中将无效数据刷新到目标存储区域的示意图。如图2a所示,应用程序将需要写入到目标存储区域的数据先写入到缓存中的对应缓存块内,但该数据的数据量大小小于缓存块的大小,其中,当前写入到缓存块内的数据如图2a中缓存块内的深色部分所示,该缓存块中之前已存储的数据如图2a中缓存块内的浅色部分所示。对于当前对目标存储介质的写操作来说,该缓存块中上次刷新后保留的数据为无效数据,即非待刷新数据。然而,在刷新时刻到来时,刷新控制单元会将该缓存块中的所有数据均刷新到对应的目标存储区域内,从而使得缓存块中的无效数据会覆盖部分不需要写入数据的目标存储区域内的有效数据,有效数据被覆盖的部分目标存储区域如图2a中目标存储区域内深色部分所示,从而使得应用程序当前向目标存储介质写入数据的过程中,出现对目标存储介质的误操作,进而可能会产生应用程序运行错误、运行在目标存储介质上的系统紊乱、目标存储介质上的有效数据丢失等故障隐患。为了解决上述问题,现有技术中存在以下方案在应用程序将数据量大小小于缓存块大小的待刷新数据写入到缓存块之后,刷新控制单元将目标存储介质中,与该缓存块中未写入待刷新数据的部分对应的数据读回到该缓存块中,将目标存储介质中与缓存块中无效数据位置对应的数据读回到缓存块的过程参见图2b,然后将该缓存块对应的标志位设置为表示有待刷新数据的标记;在刷新时刻到来时,刷新控制单元再将该缓存块中的所有数据均刷新到对应的目标存储区域内。这样,实际上是将缓存块中的无效数据先替换为目标存储介质中可能该被无效数据覆盖的数据,然后再进行刷新,从而能够避免对目标存储区域的误操作。但是,上述方案存在以下问题在缓存块标志位被设置为表示有待刷新数据的标记后,系统中的刷新控制单元才向实用应用程序的用户进行响应,表示对缓存的写操作成功。而上述方案中,刷新控制单元将目标存储介质中的数据读回到缓存块之后,才将缓存块中的标志位设置为表示有待刷新数据的标记,即无法立即对用户进行响应。而且,在应用程序将数据量大小小于缓存块大小的待刷新数据写入到缓存块之后,刷新控制单元并不一定立即将目标存储介质中相应的数据读回,而是可能等到系统空闲时在读回。这样,就使得用户通过应用程序将待刷新数据写入到缓存块中之后,可能长时间无法得到表示写入成功的响应,从而使得用户误认为写入未成功而重新发起写入操作,增加了不必要的操作且增加了系统负担。上述方案中,还有可能由于系统长时间繁忙,使得刷新控制单元丢失了其需要从目标存储介质中读回的数据的位置信息,从而在系统恢复空闲后,刷新控制单元无法从目标存储介质中读回对应的数据,因而仍然可能会将无效数据刷新到目标存储介质中,造成对目标存储介质的误操作。由于上述方案的响应速度慢且无法完全避免对目标存储介质的误操作,使得部分用户不得不放弃通过缓存写数据的优势,而是利用应用程序将待刷新数据直接写入到目标存储介质。可见,现有通过缓存向目标存储介质写数据的方案,在数据无法占满缓存块的情况下,会对目标存储区域进行误操作,从而产生各种故障隐患。而且,由于数据大小通常无法与缓存块大小匹配,因此,对目标存储介质的误操作发生的概率非常大。
技术实现思路
有鉴于此,本专利技术提供了一种通过缓存写数据的方法、一种缓存系统和一种缓存装置,能够在降低对目标存储区域的误操作发生概率的同时,提高响应速度。本专利技术提供的一种通过缓存写数据的方法,包括将缓存中的一个缓存块划分为至少两个逻辑区域,一个逻辑区域对应一个目标存储区域,每个逻辑区域对应设置一个信息位,用于标记该逻辑区域中是否有待刷新数据;将待刷新数据缓存到对应信息位为表示没有待刷新数据标记的逻辑区域内,并将该逻辑区域对应的信息位设置为表示有待刷新数据的标记;将对应信息位为表示有待刷新数据标记的逻辑区域内的待刷新数据刷新到对应的目标存储区域,并将该逻辑区域对应的信息位设置为表示没有待刷新数据的标记。所述将对应信息位为表示有待刷新数据标记的逻辑区域内的待刷新数据刷新到对应的目标存储区域之前,该方法进一步包括从目标存储区域中,读取与信息位为表示没有待刷新数据的标记的逻辑区域对应的数据,并写入到该逻辑区域内;所述将对应信息位为表示有待刷新数据标记的逻辑区域内的待刷新数据刷新到对应的目标存储区域为将缓存块中的数据刷新到对应的目标存储区域。逻辑区域与目标存储区域的对应关系、以及所述逻辑区域对应的信息位设置在缓存块的头数据中。每个所述信息位为预设位图中的一位,一个所述位图对应一个缓存块。各逻辑区域大小相等。所述对逻辑区域的划分是按照目标存储区域的预设最小读写单位进行的。本专利技术提供的一种缓存系统,包括缓存装置和刷新控制单元,耦合于应用主机/服务器以及目标存储介质之间,所述缓存装置由缓存块构成,所述缓存装置的缓存块中包括划分的逻辑区域,一个逻辑区域对应外部目标存储介质中的一个目标存储区域,且一个逻辑区域对应一个信息位,用于标记该逻辑区域中是否有待刷新数据;当对应信息位为表示没有本文档来自技高网
...

【技术保护点】
一种通过缓存写数据的方法,其特征在于,包括:将缓存中的一个缓存块划分为至少两个逻辑区域,一个逻辑区域对应一个目标存储区域,每个逻辑区域对应设置一个信息位,用于标记该逻辑区域中是否有待刷新数据;将待刷新数据缓存到对应信息位为表 示没有待刷新数据标记的逻辑区域内,并将该逻辑区域对应的信息位设置为表示有待刷新数据的标记;将对应信息位为表示有待刷新数据标记的逻辑区域内的待刷新数据刷新到对应的目标存储区域,并将该逻辑区域对应的信息位设置为表示没有待刷新数据的标记。

【技术特征摘要】

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

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

1