CN106991059A - 对数据源的访问控制方法 - Google Patents

对数据源的访问控制方法 Download PDF

Info

Publication number
CN106991059A
CN106991059A CN201710153305.XA CN201710153305A CN106991059A CN 106991059 A CN106991059 A CN 106991059A CN 201710153305 A CN201710153305 A CN 201710153305A CN 106991059 A CN106991059 A CN 106991059A
Authority
CN
China
Prior art keywords
data
layer
read
write
access
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.)
Granted
Application number
CN201710153305.XA
Other languages
English (en)
Other versions
CN106991059B (zh
Inventor
邝耀华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HUBEI SHENGTIAN NETWORK TECHNOLOGY Co Ltd
Original Assignee
HUBEI SHENGTIAN NETWORK TECHNOLOGY Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by HUBEI SHENGTIAN NETWORK TECHNOLOGY Co Ltd filed Critical HUBEI SHENGTIAN NETWORK TECHNOLOGY Co Ltd
Priority to CN201710153305.XA priority Critical patent/CN106991059B/zh
Publication of CN106991059A publication Critical patent/CN106991059A/zh
Application granted granted Critical
Publication of CN106991059B publication Critical patent/CN106991059B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches 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 (8)

1.一种对数据源的访问控制方法,其特征在于,该访问控制方法基于堆栈式缓存架构实现数据源读写访问发起方对数据源的读写访问,其中,堆栈式缓存架构包括临时缓存层和数据源层、以及位于临时缓存层与数据源层之间的预读缓存层和回写缓存层;
当数据源读写访问发起方发起对数据源的写访问时,该访问控制方法被触发执行如下步骤:
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、丢弃临时缓存层中的数据,然后结束临时缓存层的数据淘汰。
2.根据权利要求1所述的访问控制方法,其特征在于,步骤b2按照预读缓存层、回写缓存层、以及数据源层的优先级顺序逐层查找。
3.根据权利要求2所述的访问控制方法,其特征在于,步骤b2包括:
b21、判断当前的读访问是否在预读缓存层命中,若命中,则执行b23,否则执行步骤b22;
b22、利用预读机制从回写缓存层和数据源层预读当前的读访问对应的数据至预读缓存层,然后执行步骤b23;
b23、从预读缓存层读取当前的读访问对应的数据至临时缓存层,然后执行b3。
4.根据权利要求3所述的访问控制方法,其特征在于,步骤b22包括:
b221、为当前的读访问构造预读请求,然后执行步骤b222;
b222、判断预读缓存层是否存在足够的空闲空间,若是,则执行步骤b224,否则执行步骤b223;
b223、将预读缓存层中的部分数据丢弃,使预读缓存层中的空闲空间足以存放预读请求对应的数据,然后执行步骤b224;
b224、从回写缓存层读取预读请求对应的数据至预读缓存层,然后执行步骤b225;
b225、判断预读请求对应的数据是否在回写缓存层全部命中,若是,则执行步骤b23,否则执行b226;
b226、从数据源层读取未在回写缓存层中命中的剩余数据至预读缓存层,然后执行步骤b23。
5.根据权利要求1所述的访问控制方法,其特征在于,步骤c3淘汰的部分数据为回写缓存层中处于无访问状态时长最长或被访问频率最低的数据。
6.根据权利要求4所述的访问控制方法,其特征在于,步骤b223丢弃的部分数据为预读缓存层中处于无访问状态时长最长或被访问频率最低的数据。
7.根据权利要求1至6中任一项所述的访问控制方法,其特征在于,临时缓存层和预读缓存层设置在数据源读写访问发起方的本地存储介质中,回写缓存层设置在数据源读写访问发起方的本地存储介质或远程存储介质中,数据源层设置在数据源读写访问发起方的远程存储介质中。
8.根据权利要求7所述的访问控制方法,其特征在于,数据源读写访问发起方为无盘工作站中运行的系统程序或应用程序,临时缓存层和预读缓存层设置在无盘工作站的内存介质中,回写缓存层设置在无盘工作站的内存介质或服务器的内存介质中,数据源层设置在服务器的硬盘介质中。
CN201710153305.XA 2017-03-15 2017-03-15 对数据源的访问控制方法 Active CN106991059B (zh)

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 true CN106991059A (zh) 2017-07-28
CN106991059B 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)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108255417A (zh) * 2017-11-30 2018-07-06 平安科技(深圳)有限公司 数据访问方法、电子装置及可读存储介质
WO2019106457A1 (en) * 2017-11-28 2019-06-06 International Business Machines Corporation Fast locate using imitation reads on tape drives
CN109947719A (zh) * 2019-03-21 2019-06-28 昆山九华电子设备厂 一种提高集群在目录下读取目录项效率的方法
CN117234430A (zh) * 2023-11-13 2023-12-15 苏州元脑智能科技有限公司 一种缓存框架、数据处理方法、装置、设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090240889A1 (en) * 2008-03-19 2009-09-24 International Business Machines Corporation Method, system, and computer program product for cross-invalidation handling in a multi-level private cache
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 浪潮(北京)电子信息产业有限公司 一种块级数据的缓存管理方法及系统
US20150143046A1 (en) * 2013-11-21 2015-05-21 Green Cache AB Systems and methods for reducing first level cache energy by eliminating cache address tags

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090240889A1 (en) * 2008-03-19 2009-09-24 International Business Machines Corporation Method, system, and computer program product for cross-invalidation handling in a multi-level private cache
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 浪潮(北京)电子信息产业有限公司 一种块级数据的缓存管理方法及系统
US20150143046A1 (en) * 2013-11-21 2015-05-21 Green Cache AB Systems and methods for reducing first level cache energy by eliminating cache address tags

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11099738B2 (en) 2017-11-28 2021-08-24 International Business Machines Corporation Fast locate using imitation reads on tape drives
WO2019106457A1 (en) * 2017-11-28 2019-06-06 International Business Machines Corporation Fast locate using imitation reads on tape drives
US10423336B2 (en) 2017-11-28 2019-09-24 International Business Machines Corporation Fast locate using imitation reads on tape drives
GB2581727A (en) * 2017-11-28 2020-08-26 Ibm Fast locate using imitation reads on tape drives
US11099737B2 (en) 2017-11-28 2021-08-24 International Business Machines Corporation Fast locate using imitation reads on tape drives
US11106364B2 (en) 2017-11-28 2021-08-31 International Business Machines Corporation Fast locate using imitation reads on tape drives
GB2581727B (en) * 2017-11-28 2022-05-04 Ibm Fast locate using imitation reads on tape drives
CN108255417B (zh) * 2017-11-30 2020-11-24 平安科技(深圳)有限公司 数据访问方法、电子装置及可读存储介质
CN108255417A (zh) * 2017-11-30 2018-07-06 平安科技(深圳)有限公司 数据访问方法、电子装置及可读存储介质
CN109947719A (zh) * 2019-03-21 2019-06-28 昆山九华电子设备厂 一种提高集群在目录下读取目录项效率的方法
CN109947719B (zh) * 2019-03-21 2022-10-11 昆山九华电子设备厂 一种提高集群在目录下读取目录项效率的方法
CN117234430A (zh) * 2023-11-13 2023-12-15 苏州元脑智能科技有限公司 一种缓存框架、数据处理方法、装置、设备和存储介质
CN117234430B (zh) * 2023-11-13 2024-02-23 苏州元脑智能科技有限公司 一种缓存框架、数据处理方法、装置、设备和存储介质

