CN105912477B - 一种目录读取的方法、装置及系统 - Google Patents
一种目录读取的方法、装置及系统 Download PDFInfo
- Publication number
- CN105912477B CN105912477B CN201610204376.3A CN201610204376A CN105912477B CN 105912477 B CN105912477 B CN 105912477B CN 201610204376 A CN201610204376 A CN 201610204376A CN 105912477 B CN105912477 B CN 105912477B
- Authority
- CN
- China
- Prior art keywords
- solicited message
- catalogue
- read
- cache blocks
- unit
- 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
- 238000000034 method Methods 0.000 title claims abstract description 50
- 230000005540 biological transmission Effects 0.000 claims description 21
- 108010001267 Protein Subunits Proteins 0.000 claims description 10
- 230000008569 process Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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/0806—Multiuser, multiprocessor or multiprocessing cache systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供了一种目录读取的方法、装置及系统,该方法包括:接收对目录缓存进行读取的第一请求信息;确定所述第一请求信息所要读取的第一目录;判断是否存在至少一个正在执行的第二请求信息,其中所述第二请求信息所要读取的第二目录与所述第一目录位于同一个缓存块上;如果是,将所述第一请求信息缓存到预设的缓存区内,执行所述第二请求信息获取到包括所述第一目录及所述第二目录的第二缓存块后,根据所述第二缓存块及所述缓存区内的请求信息,将包括所述第一目录及所述第二目录在内的至少两个目录发送给对应的请求信息发送端。本方案能够减小读目录操作的延迟。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种目录读取的方法、装置及系统。
背景技术
随着业务量及业务复杂程度的增加,用户对服务器性能的要求也越来越高,为了保证用户的业务得到正常的运行,一些服务器包括有多个处理器节点。在包括多个处理器节点的服务器中,每个处理器节点包括至少一个CPU,每个CPU配备有一定的内存,每个处理器节点还包括至少一个节点控制器NC,不同处理器节点中的CPU通过节点控制器NC相互连接,实现相互访问对方内存的目的。为了提高读取内存中数据的速度,每一个内存中缓存有对应于该内存中各个数据的至少两个目录缓存,在对内存中的数据进行读取时,通过读取目录缓存获取所需数据的存储位置,每次对内存中的目录缓存进行读取时读取至少两条目录。
目前,针对于任意一个处理器节点,当其他处理器节点中的CPU对该处理器节点内存中的目录缓存进行读取时,每一次读目录请求对应一次目录缓存的读取。
针对于现有技术对内存中目录缓存进行读取的方法,每一次读目录请求都需要对内存中的目录缓存进行一次读取,当多个处理器节点中的多个CPU对同一个内存同时发送读目录请求时,增加对内存总线带宽的占用,造成读目录操作的延迟较大。
发明内容
本发明实施例提供了一种目录读取的方法、装置及系统,能够减小读目录操作的延迟。
本发明实施例提供了一种目录读取的方法,包括:
接收对目录缓存进行读取的第一请求信息;
确定所述第一请求信息所要读取的第一目录;
判断是否存在至少一个正在执行的第二请求信息,其中所述第二请求信息所要读取的第二目录与所述第一目录位于同一个缓存块上;
如果是,将所述第一请求信息缓存到预设的缓存区内,执行所述第二请求信息获取到包括所述第一目录及所述第二目录的第二缓存块后,根据所述第二缓存块及所述缓存区内的请求信息,将包括所述第一目录及所述第二目录在内的至少两个目录发送给对应的请求信息发送端。
优选地,所述根据所述第二缓存块及所述缓存区内的请求信息,将包括所述第一目录及所述第二目录在内的至少两个目录发送给对应的请求信息发送端包括:
从所述第二缓存块中获取所述第二目录,将所述第二目录发送给所述第二请求信息对应的请求信息发送端;
针对于所述缓存区内的每一个请求信息,判断该请求信息所要读取的目录是否在所述第二缓存块内,如果是,将该请求信息所要读取的目录发送给该请求信息对应的请求信息发送端。
优选地,如果不存在正在执行的所述第二请求信息,则直接执行所述第一请求信息,从所述目录缓存中获取包括所述第一目录的第一缓存块,根据所述第一缓存块及所述缓存区内的请求信息,将包括所述第一目录在内的至少一个目录发送给对应的请求信息发送端。
优选地,所述根据所述第一缓存块及所述缓存区内的请求信息,将包括所述第一目录在内的至少一个目录发送给对应的请求信息发送端包括:
从所述第一缓存块中获取所述第一目录,将所述第一目录发送给所述第一请求信息对应的请求信息发送端;
针对于所述缓存区内的每一个请求信息,判断该请求信息所要读取的目录是否在所述第一缓存块内,如果是,将该请求信息所要读取的目录发送给该请求信息对应的请求信息发送端。
优选地,针对于所述缓存区内的每一个请求信息,将该请求信息所要读取的目录发送给该请求信息对应的请求信息发送端后,将该请求信息从所述缓存区中删除。
本发明实施例还提供了一种目录读取的装置,包括:接收单元、确定单元、判断单元及执行单元;
所述接收单元,用于接收对目录缓存进行读取的第一请求信息;
所述确定单元,用于确定所述接收单元接收到的第一请求信息所要读取的第一目录;
所述判断单元,用于判断是否存在至少一个正在执行的第二请求信息,其中所述第二请求信息所要读取的第二目录与所述确定单元确定出的第一目录位于同一个缓存块上;
所述执行单元,用于根据所述判断单元的判断结果,如果是,将所述第一请求信息缓存到预设的缓存区内,执行所述第二请求信息获取到包括所述第一目录及所述第二目录的第二缓存块后,根据所述第二缓存块及所述缓存区内的请求信息,将包括所述第一目录及所述第二目录在内的至少两个目录发送给对应的请求信息发送端。
优选地,所述执行单元包括:发送子单元及判断子单元;
所述发送子单元,用于从所述第二缓存块中获取所述第二目录,将所述第二目录发送给所述第二请求信息对应的请求信息发送端;
所述判断子单元,用于针对于所述缓存区内的每一个请求信息,判断该请求信息所要读取的目录是否在所述第二缓存块内;
所述发送子单元,进一步用于根据所述判断子单元的判断结果,如果是,将该请求信息所要读取的目录发送给该请求信息对应的请求信息发送端。
优选地,所述执行单元,进一步用于根据所述判断单元的判断结果,如果否,直接执行所述第一请求信息,从所述目录缓存中获取包括所述第一目录的第一缓存块,根据所述第一缓存块及所述缓存区内的请求信息,将包括所述第一目录在内的至少一个目录发送给对应的请求信息发送端。
优选地,所述执行单元包括:发送子单元及判断子单元;
所述发送子单元,用于从所述第一缓存块中获取所述第一目录,将所述第一目录发送给所述第一请求信息对应的请求信息发送端;
所述判断子单元,用于针对于所述缓存区内的每一个请求信息,判断该请求信息所要读取的目录是否在所述第一缓存块内;
所述发送子单元,进一步用于根据所述判断子单元的判断结果,如果是,将该请求信息所要读取的目录发送给该请求信息对应的请求信息发送端。
本发明实施例还提供了一种目录读取的系统,包括:请求信息响应端、至少一个请求信息发送端及本发明实施例提供的任意一种目录读取的装置;
所述请求信息响应端,用于存储所述目录缓存;
所述请求信息发送端,用于向所述目录读取的装置中的接收单元发送请求信息,并接收所述目录读取的装置中的执行单元发送的目录。
本发明实施例提供了一种目录读取的方法、装置及系统,由于以缓存块的形式从目录缓存读取目录,每个缓存块包括至少两条目录,如果新接收到的第一请求信息所要读取的第一目录与当前正在执行的第二请求信息所要获取的第二目录在同一个缓存块上,执行第二请求信息读取到的第二缓存块上已经包括了第一目录,无需再次执行第一请求信息以读取第一目录,通过一次对目录缓存进行读取获取多个请求信息所要读取的目录,减小了对目录缓存进行读取时的带宽占用,从而减小读目录操作的延迟。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的一种目录读取的方法流程图;
图2是本发明一个实施例提供的一种对请求信息进行处理的方法流程图;
图3是本发明一个实施例提供的一种对缓存块进行处理的方法流程图;
图4是本发明一个实施例提供的一种目录读取的装置示意图;
图5是本发明另一个实施例提供的一种目录读取的装置示意图;
图6是本发明一个实施例提供的一种目录读取的系统示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种目录读取的方法,该方法可以包括以下步骤:
步骤101:接收对目录缓存进行读取的第一请求信息;
步骤102:确定所述第一请求信息所要读取的第一目录;
步骤103:判断是否存在至少一个正在执行的第二请求信息,其中所述第二请求信息所要读取的第二目录与所述第一目录位于同一个缓存块上,如果是,执行步骤104;
步骤104:将所述第一请求信息缓存到预设的缓存区内,执行所述第二请求信息获取到包括所述第一目录及所述第二目录的第二缓存块后,根据所述第二缓存块及所述缓存区内的请求信息,将包括所述第一目录及所述第二目录在内的至少两个目录发送给对应的请求信息发送端。
本发明实施例提供了一种目录读取的方法,由于以缓存块的形式从目录缓存读取目录,每个缓存块包括至少两条目录,如果新接收到的第一请求信息所要读取的第一目录与当前正在执行的第二请求信息所要获取的第二目录在同一个缓存块上,执行第二请求信息读取到的第二缓存块上已经包括了第一目录,无需再次执行第一请求信息以读取第一目录,通过一次对目录缓存进行读取获取多个请求信息所要读取的目录,减小了对目录缓存进行读取时的带宽占用,从而减小读目录操作的延迟。
在本发明一个实施例中,在执行第二请求信息读取到包括第一目录及第二目录的第二缓存块后,一方面从第二缓存块中获取第二目录,将第二目录发送给第二请求信息对应的请求信息发送端,另一方面,依次判断缓存区内各个请求信息所要读取的目录是否在第二缓存块上,如果在,将所要读取的目录发送给对应的请求信息发送端。这样,执行每一次请求信息时,在保证完成该请求信息的前提下,确定该请求信息的执行能够替代的其他请求信息,实现执行每一次请求信息利用率的最大化,将多个请求信息合并执行,减小对目录缓存访问的带宽占用,提高读取的速度,从而减小读目录操作的延迟。
在本发明一个实施例中,如果正在执行的各个请求信息所要读取的目录与第一目录均不在同一个缓存块上,则直接执行第一请求信息,从目录缓存中读取包括第一目录的第一缓存块,将第一目录发送给第一请求信息对应的请求信息发送端,并将第一缓存块中包括的且为缓冲区内各个请求信息所要读取的目录发送给对应的请求信息发送端。这样,在新接收到的请求信息所要读取的目录与正在执行的各个请求信息所要读取的目录均不在同一个缓存块上时,直接执行该新接收到的请求信息,保证各个请求信息都能够得到及时执行,保证该目录读取方法的可行性。
在本发明一个实施例中,在对第一请求信息直接之后时,获取到包括第一目录的第一缓存块后,处理将第一目录发送给第一请求信息对应的请求信息发送端外,还依次判断缓存区内的各个请求信息所要读取的目录是否在第一缓存块内,如果在,则将所要读取的目录发送给对应的请求信息发送端。这样,每一次对目录缓存进行读取,获取到的缓存块都将与缓存区内的请求信息进行匹配,保证每一次对目录缓存进行读取读得到最大化的利用,进一步减小对目录缓存进行读取时的带宽占用,从而进一步减小读目录操作的延时,提高对目录进行读取的效率。
在本发明一个实施例中,针对于缓存区内的每一个请求信息,当该请求信息与读取到的缓存块匹配成功,将该请求信息所要读取的目录发送给该请求信息对应的请求信息发送端后,将该请求信息从缓存区内删除,以避免对同一个请求信息进行多次匹配及重复发送其所要读取的目录,造成系统资源浪费的情况发生,提高了该目录读取方法的合理性。
为使本发明的目的、技术方案和优点更加清楚,下面结合附图及具体实施例对本发明作进一步地详细描述。
本发明实施例提供的目录读取的方法,包括两方面的内容,一方面为对请求信息进行处理的方法,另一方面为对缓存块进行处理的方法,为了使本发明实施例的技术方案更加清楚,下面分别对以上两个方面的内存进行消息说明。
如图2所示,本发明一个实施例提供了一种对请求信息进行处理的方法,包括:
步骤201:接收对目录缓存进行读取的请求信息。
在本发明一个实施例中,在包括多个处理器节点的服务器中,当一个处理器节点中的一个CPU需要读取其他处理器节点管理的内存中的数据时,首先需要读取内存中数据对应的目录缓存,实时接收各个CPU发送的对目录缓存进行读取的请求信息。
例如,一个服务器包括3个处理器节点,分别为处理器节点1至处理器节点4,当处理器节点1中的CPU1要读取处理器节点2上内存1中的数据1时,CPU1首先需要对内存1的目录缓存进行读取,以获取数据1的地址,从而CPU1发送对内存1中存储的目录缓存进行读取的请求信息1。
步骤202:确定该请求信息所要读取的目标目录。
在本发明一个实施例中,接收到CPU发送的请求信息后,对该请求信息进行解析,确定该请求信息所要读取的目标目录。
例如,在接收到CPU1发送的请求信息1后,对请求信息1进行解析,确定出请求信息1所要读取的目标目录为对应于数据1的目录1。
步骤203:判断是否存在至少一个正在执行的请求信息所要读取的目录与目标目录位于同一缓存块,如果是,执行步骤206,否则执行步骤204。
在本发明一个实施例中,在获取到新接收到的请求信息所要读取的目标目录后,将新接收到的请求信息与当前正在执行的各个请求信息进行匹配,判断是否存在至少一个正在执行的请求信息所要读取的目录与目标目录位于同一个缓存块上,如果是,说明其中一个正在执行的请求信息读取的缓存块上包括目标目录,无需再次执行该新接收到的请求信息,相应地执行步骤206;如果否,说明当前正在执行的各个请求信息读取到的缓存块中均不包括目标目录,需要单独对目标目录进行读取,相应的执行步骤204。
例如,在确定出请求信息1所要读取的目录为目录1后,获取正在执行的各个请求信息,供获取到3条正在执行的请求信息,分别为请求信息2、请求信息3及请求信息4,依次判断请求信息2、请求信息3及请求信息4所要读取的目录与目录1是否位于同一个缓存块上,如果3条请求信息所要读取的目录与目录1均不在同一个缓存块上,针对于请求信息1执行步骤204;如果请求信息2所要读取的目录2与目录1位于同一个缓存块上,则针对于请求信息1执行步骤206。
步骤204:直接对该请求信息进行执行。
在本发明一个实施例中,当判断正在执行的各个请求信息所要读取的目录与目标目录均不在同一个缓存块上后,直接对该请求信息进行执行,对目录缓存进行读取。
例如,在判断请求信息2、请求信息3及请求信息4所要读取的目录与目录1均不在同一个缓存块上后,执行请求信息1,对内存1中存储的目录缓存进行读取。
步骤205:获取包括目标目录的缓存块,并结束当前流程。
在本发明一个实施例中,在执行新接收到的请求信息时,从目录缓存中读取包括该请求信息所要读取的目录的缓存块。
例如,从内存1中存储的目录缓存中读取包括目录1的缓存块1,其中缓存块1上除了目录1外,还包括目录2至目录32。
步骤206:将该请求信息缓存到缓存区中。
在本发明一个实施例中,当判断初正在执行的一个请求信息所要读取的目录与目标目录位于同一个缓存块上之后,将目标目录对应的请求信息缓存到缓存区中。
例如,在判断出正在执行的请求信息2所要读取的目录2与目录1位于同一个缓存块上之后,将请求信息1缓存到缓存区中。
如图3所示,本发明一个实施例提供了一种对缓存块进行处理的方法,包括:
步骤301:对缓存块进行解析,获取包括的各个目录。
在本发明一个实施例中,在执行一个请求信息,从目录缓存中读取到包括该请求信息所要读取目录的缓存块后,对读取到的缓存块进行解析,获取到该缓存块包括的各个目录。
例如,如图2所示实施例中,执行请求信息1时,从内存1中的目录缓存中读取到缓存块1,对缓存块1进行解析,获得缓存块1包括的32个目录,分别为目录1至目录32。
步骤302:将读取该缓存块对应的请求信息所要读取的目录发送给该请求信息对应的请求信息发送端。
在本发明一个实施例中,在获取到缓存块包括的各个目录后,将获取该缓存块时执行的请求信息所要读取的目录发送给该请求信息对应的请求信息发送端,完成该请求信息对目录缓存进行读取的任务。
例如,在获取缓存块1包括的32个目录后,将获取缓存块1时对应执行的请求信息1所要读取的目录1发送给请求信息1的发送端,即发送给处理器节点1中的CPU1,CPU1获取到数据1的存储地址。
步骤303:依次判断缓存区中的各个请求信息所要读取的目录是否在该缓存块上,如果是,执行步骤304,否则结束当前流程。
在本发明一个实施例中,针对于与缓存区中的每一个请求信息,判断该请求信息所要读取的目录是否在步骤301中获取的各个目录中,如果是,相应地执行步骤303,如果否,则结束当前流程。
例如,如图2所示的实施例,当请求信息1被缓存到缓存区中后,执行请求信息2获得缓存块2,从缓存块2中获取到目录1至目录32共32个目录,缓存区共包括2个请求信息,分别为请求信息1和请求信息5,依次判断请求信息1及请求信息5所要读取的目录是否在目录1至目录32这32个目录内,其中请求信息1所要读取的目录为目录1,与缓存块2中的目录1相同,针对于请求信息1执行步骤304,而请求信息5所要读取的目录为目录50,缓存块2包括的32个目录中不包括目录50,针对于请求信息5结束当前流程。
步骤304:将所要读取的目录发送给对应的请求信息发送端。
在本发明一个实施例中,针对于缓存区中的任意一个请求信息,当步骤301中获得的各个目录中包括该请求信息所要读取的目录时,将该请求信息所要读取的目录发送给该请求信息对应的请求信息发送端。
例如,当判断缓存块2中包括的32个目录中包括缓存区中的请求信息1所要读取的目录1后,将目录1发送给请求信息1对应的请求信息发送端,即将目录1发送给处理器节点1中的CPU1。
步骤305:将已发目录对应的请求信息从缓存区中删除。
在本发明一个实施例中,针对于缓存区中的任意一个请求信息,将该请求信息所要读取的目录发送给该请求信息对应的请求信息发送端后,将该请求信息从缓存区中删除。
例如,当将缓存区中的请求信息1所要读取的目录1发送给处理器节点1中的CPU1后,将请求信息1从缓存区中删除。
需要说明的是,在图3所示的实施例中,仅对图2所示实施例中请求信息1被缓存到缓存区中的情况进行了说明,针对于请求信息1被直接执行的情况,与对请求信息2的处理过程相似,执行请求信息1获得缓存块1,从缓存块1中获得各个目录,将请求信息1所要读取的目录1发送给处理器1中的CPU1后,判断缓存区中的各个请求信息所要读取的目录是否在缓存块1包括的各个目录中,如果是,将所要读取的目录发送给对应的请求信息发送端后,将已发目录对应的请求信息从缓存区中删除。
进一步需要说明的是,本发明实施例是为了更加清楚的说明目录读取的过程,将整个目录读取的过程划分为对请求信息处理的方法和对缓存块处理的方法,在实际业务实现过程中,图2及图3所示的实施例中执行步骤上没有严格的先后顺序。
本发明一个实施例提供了一种目录读取的装置,可以通过软件实现,如图4所示,作为一个逻辑意义上的装置,是通过其所在设备的CPU将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。该装置包括:接收单元401、确定单元402、判断单元403及执行单元404;
所述接收单元401,用于接收对目录缓存进行读取的第一请求信息;
所述确定单元402,用于确定所述接收单元401接收到的第一请求信息所要读取的第一目录;
所述判断单元403,用于判断是否存在至少一个正在执行的第二请求信息,其中所述第二请求信息所要读取的第二目录与所述确定单元402确定出的第一目录位于同一个缓存块上;
所述执行单元404,用于根据所述判断单元403的判断结果,如果是,将所述第一请求信息缓存到预设的缓存区内,执行所述第二请求信息获取到包括所述第一目录及所述第二目录的第二缓存块后,根据所述第二缓存块及所述缓存区内的请求信息,将包括所述第一目录及所述第二目录在内的至少两个目录发送给对应的请求信息发送端。
在本发明一个实施例中,如图5所示,执行单元404包括:发送子单元4041及判断子单元4042;
所述发送子单元4041,用于从所述第二缓存块中获取所述第二目录,将所述第二目录发送给所述第二请求信息对应的请求信息发送端;
所述判断子单元4042,用于针对于所述缓存区内的每一个请求信息,判断该请求信息所要读取的目录是否在所述第二缓存块内;
所述发送子单元4041,进一步用于根据所述判断子单元4041的判断结果,如果是,将该请求信息所要读取的目录发送给该请求信息对应的请求信息发送端。
在本发明一个实施例中,所述执行单元404,进一步用于根据所述判断单元403的判断结果,如果否,直接执行所述第一请求信息,从所述目录缓存中获取包括所述第一目录的第一缓存块,根据所述第一缓存块及所述缓存区内的请求信息,将包括所述第一目录在内的至少一个目录发送给对应的请求信息发送端。
在本发明一个实施例中,如图5所示,当执行单元404包括发送子单元4041及判断子单元4042时;
所述发送子单元4041,进一步用于从所述第一缓存块中获取所述第一目录,将所述第一目录发送给所述第一请求信息对应的请求信息发送端;
所述判断子单元4042,进一步用于针对于所述缓存区内的每一个请求信息,判断该请求信息所要读取的目录是否在所述第一缓存块内;
所述发送子单元4041,进一步用于根据所述判断子单元4042的判断结果,如果是,将该请求信息所要读取的目录发送给该请求信息对应的请求信息发送端。
上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
如图6所示,本发明一个实施例提供了一种目录读取的系统,包括:请求信息响应端601、至少一个请求信息发送端603及上述实施例提供的任意一种目录读取的装置602;
所述请求信息响应端601,用于存储所述目录缓存;
所述请求信息发送端603,用于向所述目录读取的装置602中的接收单元发送请求信息,并接收所述目录读取的装置602中的执行单元发送的目录。
在本发明实施例中,目录读取的装置602可以设置于连接不同处理器节点的节点控制芯片上,以实现不同处理器节点之间进行高效的目录缓存读取,也可以设置于CPU内,以实现CPU对内存中目录缓存进行高效的读取。
本发明实施例提供的目录读取的方法、装置及系统,至少具有如下有益效果:
1、在本发明实施例中,由于以缓存块的形式从目录缓存读取目录,每个缓存块包括至少两条目录,如果新接收到的第一请求信息所要读取的第一目录与当前正在执行的第二请求信息所要获取的第二目录在同一个缓存块上,执行第二请求信息读取到的第二缓存块上已经包括了第一目录,无需再次执行第一请求信息以读取第一目录,通过一次对目录缓存进行读取获取多个请求信息所要读取的目录,减小了对目录缓存进行读取时的带宽占用,从而减小读目录操作的延迟。
2、本发明实施例中,如果正在执行的各个请求信息所要读取的目录与新接收到的请求信息所要读取的目录均不在同一个缓存块上,则直接对新接收到的请求信息进行执行,从目录缓存中获取新接收到的请求信息所要读取的目录,保证各个请求信息发送端发送的请求信息都能够得到执行,保证该目录读取方法的可行性。
3、本发明实施例中,针对于直接执行的请求信息,在该请求信息读取到缓存块后,同样判断缓存区内的各个请求消息所要读取的目录是否在该缓存块中,将匹配成功的请求消息所要读取的目录发送给对应的请求消息发送端,这样保证每一个缓存块都得到最大程度的利用,从而进一步降低对目录缓存进行读取的带宽,提高了对目录缓存进行读取的速率。
4、在本发明实施例中,针对于缓存区中的任意一个请求信息,在将该请求信息所要读取的目录发送给该请求信息对应的请求信息发送端后,将该请求信息从缓存区中删除,这样可以避免重复对已完成的请求信息进行匹配及发送其所要读取的目录,造成系统资源浪费的情况发生,提高了该目录读取方法的合理性。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个〃·····”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (8)
1.一种目录读取的方法,其特征在于,包括:
接收对目录缓存进行读取的第一请求信息;
确定所述第一请求信息所要读取的第一目录;
判断是否存在至少一个正在执行的第二请求信息,其中所述第二请求信息所要读取的第二目录与所述第一目录位于同一个缓存块上;
如果是,将所述第一请求信息缓存到预设的缓存区内,执行所述第二请求信息获取到包括所述第一目录及所述第二目录的第二缓存块后,根据所述第二缓存块及所述缓存区内的请求信息,将包括所述第一目录及所述第二目录在内的至少两个目录发送给对应的请求信息发送端;
如果不存在正在执行的所述第二请求信息,则直接执行所述第一请求信息,从所述目录缓存中获取包括所述第一目录的第一缓存块,根据所述第一缓存块及所述缓存区内的请求信息,将包括所述第一目录在内的至少一个目录发送给对应的请求信息发送端。
2.根据权利要求1所述的方法,其特征在于,
所述根据所述第二缓存块及所述缓存区内的请求信息,将包括所述第一目录及所述第二目录在内的至少两个目录发送给对应的请求信息发送端包括:
从所述第二缓存块中获取所述第二目录,将所述第二目录发送给所述第二请求信息对应的请求信息发送端;
针对于所述缓存区内的每一个请求信息,判断该请求信息所要读取的目录是否在所述第二缓存块内,如果是,将该请求信息所要读取的目录发送给该请求信息对应的请求信息发送端。
3.根据权利要求2所述的方法,其特征在于,
所述根据所述第一缓存块及所述缓存区内的请求信息,将包括所述第一目录在内的至少一个目录发送给对应的请求信息发送端包括:
从所述第一缓存块中获取所述第一目录,将所述第一目录发送给所述第一请求信息对应的请求信息发送端;
针对于所述缓存区内的每一个请求信息,判断该请求信息所要读取的目录是否在所述第一缓存块内,如果是,将该请求信息所要读取的目录发送给该请求信息对应的请求信息发送端。
4.根据权利要求1至3中任一所述的方法,其特征在于,
针对于所述缓存区内的每一个请求信息,将该请求信息所要读取的目录发送给该请求信息对应的请求信息发送端后,将该请求信息从所述缓存区中删除。
5.一种目录读取的装置,其特征在于,包括:接收单元、确定单元、判断单元及执行单元;
所述接收单元,用于接收对目录缓存进行读取的第一请求信息;
所述确定单元,用于确定所述接收单元接收到的第一请求信息所要读取的第一目录;
所述判断单元,用于判断是否存在至少一个正在执行的第二请求信息,其中所述第二请求信息所要读取的第二目录与所述确定单元确定出的第一目录位于同一个缓存块上;
所述执行单元,用于根据所述判断单元的判断结果,如果是,将所述第一请求信息缓存到预设的缓存区内,执行所述第二请求信息获取到包括所述第一目录及所述第二目录的第二缓存块后,根据所述第二缓存块及所述缓存区内的请求信息,将包括所述第一目录及所述第二目录在内的至少两个目录发送给对应的请求信息发送端,如果不存在正在执行的所述第二请求信息,则直接执行所述第一请求信息,从所述目录缓存中获取包括所述第一目录的第一缓存块,根据所述第一缓存块及所述缓存区内的请求信息,将包括所述第一目录在内的至少一个目录发送给对应的请求信息发送端。
6.根据权利要求5所述的装置,其特征在于,所述执行单元包括:发送子单元及判断子单元;
所述发送子单元,用于从所述第二缓存块中获取所述第二目录,将所述第二目录发送给所述第二请求信息对应的请求信息发送端;
所述判断子单元,用于针对于所述缓存区内的每一个请求信息,判断该请求信息所要读取的目录是否在所述第二缓存块内;
所述发送子单元,进一步用于根据所述判断子单元的判断结果,如果是,将该请求信息所要读取的目录发送给该请求信息对应的请求信息发送端。
7.根据权利要求5所述的装置,其特征在于,所述执行单元包括:发送子单元及判断子单元;
所述发送子单元,用于从所述第一缓存块中获取所述第一目录,将所述第一目录发送给所述第一请求信息对应的请求信息发送端;
所述判断子单元,用于针对于所述缓存区内的每一个请求信息,判断该请求信息所要读取的目录是否在所述第一缓存块内;
所述发送子单元,进一步用于根据所述判断子单元的判断结果,如果是,将该请求信息所要读取的目录发送给该请求信息对应的请求信息发送端。
8.一种目录读取的系统,其特征在于,包括:请求信息响应端、至少一个请求信息发送端及权利要求5至7中任一所述的目录读取的装置;
所述请求信息响应端,用于存储所述目录缓存;
所述请求信息发送端,用于向所述目录读取的装置中的接收单元发送请求信息,并接收所述目录读取的装置中的执行单元发送的目录。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610204376.3A CN105912477B (zh) | 2016-04-05 | 2016-04-05 | 一种目录读取的方法、装置及系统 |
PCT/CN2016/109580 WO2017173844A1 (zh) | 2016-04-05 | 2016-12-13 | 一种目录读取的方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610204376.3A CN105912477B (zh) | 2016-04-05 | 2016-04-05 | 一种目录读取的方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105912477A CN105912477A (zh) | 2016-08-31 |
CN105912477B true CN105912477B (zh) | 2019-01-01 |
Family
ID=56745137
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610204376.3A Active CN105912477B (zh) | 2016-04-05 | 2016-04-05 | 一种目录读取的方法、装置及系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN105912477B (zh) |
WO (1) | WO2017173844A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105912477B (zh) * | 2016-04-05 | 2019-01-01 | 浪潮电子信息产业股份有限公司 | 一种目录读取的方法、装置及系统 |
CN110765086B (zh) * | 2019-10-25 | 2022-08-02 | 浪潮电子信息产业股份有限公司 | 一种小文件的目录读取方法、系统、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1664795A (zh) * | 2005-03-30 | 2005-09-07 | 中国人民解放军国防科学技术大学 | 目录协议对多处理器结点内脏数据共享的支持方法 |
CN101354682A (zh) * | 2008-09-12 | 2009-01-28 | 中国科学院计算技术研究所 | 一种用于解决多处理器访问目录冲突的装置和方法 |
CN103544269A (zh) * | 2013-10-17 | 2014-01-29 | 华为技术有限公司 | 目录的存储方法、查询方法及节点控制器 |
CN104899160A (zh) * | 2015-05-30 | 2015-09-09 | 华为技术有限公司 | 一种缓存数据控制方法、节点控制器和系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7337280B2 (en) * | 2005-02-10 | 2008-02-26 | International Business Machines Corporation | Data processing system and method for efficient L3 cache directory management |
CN105912477B (zh) * | 2016-04-05 | 2019-01-01 | 浪潮电子信息产业股份有限公司 | 一种目录读取的方法、装置及系统 |
-
2016
- 2016-04-05 CN CN201610204376.3A patent/CN105912477B/zh active Active
- 2016-12-13 WO PCT/CN2016/109580 patent/WO2017173844A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1664795A (zh) * | 2005-03-30 | 2005-09-07 | 中国人民解放军国防科学技术大学 | 目录协议对多处理器结点内脏数据共享的支持方法 |
CN101354682A (zh) * | 2008-09-12 | 2009-01-28 | 中国科学院计算技术研究所 | 一种用于解决多处理器访问目录冲突的装置和方法 |
CN103544269A (zh) * | 2013-10-17 | 2014-01-29 | 华为技术有限公司 | 目录的存储方法、查询方法及节点控制器 |
CN104899160A (zh) * | 2015-05-30 | 2015-09-09 | 华为技术有限公司 | 一种缓存数据控制方法、节点控制器和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105912477A (zh) | 2016-08-31 |
WO2017173844A1 (zh) | 2017-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9832275B2 (en) | Message processing method, device and system for internet of things | |
CN103780679B (zh) | 基于http协议的长延时远程调用方法 | |
CN109831506A (zh) | 文件上传方法、装置、终端、服务器及可读存储介质 | |
CN115004673B (zh) | 消息推送方法、装置、电子设备及计算机可读介质 | |
CN110222116B (zh) | 一种交易数据存储的控制方法、装置及存储介质 | |
CN104092717A (zh) | 消息处理方法及系统、消息目的端设备与分布式消息系统 | |
CN113641604B (zh) | 一种数据传输方法及系统 | |
CN108055311B (zh) | Http异步请求方法、装置、服务器、终端和存储介质 | |
CN106936662A (zh) | 一种实现心跳机制的方法、装置及系统 | |
CN102333130A (zh) | 一种访问缓存服务器的方法、系统及缓存智能调度器 | |
CN104408068A (zh) | 一种报表数据处理方法及相关设备 | |
WO2017032152A1 (zh) | 将数据写入存储设备的方法及存储设备 | |
CN106034113A (zh) | 数据处理方法及装置 | |
CN111126604A (zh) | 模型训练方法、装置、服务器及存储介质 | |
CN107579929B (zh) | 一种可靠连接通信队列对的设置方法、系统及相关装置 | |
CN104317716A (zh) | 分布式节点间的数据传输方法及分布式节点设备 | |
CN105912477B (zh) | 一种目录读取的方法、装置及系统 | |
CN105574008A (zh) | 应用于分布式文件系统的任务调度方法和设备 | |
CN111404842B (zh) | 数据传输方法、装置及计算机存储介质 | |
CN113157465A (zh) | 基于指针链表的消息发送方法及装置 | |
CN113055493A (zh) | 数据包处理方法、装置、系统、调度设备和存储介质 | |
CN102984138A (zh) | 一种获取对象的方法、装置和系统 | |
CN117354956A (zh) | 基于5g的会话建立方法、装置、电子设备及存储介质 | |
CN102986173A (zh) | 消息状态设置方法和cpm业务服务器 | |
CN112688980A (zh) | 资源分发方法、装置、计算机设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |