一种目录读取的方法、装置及系统的制作方法

文档序号:10552840阅读:164来源:国知局
一种目录读取的方法、装置及系统的制作方法
【专利摘要】本发明提供了一种目录读取的方法、装置及系统,该方法包括:接收对目录缓存进行读取的第一请求信息;确定所述第一请求信息所要读取的第一目录;判断是否存在至少一个正在执行的第二请求信息,其中所述第二请求信息所要读取的第二目录与所述第一目录位于同一个缓存块上;如果是,将所述第一请求信息缓存到预设的缓存区内,执行所述第二请求信息获取到包括所述第一目录及所述第二目录的第二缓存块后,根据所述第二缓存块及所述缓存区内的请求信息,将包括所述第一目录及所述第二目录在内的至少两个目录发送给对应的请求信息发送端。本方案能够减小读目录操作的延迟。
【专利说明】
一种目录读取的方法、装置及系统
技术领域
[0001]本发明涉及通信技术领域,特别涉及一种目录读取的方法、装置及系统。
【背景技术】
[0002]随着业务量及业务复杂程度的增加,用户对服务器性能的要求也越来越高,为了保证用户的业务得到正常的运行,一些服务器包括有多个处理器节点。在包括多个处理器节点的服务器中,每个处理器节点包括至少一个CPU,每个CPU配备有一定的内存,每个处理器节点还包括至少一个节点控制器Ne,不同处理器节点中的CPU通过节点控制器NC相互连接,实现相互访问对方内存的目的。为了提高读取内存中数据的速度,每一个内存中缓存有对应于该内存中各个数据的至少两个目录缓存,在对内存中的数据进行读取时,通过读取目录缓存获取所需数据的存储位置,每次对内存中的目录缓存进行读取时读取至少两条目录。
[0003]目前,针对于任意一个处理器节点,当其他处理器节点中的CPU对该处理器节点内存中的目录缓存进行读取时,每一次读目录请求对应一次目录缓存的读取。
[0004]针对于现有技术对内存中目录缓存进行读取的方法,每一次读目录请求都需要对内存中的目录缓存进行一次读取,当多个处理器节点中的多个CHJ对同一个内存同时发送读目录请求时,增加对内存总线带宽的占用,造成读目录操作的延迟较大。

【发明内容】

