用于在多高速缓存环境中管理高速缓冲存储器的方法和装置的制造方法_3

文档序号:9693221阅读:来源:国知局
[00%]在表1的所示示例中,四个锁定状态中的每一个可转换到后续状态。每个状态可与 两(2)个不同模式相关联,(a)物理1/0(例如,向/从存储设备)在进行中时的待决模式和(b) I/O已完成时的许可模式。
[0027]图6的程序600在方框602处开始,其中,示例性主机文件请求接口 302和示例性主 机总线接口 304确定访问请求是否已被示例性主机202或一个或多个节点(例如,节点216) 接收到。特别地,示例性节点216的示例性访问请求管理器220监视I/O调用的一个或多个实 例,并且当调用发生时,用信号通知示例性远程高速缓存客户端222W经由示例性总线218 而不是与基于网络的文件系统(例如,112、118)相关联的一个或多个I/O路径来发送调用请 求。类似地,示例性主机202的示例性访问请求管理器204监视I/O调用的一个或多个实例, 并且当调用发生时,用信号通知示例性委托管理器206。在缺少一个或多个访问请求(例如, (一个或多个)1/〇调用)的情况下,图6的程序600等待请求的发生(方框602)。然而,响应于 访问请求(方框602),示例性主机高速缓存管理器306或示例性远程高速缓存管理器308识 别哪个(些)高速缓存设备与请求相关联(方框604)。虽然图6的所示示例包括监视与访问请 求相关联的情况的循环(方框602),但本文公开的示例性方法、装置、系统和/或制品不执行 可阻止一个或多个附加和/或替换线程独立地执行的阻断操作。例如,在图6的示例性程序 600的第一迭代的情况下,一个或多个附加线程可产生而在示例性程序600的其余部分执行 的同时继续监视访问请求(方框602)。换言之,本文公开的程序的一个或多个示例可包括循 环,但是此类循环可在缺少一个或多个阻断操作的情况下发生。
[0028] 为了阻止对高速缓存的当前锁定部分的冲突访问(例如,来自节点高速缓存224的 读请求和主机高速缓存208上的高速缓存的相应专属字节范围),示例性主机高速缓存管理 器306和远程高速缓存管理器308检查相应(一个或多个)锁定状态(方框606)。与示例性主 机配置200的所有高速缓存设备相关联的锁定状态可W符合表全局可访问表格格式加 W存储。如果与接收到的访问请求相关联的高速缓存字节范围与当前字节范围描述符冲突 (方框608),则该请求被排队且控制返回到方框602W等待访问请求的另一实例(例如,用于 (一个或多个)读/写操作的调用)。
[0029] -般而言,在如由字节范围描述符识别的高速缓存设备的一部分冲突(例如,被锁 定)的情况下,该相同高速缓存设备的其他部分可在没有冲突的情况下操作。在与访问请求 相关联的字节范围描述符不冲突(例如,被允许)的情况下(方框608),示例性锁定管理器 310确定该访问请求是否与读(共享)或另一类型的转换(例如,写(专属)调用)相关联(方框 610)。读类型访问请求继续前进至方框612,而其他类型访问请求继续前进至方框614,下面 更详细地讨论其中的每一个。
[0030] 图7A图示出与读类型访问请求相关联的附加细节(方框612),包括从状态空到状 态共享的转换。如上所述,读类型访问请求的示例性执行(方框612)可独立于图6的示例性 程序600发生。此类独立执行(例如,经由一个或多个附加线程)促进(一个或多个)异步(非 阻断)锁定管理操作。在图7A的所示示例中,示例性锁定管理器310将与由访问请求所识别 的字节范围描述符相关联的锁定从状态空移动至状态共享待决(SHARE-PENDING)(方框 702)。由示例性锁定管理器310设定的共享待决状态是经由缺少总线通信的(一个或多个) 网络层应用于请求节点高速缓存(例如,节点216的节点高速缓存224)和主机高速缓存(例 如,主机202的主机高速缓存208)的相应(一个或多个)共享部分两者的中间状态。可发生且 W相同字节范围描述符为目标的(一个或多个)任何后续请求将在共享待决状态对于节点 高速缓存224和主机高速缓存208两者而言皆为真的时刻期间被拒绝对与字节范围描述符 相关联的高速缓存的访问。当诸如示例性节点高速缓存224之类的请求节点进行关于字节 范围描述符的请求时,示例性锁定管理器310经由非网络总线(例如,PCI-E总线、总线104) 而隔离主机高速缓存208的关联部分,并且两者都与相同高速缓存建立锁定状态(例如,共 享待决)。因此,在示例性主机配置200包括附加节点(例如,第二节点、第Ξ节点、第四节点 等)的情况下,每个节点可与在物理上和在逻辑上分离的主机高速缓存208的各部分相关 联。主机高速缓存208的此类分离部分可W在与各节点高速缓存字节范围同步的锁定状态 下操作,使得每个分离节点可W运行其中相应过程数据未被混合的独立过程。读入数据被 置于主机高速缓存208的关联共享高速缓冲存储器中(分派)(方框704),并且示例性锁定管 理器310确定I/O操作是否完成(方框706)。如果没有,则示例性锁定管理器310调度10完成 工作实体/事件(方框707),其可等待并处理分派的读操作。如上所述,此类(一个或多个)示 例性I/O完成工作事件(方框707)并不阻断和/或W其他方式禁止在本文公开的示例性图中 可执行的一个或多个替换线程。在示例性I/O完成工作事件完成时(方框707)或者在主机1/ 0完成的情况下(方框706),示例性委托管理器206确认一个或多个网络被绕过和/或W其他 方式被阻止有高速缓存通信能力,并且主机高速缓存208的内容被经由示例性总线218拷贝 到请求节点的字节范围描述符部分(例如,节点216的节点高速缓存224)(方框708)。在一些 示例中,示例性委托管理器206可周期性地、基于调度、非周期性地和/或响应于示例性主机 202与(一个或多个)示例性节点216之间的任何(一个或多个)通信尝试而确认一个或多个 网络被绕过和/或W其他方式阻止有高速缓存通信能力。
[0031] 为了阻止请求节点(例如,节点216)过早地(例如,在所有高速缓存内容被拷贝到 示例性节点高速缓存224之前)尝试在与字节范围描述符相关联的高速缓存上执行(一个或 多个)操作,示例性锁定管理器310调用给节点216的总线通知消息W告知其高速缓存内容 可用(方框710)。换言之,总线通知消息警告请求节点读操作完成且内容在节点高速缓存 224中可用,从而减少和/或W其他方式消除将W其他方式在相对更加带宽受限的(一个或 多个)基于网络的文件系统和/或(一个或多个)仿真器上发生的附加通信带宽。示例性锁定 管理器310用共享许可(SHARE-GRANTED)状态来替换中间共享待决状态(方框712)并调用共 享后管理(方框714)。示例性共享后管理可响应于一个或多个附加和/或替换线程产生实例 而发生,W保持本文公开的示例性方法、装置、系统和/或制品的异步操作。
[0032] 如上文所讨论的,处于共享状态的锁定可转换到一个或多个后续锁定状态。图7B 图示出与共享后管理相关联的附加细节(方框714)。在图7B的所示示例中,可与事件处 理程序类似的方式操作的示例性锁定管理器310调用示例性远程高速缓存管理器308和/或 示例性主机高速缓存管理器306W便当(a)不存在其他请求读节点时(方框750),(b)请求节 点释放该锁定时(方框752) W及(C)生存时间(TTL)阔值或计时器已到期时(方框754)确定 是否使该锁定转换到可用状态。在发生上述Ξ个条件的情况下,示例性远程高速缓存管理 器308分配从共享状态到可用状态的锁定(方框756)。换言之,从共享状态转换到可用状态 阻止读类型锁定状态的完全释放,运减少了在完全锁定释放(例如,空状态)之后重新获取 读锁定状态将需要的锁定管理资源消耗。如下面更详细地描述的,可发生(一个或多个)附 加条件W进一步转换到空状态。在原始请求者(例如,负责访问请求的节点(方框602))并未 将锁定释放(方框752)的情况下,高速缓存管理器306、30如角定是否存在与写相关联的其他 请求者(方框753)。如果没有,则控制继续前进至方框754W检查TTL阔值/计时器的到期。换 言之,远程高速缓存管理器308永久地阻止对锁定的控制。另一方面,如果其他请求者与写 相关联(方框753),则控制前进至图8A的示例性程序。
[0033] 在发生用于读的其他请求者的情况下(方框750),示例性远程高速缓存管理器308 保持用于与字节范围描述符相关联的高速缓存部分上的锁定的共享状态(方框760)。换言 之,即使原始请求者尚未将锁定释放(方框752),用W读的一个或多个尝试也可被许可。主 机高速缓存208的共享部分的内容被经由示例性总线218拷贝到请求节点(方框762),并且 在锁定表格中识别新的锁定所有者(方框764),诸如上述示例性表1。在一些示例中,在经由 示例性总线218拷贝到请求节点之前,委托管理器206确认一个或多个基于网络的系统被从 操作绕过和/或W其他方式正在处理通信。同样地,拷贝可比将W其他方式使用NBFS (例如,112、118)和/或(一个或多个)仿真层(例如,114、120)发生的相对更快的方式发生。 如上所述,为了阻止请求节点在完成读操作之前访问和/或W其他方式尝试使用高速缓存 内容,控制前进至方框710,其中,示例性锁定管理器310调用给节点216的总线通知消息W 告知其高速缓存内容可用。
[0034] 返回方框756,在锁定状态转换到可用之后,发起第二TTL阔值或计时器(方框 766)。示例性第二TTL计时器允许在其中可能发生附加读请求的有限时间量内保持可用状 态。一般而言,可用锁定状态是被调用w改善与锁定获取和释放操作相关联的计算效率。从 空状态到共享状态的用于给定字节范围描述符的锁定的获取比从在先共享状态保持共享 状态消耗相对更大量的系统资源。在一些情况下,节点可W在相对短的时
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1