Also Published As

Publication number Publication date
CN106991059B (zh) 2019-12-13

Similar Documents

Publication Publication Date Title
Zhou et al. Spitfire: A three-tier buffer manager for volatile and non-volatile memory
CN105094686B (zh) 数据缓存方法、缓存和计算机系统
CN106991059A (zh) 对数据源的访问控制方法
US20080271130A1 (en) Minimizing client-side inconsistencies in a distributed virtual file system
US10838622B2 (en) Method and apparatus for improving storage performance of container
CN103076992B (zh) 一种内存数据缓冲方法及装置
US9851919B2 (en) Method for data placement in a memory based file system
CN104063330B (zh) 数据预取方法及装置
US20060206538A1 (en) System for performing log writes in a database management system
CN108647151A (zh) 一种全闪系统元数据落盘方法、装置、设备及存储介质
CN108459826A (zh) 一种处理io请求的方法及装置
CN105938458B (zh) 软件定义的异构混合内存管理方法
WO2018040167A1 (zh) 数据缓存方法及装置
JPS5873085A (ja) 記憶階層制御方法
CN109446114A (zh) 一种空间数据缓存方法、装置和存储介质
US20100169289A1 (en) Two Phase Commit With Grid Elements
CN108920387A (zh) 降低读延迟的方法、装置、计算机设备及存储介质
JP2008544422A (ja) メモリページ管理
CN106354805A (zh) 一种分布式存储系统NoSQL搜索缓存的优化方法和系统
US20130290636A1 (en) Managing memory
CN103383666B (zh) 改善缓存预取数据局部性的方法和系统及缓存访问方法
WO2020211570A1 (zh) 缓存处理方法、装置、设备及计算机可读存储介质
CN108153682A (zh) 一种利用闪存内部并行性进行闪存转换层地址映射的方法
CN110147345A (zh) 一种基于rdma的键值存储系统及其工作方法
CN106777085A (zh) 一种数据处理方法、装置及数据查询系统

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