[0005]本发明实施例提供了一种目录读取的方法、装置及系统,能够减小读目录操作的延迟。
[0006]本发明实施例提供了一种目录读取的方法,包括:
[0007]接收对目录缓存进行读取的第一请求信息;
[0008]确定所述第一请求信息所要读取的第一目录;
[0009]判断是否存在至少一个正在执行的第二请求信息,其中所述第二请求信息所要读取的第二目录与所述第一目录位于同一个缓存块上;
[0010]如果是,将所述第一请求信息缓存到预设的缓存区内,执行所述第二请求信息获取到包括所述第一目录及所述第二目录的第二缓存块后,根据所述第二缓存块及所述缓存区内的请求信息,将包括所述第一目录及所述第二目录在内的至少两个目录发送给对应的请求信息发送端。
[0011 ]优选地,所述根据所述第二缓存块及所述缓存区内的请求信息,将包括所述第一目录及所述第二目录在内的至少两个目录发送给对应的请求信息发送端包括:
[0012]从所述第二缓存块中获取所述第二目录,将所述第二目录发送给所述第二请求信息对应的请求信息发送端;
[0013]针对于所述缓存区内的每一个请求信息,判断该请求信息所要读取的目录是否在所述第二缓存块内,如果是,将该请求信息所要读取的目录发送给该请求信息对应的请求信息发送端。
[0014]优选地,如果不存在正在执行的所述第二请求信息,则直接执行所述第一请求信息,从所述目录缓存中获取包括所述第一目录的第一缓存块,根据所述第一缓存块及所述缓存区内的请求信息,将包括所述第一目录在内的至少一个目录发送给对应的请求信息发送端。
[0015]优选地,所述根据所述第一缓存块及所述缓存区内的请求信息,将包括所述第一目录在内的至少一个目录发送给对应的请求信息发送端包括:
[0016]从所述第一缓存块中获取所述第一目录,将所述第一目录发送给所述第一请求信息对应的请求信息发送端;
[0017]针对于所述缓存区内的每一个请求信息,判断该请求信息所要读取的目录是否在所述第一缓存块内,如果是,将该请求信息所要读取的目录发送给该请求信息对应的请求信息发送端。
[0018]优选地,针对于所述缓存区内的每一个请求信息,将该请求信息所要读取的目录发送给该请求信息对应的请求信息发送端后,将该请求信息从所述缓存区中删除。
[0019]本发明实施例还提供了一种目录读取的装置,包括:接收单元、确定单元、判断单元及执行单元;
[0020]所述接收单元,用于接收对目录缓存进行读取的第一请求信息;
[0021 ]所述确定单元,用于确定所述接收单元接收到的第一请求信息所要读取的第一目录;
[0022]所述判断单元,用于判断是否存在至少一个正在执行的第二请求信息,其中所述第二请求信息所要读取的第二目录与所述确定单元确定出的第一目录位于同一个缓存块上;
[0023]所述执行单元,用于根据所述判断单元的判断结果,如果是,将所述第一请求信息缓存到预设的缓存区内,执行所述第二请求信息获取到包括所述第一目录及所述第二目录的第二缓存块后,根据所述第二缓存块及所述缓存区内的请求信息,将包括所述第一目录及所述第二目录在内的至少两个目录发送给对应的请求信息发送端。
[0024]优选地,所述执行单元包括:发送子单元及判断子单元;
[0025]所述发送子单元,用于从所述第二缓存块中获取所述第二目录,将所述第二目录发送给所述第二请求信息对应的请求信息发送端;
[0026]所述判断子单元,用于针对于所述缓存区内的每一个请求信息,判断该请求信息所要读取的目录是否在所述第二缓存块内;
[0027]所述发送子单元,进一步用于根据所述判断子单元的判断结果,如果是,将该请求信息所要读取的目录发送给该请求信息对应的请求信息发送端。
[0028]优选地,所述执行单元,进一步用于根据所述判断单元的判断结果,如果否,直接执行所述第一请求信息,从所述目录缓存中获取包括所述第一目录的第一缓存块,根据所述第一缓存块及所述缓存区内的请求信息,将包括所述第一目录在内的至少一个目录发送给对应的请求信息发送端。
[0029]优选地,所述执行单元包括:发送子单元及判断子单元;
[0030]所述发送子单元,用于从所述第一缓存块中获取所述第一目录,将所述第一目录发送给所述第一请求信息对应的请求信息发送端;
[0031 ]所述判断子单元,用于针对于所述缓存区内的每一个请求信息,判断该请求信息所要读取的目录是否在所述第一缓存块内;
[0032]所述发送子单元,进一步用于根据所述判断子单元的判断结果,如果是,将该请求信息所要读取的目录发送给该请求信息对应的请求信息发送端。
[0033]本发明实施例还提供了一种目录读取的系统,包括:请求信息响应端、至少一个请求信息发送端及本发明实施例提供的任意一种目录读取的装置;
[0034]所述请求信息响应端,用于存储所述目录缓存;
[0035]所述请求信息发送端,用于向所述目录读取的装置中的接收单元发送请求信息,并接收所述目录读取的装置中的执行单元发送的目录。
[0036]本发明实施例提供了一种目录读取的方法、装置及系统,由于以缓存块的形式从目录缓存读取目录,每个缓存块包括至少两条目录,如果新接收到的第一请求信息所要读取的第一目录与当前正在执行的第二请求信息所要获取的第二目录在同一个缓存块上,执行第二请求信息读取到的第二缓存块上已经包括了第一目录,无需再次执行第一请求信息以读取第一目录,通过一次对目录缓存进行读取获取多个请求信息所要读取的目录,减小了对目录缓存进行读取时的带宽占用,从而减小读目录操作的延迟。
【附图说明】
[0037]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0038]图1是本发明一个实施例提供的一种目录读取的方法流程图;
[0039]图2是本发明一个实施例提供的一种对请求信息进行处理的方法流程图;
[0040]图3是本发明一个实施例提供的一种对缓存块进行处理的方法流程图;
[0041 ]图4是本发明一个实施例提供的一种目录读取的装置示意图;
[0042]图5是本发明另一个实施例提供的一种目录读取的装置示意图;
[0043]图6是本发明一个实施例提供的一种目录读取的系统示意图。
【具体实施方式】
[0044]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0045]如图1所示,本发明实施例提供了一种目录读取的方法,该方法可以包括以下步骤:
[0046]步骤101:接收对目录缓存进行读取的第一请求信息;
[0047]步骤102:确定所述第一请求信息所要读取的第一目录;
[0048]步骤103:判断是否存在至少一个正在执行的第二请求信息,其中所述第二请求信息所要读取的第二目录与所述第一目录位于同一个缓存块上,如果是,执行步骤104;
[0049]步骤104:将所述第一请求信息缓存到预设的缓存区内,执行所述第二请求信息获取到包括所述第一目录及所述第二目录的第二缓存块后,根据所述第二缓存块及所述缓存区内的请求信息,将包括所述第一目录及所述第二目录在内的至少两个目录发送给对应的请求信息发送端。
[0050]本发明实施例提供了一种目录读取的方法,由于以缓存块的形式从目录缓存读取目录,每个缓存块包括至少两条目录,如果新接收到的第一请求信息所要读取的第一目录与当前正在执行的第二请求信息所要获取的第二目录在同一个缓存块上,执行第二请求信息读取到的第二缓存块上已经包括了第一目录,无需再次执行第一请求信息以读取第一目录,通过一次对目录缓存进行读取获取多个请求信息所要读取的目录,减小了对目录缓存进行读取时的带宽占用,从而减小读目录操作的延迟。
[0051 ]在本发明一个实施例中,在执行第二请求信息读取到包括第一目录及第二目录的第二缓存块后,一方面从第二缓存块中获取第二目录,将第二目录发送给第二请求信息对应的请求信息发送端,另一方面,依次判断缓存区内各个请求信息所要读取的目录是否在第二缓存块上,如果在,将所要读取的目录发送给对应的请求信息发送端。这样,执行每一次请求信息时,在保证完成该请求信息的前提下,确定该请求信息的执行能够替代的其他请求信息,实现执行每一次请求信息利用率的最大化,将多个请求信息合并执行,减小对目录缓存访问的带宽占用,提高读取的速度,从而减小读目录操作的延迟。
[0052]在本发明一个实施例中,如果正在执行的各个请求信息所要读取的目录与第一目录均不在同一个缓存块上,则直接执行第一请求信息,从目录缓存中读取包括第一目录的第一缓存块,将第一目录发送给第一请求信息对应的请求信息发送端,并将第一缓存块中包括的且为缓冲区内各个请求信息所要读取的目录发送给对应的请求信息发送端。这样,在新接收到的请求信息所要读取的目录与正在执行的各个请求信息所要读取的目录均不在同一个缓存块上时,直接执行该新接收到的请求信息,保证各个请求信息都能够得到及时执行,保证该目录读取方法的可行性。
[0053]在本发明一个实施例中,在对第一请求信息直接之后时,获取到包括第一目录的第一缓存块后,处理将第一目录发送给第一请求信息对应的请求信息发送端外,还依次判断缓存区内的各个请求信息所要读取的目录是否在第一缓存块内,如果在,则将所要读取的目录发送给对应的请求信息发送端。这样,每一次对目录缓存进行读取,获取到的缓存块都将与缓存区内的请求信息进行匹配,保证每一次对目录缓存进行读取读得到最大化的利用,进一步减小对目录缓存进行读取时的带宽占用,从而进一步减小读目录操作的延时,提高对目录进行读取的效率。
[0054]在本发明一个实施例中,针对于缓存区内的每一个请求信息,当该请求信息与读取到的缓存块匹配成功,将该请求信息所要读取的目录发送给该请求信息对应的请求信息发送端后,将该请求信息从缓存区内删除,以避免对同一个请求信息进行多次匹配及重复发送其所要读取的目录,造成系统资源浪费的情况发生,提高了该目录读取方法的合理性。
[0055]为使本发明的目的、技术方案和优点更加清楚,下面结合附图及具体实施例对本发明作进一步地详细描述。
[0056]本发明实施例提供的目录读取的方法,包括两方面的内容,一方面为对请求信息进行处理的方法,另一方面为对缓存块进行处理的方法,为了使本发明实施例的技术方案更加清楚,下面分别对以上两个方面的内存进行消息说明。
[0057]如图2所示,本发明一个实施例提供了一种对请求信息进行处理的方法,包括:
[0058]步骤201:接收对目录缓存进行读取的请求信息。
[0059]在本发明一个实施例中,在包括多个处理器节点的服务器中,当一个处理器节点中的一个CPU需要读取其他处理器节点管理的内存中的数据时,首先需要读取内存中数据对应的目录缓存,实时接收各个CPU发送的对目录缓存进行读取的请求信息。
[0060]例如,一个服务器包括3个处理器节点,分别为处理器节点I至处理器节点4,当处理器节点I中的CPUl要读取处理器节点2上内存I中的数据I时,CPUl首先需要对内存I的目录缓存进行读取,以获取数据I的地址,从而CPUl发送对内存I中存储的目录缓存进行读取的请求信息I。
[0061 ]步骤202:确定该请求信息所要读取的目标目录。
[0062]在本发明一个实施例中,接收到CPU发送的请求信息后,对该请求信息进行解析,确定该请求信息所要读取的目标目录。
[0063]例如,在接收到CPUl发送的请求信息I后,对请求信息I进行解析,确定出请求信息I所要读取的目标目录为对应于数据I的目录I。
[0064]步骤203:判断是否存在至少一个正在执行的请求信息所要读取的目录与目标目录位于同一缓存块,如果是,执行步骤206,否则执行步骤204。
[0065]在本发明一个实施例中,在获取到新接收到的请求信息所要读取的目标目录后,将新接收到的请求信息与当前正在执行的各个请求信息进行匹配,判断是否存在至少一个正在执行的请求信息所要读取的目录与目标目录位于同一个缓存块上,如果是,说明其中一个正在执行的请求信息读取的缓存块上包括目标目录,无需再次执行该新接收到的请求信息,相应地执行步骤206;如果否,说明当前正在执行的各个请求信息读取到的缓存块中均不包括目标目录,需要单独对目标目录进行读取,相应的执行步骤204。
[0066]例如,在确定出请求信息I所要读取的目录为目录I后,获取正在执行的各个请求信息,供获取到3条正在执行的请求信息,分别为请求信息2、请求信息3及请求信息4,依次判断请求信息2、请求信息3及请求信息4所要读取的目录与目录I是否位于同一个缓存块上,如果3条请求信息所要读取的目录与目录I均不在同一个缓存块上,针对于请求信息I执行步骤204;如果请求信息2所要读取的目录2与目录I位于同一个缓存块上,则针对于请求信息I执行步骤206。
[0067]步骤204:直接对该请求信息进行执行。
[0068]在本发明一个实施例中,当判断正在执行的各个请求信息所要读取的目录与目标目录均不在同一个缓存块上后,直接对该请求信息进行执行,对目录缓存进行读取。
[0069]例如,在判断请求信息2、请求信息3及请求信息4所要读取的目录与目录I均不在同一个缓存块上后,执行请求信息I,对内存I中存储的目录缓存进行读取。
[0070]步骤205:获取包括目标目录的缓存块,并结束当前流程。
[0071]在本发明一个实施例中,在执行新接收到的请求信息时,从目录缓存中读取包括该请求信息所要读取的目录的缓存块。
[0072]例如,从内存I中存储的目录缓存中读取包括目录I的缓存块I,其中缓存块I上除了目录I外,还包括目录2至目录32。
[0073]步骤206:将该请求信息缓存到缓存区中。
[0074]在本发明一个实施例中,当判断初正在执行的一个请求信息所要读取的目录与目标目录位于同一个缓存块上之后,将目标目录对应的请求信息缓存到缓存区中。
[0075]例如,在判断出正在执行的请求信息2所要读取的目录2与目录I位于同一个缓存块上之后,将请求信息I缓存到缓存区中。
[0076]如图3所示,本发明一个实施例提供了一种对缓存块进行处理的方法,包括:
[0077]步骤301:对缓存块进行解析,获取包括的各个目录。
[0078]在本发明一个实施例中,在执行一个请求信息,从目录缓存中读取到包括该请求信息所要读取目录的缓存块后,对读取到的缓存块进行解析,获取到该缓存块包括的各个目录。
[0079]例如,如图2所示实施例中,执行请求信息I时,从内存I中的目录缓存中读取到缓存块I,对缓存块I进行解析,获得缓存块I包括的32个目录,分别为目录I至目录32。
[0080]步骤302:将读取该缓存块对应的请求信息所要读取的目录发送给该请求信息对应的请求信息发送端。
[0081]在本发明一个实施例中,在获取到缓存块包括的各个目录后,将获取该缓存块时执行的请求信息所要读取的目录发送给该请求信息对应的请求信息发送端,完成该请求信息对目录缓存进行读取的任务。
[0082]例如,在获取缓存块I包括的32个目录后,将获取缓存块I时对应执行的请求信息I所要读取的目录I发送给请求信息I的发送端,即发送给处理器节点I中的CPUl,CPU1获取到数据I的存储地址。
[0083]步骤303:依次判断缓存区中的各个请求信息所要读取的目录是否在该缓存块上,如果是,执行步骤304,否则结束当前流程。
[0084]在本发明一个实施例中,针对于与缓存区中的每一个请求信息,判断该请求信息所要读取的目录是否在步骤301中获取的各个目录中,如果是,相应地执行步骤303,如果否,则结束当前流程。
[0085]例如,如图2所示的实施例,当请求信息I被缓存到缓存区中后,执行请求信息2获得缓存块2,从缓存块2中获取到目录I至目录32共32个目录,缓存区共包括2个请求信息,分别为请求信息I和请求信息5,依次判断请求信息I及请求信息5所要读取的目录是否在目录I至目录32这32个目录内,其中请求信息I所要读取的目录为目录I,与缓存块2中的目录I相同,针对于请求信息I执行步骤304,而请求信息5所要读取的目录为目录50,缓存块2包括的32个目录中不包括目录50,针对于请求信息5结束当前流程。
[0086]步骤304:将所要读取的目录发送给对应的请求信息发送端。
[0087]在本发明一个实施例中,针对于缓存区中的任意一个请求信息,当步骤301中获得的各个目录中包括该请求信息所要读取的目录时,将该请求信息所要读取的目录发送给该请求信息对应的请求信息发送端。
[0088]例如,当判断缓存块2中包括的32个目录中包括缓存区中的请求信息I所要读取的目录I后,将目录I发送给请求信息I对应的请求信息发送端,即将目录I发送给处理器节点I中的CPUl。
[0089]步骤305:将已发目录对应的请求信息从缓存区中删除。
[0090]在本发明一个实施例中,针对于缓存区中的任意一个请求信息,将该请求信息所要读取的目录发送给该请求信息对应的请求信息发送端后,将该请求信息从缓存区中删除。
[0091]例如,当将缓存区中的请求信息I所要读取的目录I发送给处理器节点I中的CPUl后,将请求信息I从缓存区中删除。
[0092]需要说明的是,在图3所示的实施例中,仅对图2所示实施例中请求信息I被缓存到缓存区中的情况进行了说明,针对于请求信息I被直接执行的情况,与对请求信息2的处理过程相似,执行请求信息I获得缓存块I,从缓存块I中获得各个目录,将请求信息I所要读取的目录I发送给处理器I中的CPUl后,判断缓存区中的各个请求信息所要读取的目录是否在缓存块I包括的各个目录中,如果是,将所要读取的目录发送给对应的请求信息发送端后,将已发目录对应的请求信息从缓存区中删除。
[0093]进一步需要说明的是,本发明实施例是为了更加清楚的说明目录读取的过程,将整个目录读取的过程划分为对请求信息处理的方法和对缓存块处理的方法,在实际业务实现过程中,图2及图3所示的实施例中执行步骤上没有严格的先后顺序。
[0094]本发明一个实施例提供了一种目录读取的装置,可以通过软件实现,如图4所示,作为一个逻辑意义上的装置,是通过其所在设备的CPU将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。该装置包括:接收单元401、确定单元402、判断单元403及执行单元404;
[0095]所述接收单元401,用于接收对目录缓存进行读取的第一请求信息;
[0096]所述确定单元402,用于确定所述接收单元401接收到的第一请求信息所要读取的第一目录;
[0097]所述判断单元403,用于判断是否存在至少一个正在执行的第二请求信息,其中所述第二请求信息所要读取的第二目录与所述确定单元402确定出的第一目录位于同一个缓存块上;
[0098]所述执行单元404,用于根据所述判断单元403的判断结果,如果是,将所述第一请求信息缓存到预设的缓存区内,执行所述第二请求信息获取到包括所述第一目录及所述第二目录的第二缓存块后,根据所述第二缓存块及所述缓存区内的请求信息,将包括所述第一目录及所述第二目录在内的至少两个目录发送给对应的请求信息发送端。
[0099]在本发明一个实施例中,如图5所示,执行单元404包括:发送子单元4041及判断子单元4042;
[0100]所述发送子单元4041,用于从所述第二缓存块中获取所述第二目录,将所述第二目录发送给所述第二请求信息对应的请求信息发送端;
[0101 ]所述判断子单元4042,用于针对于所述缓存区内的每一个请求信息,判断该请求信息所要读取的目录是否在所述第二缓存块内;
[0102]所述发送子单元4041,进一步用于根据所述判断子单元4041的判断结果,如果是,将该请求信息所要读取的目录发送给该请求信息对应的请求信息发送端。
[0?03]在本发明一个实施例中,所述执行单元404,进一步用于根据所述判断单元403的判断结果,如果否,直接执行所述第一请求信息,从所述目录缓存中获取包括所述第一目录的第一缓存块,根据所述第一缓存块及所述缓存区内的请求信息,将包括所述第一目录在内的至少一个目录发送给对应的请求信息发送端。
[0?04] 在本发明一个实施例中,如图5所示,当执行单元404包括发送子单元4041及判断子单元4042时;
[0105]所述发送子单元4041,进一步用于从所述第一缓存块中获取所述第一目录,将所述第一目录发送给所述第一请求信息对应的请求信息发送端;
[0106]所述判断子单元4042,进一步用于针对于所述缓存区内的每一个请求信息,判断该请求信息所要读取的目录是否在所述第一缓存块内;
[0107]所述发送子单元4041,进一步用于根据所述判断子单元4042的判断结果,如果是,将该请求信息所要读取的目录发送给该请求信息对应的请求信息发送端。
[0108]上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
[0109]如图6所示,本发明一个实施例提供了一种目录读取的系统,包括:请求信息响应端601、至少一个请求信息发送端603及上述实施例提供的任意一种目录读取的装置602;
[0110]所述请求信息响应端601,用于存储所述目录缓存;
[0111]所述请求信息发送端603,用于向所述目录读取的装置602中的接收单元发送请求信息,并接收所述目录读取的装置602中的执行单元发送的目录。
[0112]在本发明实施例中,目录读取的装置602可以设置于连接不同处理器节点的节点控制芯片上,以实现不同处理器节点之间进行高效的目录缓存读取,也可以设置于CPU内,以实现CPU对内存中目录缓存进行高效的读取。
[0113]本发明实施例提供的目录读取的方法、装置及系统,至少具有如下有益效果:
[0114]1、在本发明实施例中,由于以缓存块的形式从目录缓存读取目录,每个缓存块包括至少两条目录,如果新接收到的第一请求信息所要读取的第一目录与当前正在执行的第二请求信息所要获取的第二目录在同一个缓存块上,执行第二请求信息读取到的第二缓存块上已经包括了第一目录,无需再次执行第一请求信息以读取第一目录,通过一次对目录缓存进行读取获取多个请求信息所要读取的目录,减小了对目录缓存进行读取时的带宽占用,从而减小读目录操作的延迟。
[0115]2、本发明实施例中,如果正在执行的各个请求信息所要读取的目录与新接收到的请求信息所要读取的目录均不在同一个缓存块上,则直接对新接收到的请求信息进行执行,从目录缓存中获取新接收到的请求信息所要读取的目录,保证各个请求信息发送端发送的请求信息都能够得到执行,保证该目录读取方法的可行性。
[0116]3、本发明实施例中,针对于直接执行的请求信息,在该请求信息读取到缓存块后,同样判断缓存区内的各个请求消息所要读取的目录是否在该缓存块中,将匹配成功的请求消息所要读取的目录发送给对应的请求消息发送端,这样保证每一个缓存块都得到最大程度的利用,从而进一步降低对目录缓存进行读取的带宽,提高了对目录缓存进行读取的速率。
[0117]4、在本发明实施例中,针对于缓存区中的任意一个请求信息,在将该请求信息所要读取的目录发送给该请求信息对应的请求信息发送端后,将该请求信息从缓存区中删除,这样可以避免重复对已完成的请求信息进行匹配及发送其所要读取的目录,造成系统资源浪费的情况发生,提高了该目录读取方法的合理性。
[0118]需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个〃.....”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
[0119]本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
[0120]最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
【主权项】
1.一种目录读取的方法,其特征在于,包括: 接收对目录缓存进行读取的第一请求信息; 确定所述第一请求信息所要读取的第一目录; 判断是否存在至少一个正在执行的第二请求信息,其中所述第二请求信息所要读取的第二目录与所述第一目录位于同一个缓存块上; 如果是,将所述第一请求信息缓存到预设的缓存区内,执行所述第二请求信息获取到包括所述第一目录及所述第二目录的第二缓存块后,根据所述第二缓存块及所述缓存区内的请求信息,将包括所述第一目录及所述第二目录在内的至少两个目录发送给对应的请求信息发送端。2.根据权利要求1所述的方法,其特征在于, 所述根据所述第二缓存块及所述缓存区内的请求信息,将包括所述第一目录及所述第二目录在内的至少两个目录发送给对应的请求信息发送端包括: 从所述第二缓存块中获取所述第二目录,将所述第二目录发送给所述第二请求信息对应的请求信息发送端; 针对于所述缓存区内的每一个请求信息,判断该请求信息所要读取的目录是否在所述第二缓存块内,如果是,将该请求信息所要读取的目录发送给该请求信息对应的请求信息发送端。3.根据权利要求1所述的方法,其特征在于, 如果不存在正在执行的所述第二请求信息,则直接执行所述第一请求信息,从所述目录缓存中获取包括所述第一目录的第一缓存块,根据所述第一缓存块及所述缓存区内的请求信息,将包括所述第一目录在内的至少一个目录发送给对应的请求信息发送端。4.根据权利要求3所述的方法,其特征在于, 所述根据所述第一缓存块及所述缓存区内的请求信息,将包括所述第一目录在内的至少一个目录发送给对应的请求信息发送端包括: 从所述第一缓存块中获取所述第一目录,将所述第一目录发送给所述第一请求信息对应的请求信息发送端; 针对于所述缓存区内的每一个请求信息,判断该请求信息所要读取的目录是否在所述第一缓存块内,如果是,将该请求信息所要读取的目录发送给该请求信息对应的请求信息发送端。5.根据权利要求1至4中任一所述的方法,其特征在于, 针对于所述缓存区内的每一个请求信息,将该请求信息所要读取的目录发送给该请求信息对应的请求信息发送端后,将该请求信息从所述缓存区中删除。6.—种目录读取的装置,其特征在于,包括:接收单元、确定单元、判断单元及执行单元; 所述接收单元,用于接收对目录缓存进行读取的第一请求信息; 所述确定单元,用于确定所述接收单元接收到的第一请求信息所要读取的第一目录;所述判断单元,用于判断是否存在至少一个正在执行的第二请求信息,其中所述第二请求信息所要读取的第二目录与所述确定单元确定出的第一目录位于同一个缓存块上;所述执行单元,用于根据所述判断单元的判断结果,如果是,将所述第一请求信息缓存到预设的缓存区内,执行所述第二请求信息获取到包括所述第一目录及所述第二目录的第二缓存块后,根据所述第二缓存块及所述缓存区内的请求信息,将包括所述第一目录及所述第二目录在内的至少两个目录发送给对应的请求信息发送端。7.根据权利要求6所述的装置,其特征在于,所述执行单元包括:发送子单元及判断子单元; 所述发送子单元,用于从所述第二缓存块中获取所述第二目录,将所述第二目录发送给所述第二请求信息对应的请求信息发送端; 所述判断子单元,用于针对于所述缓存区内的每一个请求信息,判断该请求信息所要读取的目录是否在所述第二缓存块内; 所述发送子单元,进一步用于根据所述判断子单元的判断结果,如果是,将该请求信息所要读取的目录发送给该请求信息对应的请求信息发送端。8.根据权利要求6所述的装置,其特征在于, 所述执行单元,进一步用于根据所述判断单元的判断结果,如果否,直接执行所述第一请求信息,从所述目录缓存中获取包括所述第一目录的第一缓存块,根据所述第一缓存块及所述缓存区内的请求信息,将包括所述第一目录在内的至少一个目录发送给对应的请求信息发送端。9.根据权利要求8所述的装置,其特征在于,所述执行单元包括:发送子单元及判断子单元; 所述发送子单元,用于从所述第一缓存块中获取所述第一目录,将所述第一目录发送给所述第一请求信息对应的请求信息发送端; 所述判断子单元,用于针对于所述缓存区内的每一个请求信息,判断该请求信息所要读取的目录是否在所述第一缓存块内; 所述发送子单元,进一步用于根据所述判断子单元的判断结果,如果是,将该请求信息所要读取的目录发送给该请求信息对应的请求信息发送端。10.—种目录读取的系统,其特征在于,包括:请求信息响应端、至少一个请求信息发送端及权利要求6至9中任一所述的目录读取的装置; 所述请求信息响应端,用于存储所述目录缓存; 所述请求信息发送端,用于向所述目录读取的装置中的接收单元发送请求信息,并接收所述目录读取的装置中的执行单元发送的目录。
【文档编号】G06F12/0806GK105912477SQ201610204376
【公开日】2016年8月31日
【申请日】2016年4月5日
【发明人】周玉龙, 童元满, 李仁刚
【申请人】浪潮电子信息产业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1