CN106991059B - 对数据源的访问控制方法 - Google Patents
对数据源的访问控制方法 Download PDFInfo
- Publication number
- CN106991059B CN106991059B CN201710153305.XA CN201710153305A CN106991059B CN 106991059 B CN106991059 B CN 106991059B CN 201710153305 A CN201710153305 A CN 201710153305A CN 106991059 B CN106991059 B CN 106991059B
- Authority
- CN
- China
- Prior art keywords
- data
- cache layer
- read
- layer
- write
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种对数据源的访问控制方法。基于本发明,通过堆栈式缓存架构中的临时缓存层与预读缓存层和回写缓存层配合实现的淘汰机制,能够针对被数据源读写访问发起方反复连续访问的数据更快速地做出响应。并且,对于数据源读写访问发起方和数据源层异地部署的情况,堆栈式存储架构中的缓存资源可以全部或部分地设置于数据源读写访问发起方的本地存储介质中,使被数据源读写访问发起方反复连续访问的数据能够保留在本地缓存资源中,因而能够将原本需要对数据源层实施的较慢的远程访问转换为对缓存资源的较快的本地访问。从而,提升数据源读写访问发起方的数据访问性能。
Description
技术领域
本发明涉及缓存技术,特别涉及一种对数据源的访问控制方法。
背景技术
在学校机房或网吧等公共上网场所,往往部署着数量庞大的无盘工作站。并且,所有的无盘工作站都可以远程访问服务器,以实现由服务器中的硬盘介质为这些无盘工作站提供数据的远程集中存储。
无盘工作站中通常由***程序以及应用程序作为数据读写访问发起方,其访问的内容多为数据量较大且读写频繁密集的操作***或游戏应用等相关数据,而公共上网场所里往往同时有几十甚至几百台无盘工作站同时并发访问单台服务器。在如此大数据量的访问情况下,无盘工作站对远程数据的访问性能会极大受到网络响应速度、以及服务器中的硬盘介质的并发读写性能的限制,使得无盘工作站的用户上机体验往往大幅差于常规的有盘工作站。
为了提高无盘工作站对远程数据的访问性能,现有技术一直尝试提高硬件配置。例如,为无盘工作站配置速度更快的CPU或网卡,以提升远程数据访问的网络响应速度;再例如,为服务器配置运转速度更快的硬盘,以提升存储介质的读写性能。
但上述的这些解决方案必然意味着更高的成本。即,上述的这些解决方案必须以成本为代价来换取无盘工作站对远程数据访问性能的提升。对于对成本较为敏感的学校和网吧来说,这样的成本提升通常是难以承担的。
发明内容
有鉴于此,本发明提供了一种对数据源的访问控制方法,能够借助堆栈式缓存架构中低成本的缓存资源提升远程数据读写访问的响应速度和性能。
本发明提供的一种对数据源的访问控制方法,该访问控制方法基于堆栈式缓存架构实现数据源读写访问发起方对数据源的读写访问,其中,堆栈式缓存架构包括临时缓存层和数据源层、以及位于临时缓存层与数据源层之间的预读缓存层和回写缓存层;
当数据源读写访问发起方发起对数据源的写访问时,该访问控制方法被触发执行如下步骤:
a1、判断当前的写访问是否在临时缓存层命中或能够数据合并,若命中或能够合并,则执行步骤a2,否则触发对临时缓存层的数据淘汰、并在数据淘汰完成后执行步骤a2;
a2、将当前的写访问对应的数据写入临时缓存层、并将写入临时缓存层的数据标记为脏数据,然后结束当前的写访问;
当数据源读写访问发起方发起对数据源的读访问时,该访问控制方法被触发执行如下步骤:
b1、判断当前的读访问是否在临时缓存层命中,若命中,则执行步骤b3,否则触发对临时缓存层的数据淘汰、并在数据淘汰完成后执行步骤b2;
b2、在堆栈式缓存架构中向下查找当前的读访问对应的数据,并将查找到的数据读入至临时缓存层,然后执行步骤b3;
b3、从临时缓存层读取当前的读访问对应的数据,然后结束当前的读访问;
该访问控制方法还包括用于执行临时缓存层的数据淘汰的如下步骤:
c0、判断临时缓存层中是否存储有数据,若是,则执行步骤c1,否则结束临时缓存层的数据淘汰;
c1、判断临时缓存层中的数据是否被标记为脏数据,若是,则执行步骤c2,否则执行步骤c8;
c2、判断回写缓存层是否存在足够的空闲空间,若是,则执行步骤c4,否则执行步骤c3;
c3、将回写缓存层中的部分数据淘汰至数据源层,使回写缓存层中的空闲空间足以存放临时缓存层中的数据,然后执行步骤c4;
c4、将临时缓存层中的数据写入至回写缓存层,然后执行步骤c5;
c5、判断临时缓存层中的数据是否与预读缓存层中的数据存在交集,若是,则执行步骤c6,否则执行c7;
c6、将临时缓存层中的交集数据写入至预读缓存层,然后执行步骤c7;
c7、清除临时缓存层中表示脏数据的标记,然后执行步骤c8;
c8、丢弃临时缓存层中的数据,然后结束临时缓存层的数据淘汰。
优选地,步骤b2按照预读缓存层、回写缓存层、以及数据源层的优先级顺序逐层查找。
优选地,步骤b2包括:
b21、判断当前的读访问是否在预读缓存层命中,若命中,则执行b23,否则执行步骤b22;
b22、利用预读机制从回写缓存层和数据源层预读当前的读访问对应的数据至预读缓存层,然后执行步骤b23;
b23、从预读缓存层读取当前的读访问对应的数据至临时缓存层,然后执行b3。
优选地,步骤b22包括:
b221、为当前的读访问构造预读请求,然后执行步骤b222;
b222、判断预读缓存层是否存在足够的空闲空间,若是,则执行步骤b224,否则执行步骤b223;
b223、将预读缓存层中的部分数据丢弃,使预读缓存层中的空闲空间足以存放预读请求对应的数据,然后执行步骤b224;
b224、从回写缓存层读取预读请求对应的数据至预读缓存层,然后执行步骤b225;
b225、判断预读请求对应的数据是否在回写缓存层全部命中,若是,则执行步骤b23,否则执行b226;
b226、从数据源层读取未在回写缓存层中命中的剩余数据至预读缓存层,然后执行步骤b23。
优选地,步骤c3淘汰的部分数据为回写缓存层中处于无访问状态时长最长或被访问频率最低的数据。
优选地,步骤b223丢弃的部分数据为预读缓存层中处于无访问状态时长最长或被访问频率最低的数据。
优选地,临时缓存层和预读缓存层设置在数据源读写访问发起方的本地存储介质中,回写缓存层设置在数据源读写访问发起方的本地存储介质或远程存储介质中,数据源层设置在数据源读写访问发起方的远程存储介质中。
优选地,数据源读写访问发起方为无盘工作站中运行的***程序或应用程序,临时缓存层和预读缓存层设置在无盘工作站的内存介质中,回写缓存层设置在无盘工作站的内存介质或服务器的内存介质中,数据源层设置在服务器的硬盘介质中。
如上可见,基于本发明,堆栈式缓存架构中的临时缓存层优先对数据源读写访问发起方的读写访问做出响应,并且,通过临时缓存层与预读缓存层和回写缓存层配合实现的淘汰机制,能够针对被数据源读写访问发起方反复连续访问的数据更快速地做出响应。相比于CPU和硬盘的配置升级,引入临时缓存层以及预读缓存层和回写缓存层等缓存资源所需的成本显然更低,因此,本发明能够以相对低的成本即可提升数据源读写访问发起方对远程数据读写访问的响应速度和性能。
而且,对于数据源读写访问发起方(例如部署于无盘工作站)和数据源层(例如部署于服务器)异地部署的情况,堆栈式存储架构中的缓存资源可以全部或部分地设置于数据源读写访问发起方的本地存储介质中,此时,上述的技术效果更为明显。即,被数据源读写访问发起方反复连续访问的数据能够保留在本地存储介质中以实现对缓存资源的本地访问,因而能够将原本需要对数据源层实施的较慢的远程访问转换为对缓存资源的较快的本地访问。从而,可以减少对数据源层的远程访问量,提升数据源读写访问发起方的数据访问性能。
附图说明
图1为本发明实施例所基于的堆栈式缓存***架构的示意图;
图2为本发明实施例中的访问控制方法的示例性流程示意图;
图3为图2中示出的临时缓存层的数据淘汰的具体流程示意图;
图4为图2按照图3所示的步骤展开后的示意图;
图5为图2中示出的在堆栈式缓存架构中向下查找数据的具体流程示意图;
图6为图5中示出的利用预读机制读取数据的具体流程示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
请先参见图1,在本实施例中,提供了一种堆栈式缓存架构,该堆栈式缓存架构包括临时缓存层101、预读缓存层102、回写缓存层103、以及数据源层200。本实施例所提供的堆栈式缓存架构可以在整体上被数据源读写访问发起方100视为数据源,即,临时缓存层101、预读缓存层102、回写缓存层103、以及数据源层200都可以视为数据源的一部分。
虽然临时缓存层101、预读缓存层102、回写缓存层103、以及数据源层200同作为数据源的一部分,但临时缓存层101可以优先于其他层对数据源读写访问发起方100的读写做出响应。并且,预读缓存层102和回写缓存层103之间既不是单纯的同层并列关系、也不是单纯的层堆叠关系,即,预读缓存层102和回写缓存层103可以认为是以局部堆叠的交错方式布置在临时缓存层101与数据源层200之间。
对于数据源读写访问发起方100和数据源层200异地部署的情况,如图1所示的堆栈式缓存架构中的临时缓存层101和预读缓存层102可以设置在数据源读写访问发起方100的本地存储介质中,数据源层200则可以设置在数据源读写访问发起方100的远程存储介质中。例如,在一个应用实例中,数据源读写访问发起方100位于无盘工作站(即数据源读写访问发起方100为无盘工作站中的***程序或应用程序),此时,临时缓存层101和预读缓存层102可以设置在无盘工作站的内存介质中,而数据源层200则可以设置在服务器的硬盘介质中。
而对于回写缓存层103来说,其优选地设置在数据源读写访问发起方100的本地存储介质中,但作为一种替代方案,其也可以设置在数据源读写访问发起方100的远程存储介质中。例如,仍参照前述的无盘工作站的应用实例,回写缓存层103则既可以设置在无盘工作站的内存介质中、也可以设置在服务器的内存介质中。
基于上述如图1所示的堆栈式缓存架构,本实施例提供了一种对数据源的访问控制方法,该访问控制方法借助本地存储介质中设置的临时缓存层101对数据源读写访问发起方100优先响应的特性、以及临时缓存层101与预读缓存层102和回写缓存层103配合实现的淘汰机制,针对被数据源读写访问发起方100反复连续访问的数据更快速地做出响应。
请参见图2,当数据源读写访问发起方100发起对数据源的写访问时,该访问控制方法被触发执行如下步骤:
a1、判断当前的写访问是否在临时缓存层命中或能够数据合并;
若命中或能够合并,则执行步骤a2;
否则触发对临时缓存层的数据淘汰、并在数据淘汰完成后执行步骤a2。
其中,步骤a1中所述的“命中”,可以是指当前的写访问对应的数据已经存在于临时缓存层中(即,存在于临时缓存层中的数据能够被当前写访问对应的数据所覆盖更新)、并且临时缓存层中的数据被标记为脏数据的情况。若当前的写访问对应的数据已经存在于临时缓存层中、但临时缓存层中的数据未被标记为脏数据,这种情况不应被判断为“命中”,因为这样会导致已经存在于临时缓存层中的非脏数据被标记为脏,这虽然不会影响数据源视图(即堆栈式缓存架构)的数据完整性,但会放大当前的写访问。
另外,步骤a1中所述的“合并”,可以是指当前的写访问在临时缓存层未命中、但当前的写访问所对应的写入数据与临时缓存层中当前存储的数据是彼此连续的数据的情况,此时,意味着当前的写访问所对应的写入数据可以与临时缓存层中当前存储的数据同时存放在临时缓存层中,这样的同时存放即可以看作“合并”。通过合并连续的写入数据,特别是合并连续的小颗粒度写入数据,能显著降低写访问开销并提升性能。
a2、将当前的写访问对应的数据写入临时缓存层、并将写入临时缓存层的数据标记为脏数据,然后结束当前的写访问。
其中,步骤a2的执行可以是在步骤a1之后立即发生,也可以是在步骤a1之后进一步等待临时缓存层的数据淘汰完成再发生。即,步骤a2是写访问必经的过程,但在本实施例中,为了配合临时缓存层的淘汰机制,步骤a2所描述的写访问的必经过程需要在未命中、且不可合并的情况下被延迟执行。
仍参见图2,当数据源读写访问发起方100发起对数据源的读访问时,该访问控制方法被触发执行如下步骤:
b1、判断当前的读访问是否在临时缓存层命中;
若命中,则表示当前的读访问对应的数据已经存在于临时缓存层中,因而执行步骤b3;
否则触发对临时缓存层的数据淘汰、并在数据淘汰完成后执行步骤b2。
b2、在堆栈式缓存架构中向下查找当前的读访问对应的数据,并将查找到的数据读入至临时缓存层,然后执行步骤b3。
b3、从临时缓存层读取当前的读访问对应的数据,然后结束当前的读访问。
其中,步骤b3的执行可以是在步骤b1之后立即发生,也可以是在步骤b1之后进一步等待临时缓存层的数据淘汰完成、并进一步执行步骤b2后再发生。即,步骤b3是读访问必经的过程,但在本实施例中,为了配合临时缓存层的淘汰机制,步骤b3所描述的读访问的必经过程需要在未命中的情况下被延迟执行。而且,步骤b2可以看作是临时缓存层的淘汰机制与读访问的必经过程之间的衔接或过渡。
在如图2所示的上述流程中,无论是写访问和读访问,都可能涉及到对临时缓存层的数据淘汰。该数据淘汰的机制旨在将数据源读写访问发起方100反复连续访问的数据保留在位于堆栈式缓存架构的缓存资源层中,即,使数据源读写访问发起方100反复连续访问的数据优先保存在最先对数据源读写访问发起方100做出响应的临时缓存层101中,次而暂存于预读缓存层102和回写缓存层103中。
请参见图3并结合图4,本实施例中的访问控制方法还包括用于执行临时缓存层的数据淘汰的如下步骤:
c0、判断临时缓存层中是否存储有数据;
若是,则执行步骤c1;
否则,意味着临时缓存层中没有需要淘汰的数据,因而直接结束临时缓存层的数据淘汰。
c1、判断临时缓存层中的数据是否被标记为脏数据;
若是,则执行步骤c2;
否则执行步骤c8。
其中,临时缓存层的数据淘汰过程可以认为从步骤c1正式开始,并且,临时缓存层的数据淘汰过程对于临时缓存层中的数据是否为脏数据进行了区别处理。这是因为:如前文所述,通过写访问被新写入至临时缓存层的数据会被标记为脏数据,这意味着脏数据属于数据源中的新数据,显然,数据源中的新数据属于数据源读写访问发起方在短期内可能反复访问的数据,因此,对于标记为脏数据的新数据,本实施例中的访问控制方法不会直接通过后续步骤(即,下文中描述的步骤c8)将这样的新数据丢弃、也不急于将这样的新数据直接淘汰至最底层的数据源层,而是从先放入回写缓存层、并利用其更新预读缓存层(参见下文描述的步骤c2至步骤c7),以备数据源读写访问发起方在短期内再次访问时使用。
c2、判断回写缓存层是否存在足够的空闲空间;
若是,则意味着回写缓存层目前可以接收临时缓存层中存储的数据,因而执行步骤c4;
否则,意味着回写缓存层目前无法接收临时缓存层中存储的数据,因而执行步骤c3。
c3、将回写缓存层中的部分数据淘汰至数据源层,使回写缓存层中的空闲空间足以存放临时缓存层中的数据,然后执行步骤c4。
其中,步骤c3淘汰的部分数据可以为回写缓存层中处于无访问状态时长最长的数据,或者也可以为回写缓存层中被访问频率最低的数据。
c4、将临时缓存层中的数据写入至回写缓存层,然后执行步骤c5。
c5、判断临时缓存层中的数据是否与预读缓存层中的数据存在交集;
若是,则意味着预读缓存层中的数据不是全部为最新的数据,或者说,对比当前临时缓存层中存储的新数据,预读缓存层中存储有已过时的数据,因而执行步骤c6;
否则执行c7。
c6、将临时缓存层中的交集数据写入至预读缓存层,以实现对预读缓存层的数据更新,然后执行步骤c7。
其中,上述的步骤c3中对数据执行的动作为“淘汰”,而步骤c4和c6中对于数据执行的动作为“写入”。需要说明的是,动作“淘汰”可以是指将数据转移、或迁移,被执行“淘汰”的数据将不再存在于淘汰之前的原始位置,而仅存在于淘汰之后的新位置;与之不同的是,动作“写入”可以是指将数据复制,被执行“写入”的数据既存在于写入之前的原始位置,同样也存在于写入之后的新位置。
c7、清除临时缓存层中表示脏数据的标记,然后执行步骤c8。
c8、丢弃临时缓存层中的数据,然后结束临时缓存层的数据淘汰。
其中,如前文所述,临时缓存层中被标记为脏数据的数据属于数据源中的新数据,从另一个角度看,这样的新数据是需要被保护的、并应当在被复制转储之前保留于临时缓存层中被免于删除,因此,上述流程需要先通过步骤c7取消对新数据(新数据在执行步骤c7之前已被复制到回写缓存层)的保护,然后才允许通过步骤c8执行的丢弃动作实施删除。
此外,基于如图1所示的堆栈式缓存架构,在本实施例中的访问控制方法在执行步骤b2(如前文所述,该步骤可以看作临时缓存层的淘汰机制与读访问的必经过程之间的衔接或过渡)时,可以按照预读缓存层、回写缓存层、以及数据源层的优先级顺序逐层查找数据。
请参见图5,步骤b2所实现的上述逐层查找过程可以具体包括:
b21、在图3和图4中示出的淘汰完成之后,判断当前的读访问是否在预读缓存层命中;
若命中,则表示当前的读访问对应的数据已经存在于预读缓存层中,并相应地执行步骤b23;
否则执行步骤b22。
b22、利用预读机制从回写缓存层和数据源层预读当前的读访问对应的数据至预读缓存层,然后执行步骤b23。
b23、从预读缓存层读取当前的读访问对应的数据至临时缓存层,然后执行作为读访问的必经过程的步骤b3,即,步骤b23连接图2和图4中示出的步骤b3。
请再参见图6,上述利用预读机制的步骤b22可以具体包括:
b221、在判断出当前的读访问在预读缓存层未命中时,为当前的读访问构造预读请求,然后执行步骤b222。
其中,步骤b221中所述的“构造预读请求”,可以是指基于数据源读写访问发起方当前发起的读访问以及在过往发起过的读访问的规律特征,构造一个能涵盖当前的读访问、并且有可能被后续读访问命中(在预读缓存层命中)的读取请求。通过预读,特别是对于连续的小颗粒度数据读访问的情况,能显著降低读访问开销并提升性能。
b222、判断预读缓存层是否存在足够的空闲空间;
若是,则意味着预读缓存层目前可以接收预读请求对应的数据,因而执行步骤b224;
否则,意味着预读缓存层目前无法接收预读请求对应的数据,因而执行步骤b223。
b223、将预读缓存层中的部分数据丢弃,使预读缓存层中的空闲空间足以存放预读请求对应的数据,然后执行步骤b224。
其中,步骤b223丢弃的部分数据可以为预读缓存层中处于无访问状态时长最长的数据,或者也可以为预读缓存层中被访问频率最低的数据。
b224、从回写缓存层读取预读请求对应的数据至预读缓存层,然后执行步骤b225。
b225、判断预读请求对应的数据是否在回写缓存层全部命中;
若是,即预读请求对应的数据能全部从回写缓存层中读取,则执行步骤b23;
否则执行b226。
b226、从数据源层读取未在回写缓存层中命中的剩余数据至预读缓存层,然后执行步骤b23,即,步骤b226连接图5中示出的步骤b23。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (7)
1.一种对数据源的访问控制方法,其特征在于,该访问控制方法基于堆栈式缓存架构实现数据源读写访问发起方对数据源的读写访问,其中,堆栈式缓存架构包括临时缓存层和数据源层、以及位于临时缓存层与数据源层之间的预读缓存层和回写缓存层;
当数据源读写访问发起方发起对数据源的写访问时,该访问控制方法被触发执行如下步骤:
a1、判断当前的写访问是否在临时缓存层命中或能够数据合并,若命中或能够合并,则执行步骤a2,否则触发对临时缓存层的数据淘汰、并在数据淘汰完成后执行步骤a2;
其中,若当前的写访问对应的数据已经存在于临时缓存层中、并且临时缓存层中的数据被标记为脏数据,则确定当前的写访问在临时缓存层命中;
若当前的写访问在临时缓存层未命中、但当前的写访问所对应的写入数据与临时缓存层中当前存储的数据是彼此连续的数据,则确定当前的写访问在临时缓存层能够数据合并;
a2、将当前的写访问对应的数据写入临时缓存层、并将写入临时缓存层的数据标记为脏数据,然后结束当前的写访问;
当数据源读写访问发起方发起对数据源的读访问时,该访问控制方法被触发执行如下步骤:
b1、判断当前的读访问是否在临时缓存层命中,若命中,则执行步骤b3,否则触发对临时缓存层的数据淘汰、并在数据淘汰完成后执行步骤b2;
b2、在堆栈式缓存架构中向下查找当前的读访问对应的数据,并将查找到的数据读入至临时缓存层,然后执行步骤b3;其中,步骤b2按照预读缓存层、回写缓存层、以及数据源层的优先级顺序逐层查找;
b3、从临时缓存层读取当前的读访问对应的数据,然后结束当前的读访问;
该访问控制方法还包括用于执行临时缓存层的数据淘汰的如下步骤:
c0、判断临时缓存层中是否存储有数据,若是,则执行步骤c1,否则结束临时缓存层的数据淘汰;
c1、判断临时缓存层中的数据是否被标记为脏数据,若是,则执行步骤c2,否则执行步骤c8;
c2、判断回写缓存层是否存在足够的空闲空间,若是,则执行步骤c4,否则执行步骤c3;
c3、将回写缓存层中的部分数据淘汰至数据源层,使回写缓存层中的空闲空间足以存放临时缓存层中的数据,然后执行步骤c4;
c4、将临时缓存层中的数据写入至回写缓存层,然后执行步骤c5;
c5、对比当前临时缓存层中存储的新数据,判断预读缓存层中是否存储有已过时的数据,若是,则执行步骤c6,否则执行c7;
c6、利用临时缓存层中的新数据更新预读缓存层中已过时的数据,然后执行步骤c7;
c7、清除临时缓存层中表示脏数据的标记,然后执行步骤c8;
c8、丢弃临时缓存层中的数据,然后结束临时缓存层的数据淘汰。
2.根据权利要求1所述的访问控制方法,其特征在于,步骤b2包括:
b21、判断当前的读访问是否在预读缓存层命中,若命中,则执行b23,否则执行步骤b22;
b22、利用预读机制从回写缓存层和数据源层预读当前的读访问对应的数据至预读缓存层,然后执行步骤b23;
b23、从预读缓存层读取当前的读访问对应的数据至临时缓存层,然后执行b3。
3.根据权利要求2所述的访问控制方法,其特征在于,步骤b22包括:
b221、为当前的读访问构造预读请求,然后执行步骤b222;
b222、判断预读缓存层是否存在足够的空闲空间,若是,则执行步骤b224,否则执行步骤b223;
b223、将预读缓存层中的部分数据丢弃,使预读缓存层中的空闲空间足以存放预读请求对应的数据,然后执行步骤b224;
b224、从回写缓存层读取预读请求对应的数据至预读缓存层,然后执行步骤b225;
b225、判断预读请求对应的数据是否在回写缓存层全部命中,若是,则执行步骤b23,否则执行b226;
b226、从数据源层读取未在回写缓存层中命中的剩余数据至预读缓存层,然后执行步骤b23。
4.根据权利要求1所述的访问控制方法,其特征在于,步骤c3淘汰的部分数据为回写缓存层中处于无访问状态时长最长或被访问频率最低的数据。
5.根据权利要求3所述的访问控制方法,其特征在于,步骤b223丢弃的部分数据为预读缓存层中处于无访问状态时长最长或被访问频率最低的数据。
6.根据权利要求1至5中任一项所述的访问控制方法,其特征在于,临时缓存层和预读缓存层设置在数据源读写访问发起方的本地存储介质中,回写缓存层设置在数据源读写访问发起方的本地存储介质或远程存储介质中,数据源层设置在数据源读写访问发起方的远程存储介质中。
7.根据权利要求6所述的访问控制方法,其特征在于,数据源读写访问发起方为无盘工作站中运行的***程序或应用程序,临时缓存层和预读缓存层设置在无盘工作站的内存介质中,回写缓存层设置在无盘工作站的内存介质或服务器的内存介质中,数据源层设置在服务器的硬盘介质中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710153305.XA CN106991059B (zh) | 2017-03-15 | 2017-03-15 | 对数据源的访问控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710153305.XA CN106991059B (zh) | 2017-03-15 | 2017-03-15 | 对数据源的访问控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106991059A CN106991059A (zh) | 2017-07-28 |
CN106991059B true CN106991059B (zh) | 2019-12-13 |
Family
ID=59411644
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710153305.XA Active CN106991059B (zh) | 2017-03-15 | 2017-03-15 | 对数据源的访问控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106991059B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10423336B2 (en) | 2017-11-28 | 2019-09-24 | International Business Machines Corporation | Fast locate using imitation reads on tape drives |
CN108255417B (zh) * | 2017-11-30 | 2020-11-24 | 平安科技(深圳)有限公司 | 数据访问方法、电子装置及可读存储介质 |
CN109947719B (zh) * | 2019-03-21 | 2022-10-11 | 昆山九华电子设备厂 | 一种提高集群在目录下读取目录项效率的方法 |
CN117234430B (zh) * | 2023-11-13 | 2024-02-23 | 苏州元脑智能科技有限公司 | 一种缓存框架、数据处理方法、装置、设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101794259A (zh) * | 2010-03-26 | 2010-08-04 | 成都市华为赛门铁克科技有限公司 | 数据存储方法和装置 |
CN102012873A (zh) * | 2010-11-24 | 2011-04-13 | 清华大学 | Nand闪存的缓存***及缓存方法 |
CN102945207A (zh) * | 2012-10-26 | 2013-02-27 | 浪潮(北京)电子信息产业有限公司 | 一种块级数据的缓存管理方法及*** |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7890700B2 (en) * | 2008-03-19 | 2011-02-15 | International Business Machines Corporation | Method, system, and computer program product for cross-invalidation handling in a multi-level private cache |
WO2015075674A1 (en) * | 2013-11-21 | 2015-05-28 | Green Cache AB | Systems and methods for direct data access in multi-level cache memory hierarchies |
-
2017
- 2017-03-15 CN CN201710153305.XA patent/CN106991059B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101794259A (zh) * | 2010-03-26 | 2010-08-04 | 成都市华为赛门铁克科技有限公司 | 数据存储方法和装置 |
CN102012873A (zh) * | 2010-11-24 | 2011-04-13 | 清华大学 | Nand闪存的缓存***及缓存方法 |
CN102945207A (zh) * | 2012-10-26 | 2013-02-27 | 浪潮(北京)电子信息产业有限公司 | 一种块级数据的缓存管理方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN106991059A (zh) | 2017-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9690496B2 (en) | Using external memory devices to improve system performance | |
CN106991059B (zh) | 对数据源的访问控制方法 | |
JP4799936B2 (ja) | 条件別スナップショット取得方法及びシステム | |
JP5021677B2 (ja) | デルタページャを使用した状態の管理 | |
US8738850B2 (en) | Flash-aware storage optimized for mobile and embedded DBMS on NAND flash memory | |
EP2478442B1 (en) | Caching data between a database server and a storage system | |
CN108647151A (zh) | 一种全闪***元数据落盘方法、装置、设备及存储介质 | |
US10353636B2 (en) | Write filter with dynamically expandable overlay | |
US9710283B2 (en) | System and method for pre-storing small data files into a page-cache and performing reading and writing to the page cache during booting | |
US8032708B2 (en) | Method and system for caching data in a storgae system | |
CN103076992B (zh) | 一种内存数据缓冲方法及装置 | |
JP4561168B2 (ja) | データ処理システムおよび方法並びにその処理プログラム | |
US8850148B2 (en) | Data copy management for faster reads | |
CN106354851A (zh) | 数据缓存方法及装置 | |
US9201799B2 (en) | Method for disk defrag handling in solid state drive caching environment | |
US20160283152A1 (en) | Resource access control | |
JP4189342B2 (ja) | ストレージ装置、ストレージコントローラ及びライトバックキャッシュ制御方法 | |
JP2015114750A (ja) | 調査用プログラム,情報処理装置及び情報処理方法 | |
US7836248B2 (en) | Methods and systems for managing persistent storage of small data objects | |
US7979638B2 (en) | Method and system for accessing data using an asymmetric cache device | |
US9672222B1 (en) | Write-through buffer cache for write-able file system that utilizes differencing disk to preserve read-only data | |
US8977814B1 (en) | Information lifecycle management for binding content | |
JP2013109404A (ja) | 情報処理装置 | |
JP2010160544A (ja) | キャッシュメモリシステム及びキャッシュメモリの制御方法 | |
KR101404129B1 (ko) | 데이터 저장 시스템 및 데이터 관리 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |