一种远端代理带目录的缓存一致性处理方法与系统的制作方法

文档序号:9326815阅读:311来源:国知局
一种远端代理带目录的缓存一致性处理方法与系统的制作方法
【技术领域】
[0001]本发明涉及计算机体系结构领域,特别是涉及一种远端代理带目录的缓存一致性处理方法与系统。
【背景技术】
[0002]基于一致性互联芯片的多路服务器系统,在实现过程中需要保持数据的cache缓存一致性。在目前cache —致性协议实现的过程中,本地代理和远端代理分别作为代理远端请求和本地请求的主体,是一致性芯片协议处理的两个主要部分。
[0003]为了减少中间过程中的侦听报文,加快系统的响应速度,远端代理和本地代理都可以采用“目录”的方式记录Cache Line缓存行的数据状态。然而,随着多路服务器系统,管理的物理存储资源越来越大,采用“目录”方式的存储资源开销也越来越大,尤其是多路系统的远端代理一侧。均衡考虑,在实现的过程中,往往采用远端代理无“目录”,本地代理采用全“目录”的方式,缺少一种开销较小的远端代理带目录的缓存一致性处理方法。

【发明内容】

[0004]有鉴于此,本发明的主要目的在于提供一种远端代理带目录的缓存一致性处理方法与系统,使远端代理带目录且有较小开销。
[0005]为实现上述目的,本发明提供了一种远端代理带目录的缓存一致性处理方法,包括:
[0006]步骤A:令远端代理获取本地请求源发起的本地请求并进行处理;
[0007]步骤B:当收到来自所述远端代理的响应报文和数据时,将所述响应报文和数据返回所述本地请求源,并将对应的目录和数据分别写入目录缓存与数据缓存;
[0008]步骤C:判断是否有与所述远端代理的地址相同的其他目标请求,如果有则依次处理所述目标请求。
[0009]优选地,与所述远端代理的地址相同的其他目标请求包括:
[0010]本地请求源发向所述远端代理的地址的本地请求与来自所述远端代理的地址的远端侦听请求。
[0011 ] 优选地,处理所述目标请求包括:
[0012]判断所述目标请求的类型;
[0013]当所述目标请求的类型为本地请求时,根据该本地请求与所述目录缓存的目录状态信息的优先级别处理所述目标请求;
[0014]当所述目标请求的类型为远端侦听请求时,根据该远端侦听请求与所述目录缓存的目录状态信息的优先级别处理所述目标请求。
[0015]优选地,所述状态信息包括修改态、独占态、共享态和无效态;
[0016]所述修改态与独占态的优先级别相同,且高于所述共享态,所述共享态的优先级别高于所述无效态。
[0017]优选地,当所述目标请求的类型为本地请求时,根据该本地请求与所述目录缓存的目录状态信息的优先级别处理所述目标请求:
[0018]判断所述目录缓存的目录的优先级别是否高于或等同于该本地请求的优先级别;
[0019]如果所述目录缓存的目录的优先级别高于或等同于该本地请求的优先级别时,保持远端地址数据在本地的状态信息不变,发起本地侦听,当所述本地侦听的响应返回时修改本地请求源对应的目录信息;
[0020]判断同地址请求队列为空且缓存资源需要释放的条件是否满足,如果不满足则返回所述步骤C,如果满足则判断目录状态信息是否为修改态,当所述目录状态信息非修改态时结束流程,当所述目录状态信息为修改态时,判断是否仅有一个请求源有副本时,如果是则结束流程,否则发起共享态写回请求,收到写回完成信息时释放对应资源并结束流程;
[0021]如果所述目录缓存的目录的优先级别低于该本地请求的优先级别时,发起本地请求的失效侦听,失效本地请求源内数据,当所述失效侦听响应返回时向所述远端地址发起写回请求,收到写回请求完成信息时,向远端发起当前本地请求。
[0022]优选地,当所述目标请求的类型为远端侦听请求时,根据该远端侦听请求与所述目录缓存的目录状态信息的优先级别处理所述目标请求包括:
[0023]判断所述目录缓存的目录的状态信息与该远端侦听请求的状态信息是否同为共享态,如果是则向远端返回共享态响应报文,并返回步骤C,否则发起与该远端侦听请求相同的本地侦听请求或失效侦听请求,当当所述本地侦听请求或失效侦听请求响应返回时,根据返回的响应更新或失效本地目录缓存和数据缓存,并返回步骤C。
[0024]本发明还提供了一种远端代理带目录的缓存一致性处理系统,包括:
[0025]初始处理模块,用于令远端代理获取本地请求源发起的本地请求并进行处理;
[0026]响应模块,用于当收到来自所述远端代理的响应报文和数据时,将所述响应报文和数据返回所述本地请求源,并将对应的目录和数据分别写入目录缓存与数据缓存;
[0027]同地址处理模块,用于判断是否有与所述远端代理的地址相同的其他目标请求,如果有则依次处理所述目标请求。
[0028]优选地,与所述远端代理的地址相同的其他目标请求包括:
[0029]本地请求源发向所述远端代理的地址的本地请求与来自所述远端代理的地址的远端侦听请求。
[0030]应用本发明提供的一种远端代理带目录的缓存一致性处理方法与系统,令远端代理获取本地请求源发起的本地请求并进行处理,当收到来自所述远端代理的响应报文和数据时,将所述响应报文和数据返回所述本地请求源,并将对应的目录和数据分别写入目录缓存与数据缓存,判断是否有与所述远端代理的地址相同的其他目标请求,如果有则依次处理所述目标请求,从本地请求发送到远端代理占据一项目录和数据缓存开始,至该笔请求的响应报文返回,在远端代理内部缓存资源失效为止的时间内,若有其它满足一定条件下同地址请求或侦听报文进入远端代理,该笔请求可以在远端代理内部直接处理,减少报文流转快速得到响应,无需跨节点操作,减小开销。
【附图说明】
[0031]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0032]图1为本发明一种远端代理带目录的缓存一致性处理方法实施例一的流程图;
[0033]图2为本发明一种远端代理带目录的缓存一致性处理方法实施例二的流程图;
[0034]图3为本发明实施例二的缓存结构示意图;
[0035]图4为本发明一种远端代理带目录的缓存一致性处理系统实施例三的结构示意图。
【具体实施方式】
[0036]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0037]实施例一:
[0038]本发明提供了一种远端代理带目录的缓存一致性处理方法,图1示出了本发明远端代理带目录的缓存一致性处理方法的实施例一流程图,包括:
[0039]步骤SlOl:令远端代理获取本地请求源发起的本地请求并进行处理;
[0040]本地请求报文处理,远端代理获取本地请求并处理。
[0041]步骤S102:当收到来自所述远端代理的响应报文和数据时,将所述响应报文和数据返回所述本地请求源,并将对应的目录和数据分别写入目录缓存与数据缓存;
[0042]将远端代理的响应报文和对应数据返回请求源,将对应的目录和数据分别写入目录缓存和数据缓存。
[0043]步骤S103:判断是否有与所述远端代理的地址相同的其他目标请求,如果有则依次处理所述目标请求。
[0044]目标请求的类型包括本地请求源发向所述远端代理的地址的本地请求与来自所述远端代理的地址的远端侦听请求,判断是否有同地址的本地请求或远端侦听请求,如果有则按这些请求或侦听报文进入流水线的顺序,写入对应的排队序列并依次处理。
[0045]应用本实施例提供的一种远端代理带目录的缓存一致性处理方法,令远端代理获取本地请求源发起的本地请求并进行处理,当收到来自所述远端代理的响应报文和数据时,将所述响应报文和数据返回所述本地请求源,并将对应的目录和数据分别写入目录缓存与数据缓存,判断是否有与所述远端代理的地址相同的其他目标请求,如果有则依次处理所述目标请求,从本地请求发送到远端代理占据一项目录和数据缓存开始,至该笔请求的响应报文返回,在远端代理内部缓存资源失效为止的时间内,若有其它满足一定条件下同地址请求或侦听报文进入远端代理,该笔请求可以在远端代理内部直接处理,减少报文流转快速得到响应,无需跨节点操作,减小开销。
[0046]实施例二:
[0047]图2示出了本发明远端代理带目录的缓存一致性处理方法实施例二,具体步骤如下:
[0048]①调度开始,远端代理正常处理本地请求源发起的本地请求,等待直到该笔请求的响应和数据返回远端代理为止,将该远端响应报文和对应数据返回请求源,并将该目录和数据信息,写入目录缓存和数据缓存。在此时间内,如果有其它同地址的本地请求或远端侦听报文进入远端代理,可以将这些请求或侦听报文按进入流水线的顺序,写入对应的排队序列。
[0049]②判断该远端地址对应的排队序列,是否为空。如果为空,则调度流程结束,对应缓存资源可以被其它请求占用,否则需要判断排队序列内待处理的报文是本地请求报文,还是远端侦听报文,并判断其所要求的数据状态与目录缓存内的记录的目录信息状态进行优先级对比。其中,两者之间关系情况引入的四种子情况如下述流程3、4、5、6所述。
[0050]③若该报文为本地请求报文,且目录缓存内的目录信息需要降级或保持,即当前目录缓存内的目录级别高于本地请求报文所要求的目录级别,或与之平级。则目录缓存内的数据无需更新,目录无需修改或和只进行平级修改,并向本地请求源发起侦听报文,待侦听响应返回后,将缓存内的母本数据
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1