CN108733678B - 一种数据搜索的方法、装置和相关设备 - Google Patents
一种数据搜索的方法、装置和相关设备 Download PDFInfo
- Publication number
- CN108733678B CN108733678B CN201710245610.1A CN201710245610A CN108733678B CN 108733678 B CN108733678 B CN 108733678B CN 201710245610 A CN201710245610 A CN 201710245610A CN 108733678 B CN108733678 B CN 108733678B
- Authority
- CN
- China
- Prior art keywords
- memory
- data
- processor
- search
- memory controller
- 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 85
- 230000015654 memory Effects 0.000 claims abstract description 686
- 238000010845 search algorithm Methods 0.000 claims abstract description 25
- 238000012545 processing Methods 0.000 claims description 87
- 238000013508 migration Methods 0.000 claims description 47
- 230000005012 migration Effects 0.000 claims description 47
- 238000004891 communication Methods 0.000 claims description 21
- 238000013507 mapping Methods 0.000 claims description 18
- 230000004044 response Effects 0.000 claims description 12
- 230000008569 process Effects 0.000 description 35
- 238000010586 diagram Methods 0.000 description 18
- 230000005540 biological transmission Effects 0.000 description 12
- 238000013500 data storage Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 8
- 239000004065 semiconductor Substances 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000000739 chaotic effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000007334 memory performance Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/502—Proximity
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开一种数据搜索的方法,该方法包括:第一处理器接收搜索请求消息,搜索请求消息中包括搜索条件和待搜索树的根节点的地址;根据搜索请求消息确定待搜索树的根节点的地址所在第一内存和管理第一内存的处理器关联的第一内存控制器;根据搜索请求消息和预置的搜索算法确定搜索指令;将搜索指令发送给第一内存控制器;接收第一内存控制器发送的第一数据,第一数据为第一内存中满足搜索条件的数据;接收第二内存控制器发送的第二数据,第二内存控制器为管理第二内存的处理器关联的内存控制器,第二内存为存储待搜索树的子树所在的内存,第二数据为第二内存中满足搜索条件的数据;根据第一数据和第二数据生成搜索结果。
Description
技术领域
本申请涉及计算机领域,尤其涉及计算设备内一种数据搜索的方法、装置、处理器、内存控制器和计算设备。
背景技术
随着计算机技术的发展,一个计算设备系统中可配置多个处理器。例如,中央处理器(central process unit,CPU),以此提高计算机系统的处理效率。图1A为现有技术中一种计算设备的系统架构示意图,如图所示,该系统中包括多个CPU,每个CPU配置一个缓存(cache)。多个CPU共用一个内存(main memory),每个CPU管理内存中一段存储区域。内存中存储数据的访问需要通过缓存进行,缓存是CPU的小型快速存储器,用于保存内存中常用数据的副本,以避免频繁访问外部的慢速大容量主存带来的网络损耗和时延问题,缓存内存储内存中数据的副本。
在常见的应用中,例如数据库,通常利用链表或树的结构存储数据。图1B为现有技术中链表和树的数据结构的示意图。每个链表或树的数据结构中包括大量节点,每个节点的内部结构相同,均包括数据和指针两部分。其中,指针的数量可以是一个或多个,指针用于标识不同数据在存储结构中的关联关系。当计算设备中任意一个CPU接收搜索指令时,该CPU会先从各个CPU对应的主存或缓存中获取该搜索指令相关的树或链表的完整的数据结构,并将该完整的数据结构存储在执行搜索指令的CPU的缓存中。然后再按照搜索关键词在该缓存中查找目标数据确定搜索结果。但是,在现有技术的处理过程中,接收搜索指令的CPU需要按照链表或树的数据结构依次获取根节点的数据,再根据该数据的指针向其他CPU获取下一个节点的数据。依此类推,每次数据获取和获取该数据指针所指向的下一个节点的数据的过程中,均需要经过两次网络延迟。其中,网络延迟是指每次接收搜索指令的CPU均需要经过节点控制器、处理器、缓存、主存的数据传输过程,每次网络延迟通常在300ns量级,两次网络延迟可达到600ns。因此,上述搜索过程会导致搜索耗时长。而且,在搜索过程中,由于需要计算设备中多个处理器多次执行指令获取数据,并将该数据发送给接收搜索指令的处理器,而导致整个系统性能下降的问题。
发明内容
本申请提供了一种数据搜索的方法、装置、处理器、内存控制器和计算设备,能够解决现有技术中搜索方法耗时长和影响整个系统性能的问题,降低数据搜索的时延,提高数据搜索过程效率和整个系统的性能。
第一方面,提供一种数据搜索的方法,该方法包括:计算设备中任意一个处理器接收搜索请求消息,该搜索请求消息中包括搜索条件和待搜索树的根节点的地址。首先,第一处理器可以先根据搜索请求消息中待搜索树的根节点的地址确定根节点的地址所在的第一内存和管理第一内存的处理器关联的第一内存控制器。然后,第一处理器会根据搜索请求消息和预置的搜索算法确定搜索指令,所述搜索指令中包括所述搜索条件、所述待搜索树的根节点的地址和所述第一处理器的标识,并将该搜索指令发送给第一内存控制器。然后,接收第一内存控制器发送的第一内存中满足搜索条件的第一数据,以及管理待搜索树的子树所在第二内存的处理器关联的第二内存控制器获取的满足搜索条件的第二数据。最后,第一处理器再根据第一数据和第二数据生成搜索结果。
可选地,搜索请求消息中还包括待搜索树的标识。搜索指令中还包括待搜索树的标识。
在一种可能的实现方式中,所述第一处理器根据搜索请求消息确定待搜索树的根节点的地址所在第一内存和管理所述第一内存的处理器关联的内存控制器,包括:首先,所述第一处理器根据所述待搜索树的根节点的地址确定所述待搜索树的根节点的地址所在所述第一内存。然后,根据预置的内存和处理器映射表确定与所述第一内存存在关联关系的所述管理所述第一内存的处理器。再根据处理器和内存控制器的映射关系确定管理所述第一内存的处理器关联的第一内存控制器。
在一种可能的实现方式中,所述第一处理器根据所述第一数据和第二数据生成搜索结果,包括:当数据搜索时间满足第一阈值时,所述第一处理器根据接收的第一数据和第二数据生成所述搜索结果;或者,当第一处理器获取的所述第一数据和所述第二数据的数量满足第二阈值时,所述第一处理器根据接收的第一处理器和所述第二处理器生成所述搜索结果。
在一种可能的实现方式中,所述第一处理器向所述计算设备中所有处理器发送查找请求消息,所述查找请求消息中携带所述待搜索树的标识,以指示所述计算设备中所有处理器根据所述待搜索树的标识确定所述各个处理器管理的内存中是否存储有所述待搜索树的子树;接收存储所述待搜索树的子树处理器发送的响应消息,所述响应消息用于指示处理器管理的内存中存储有所述待搜索树的子树;当所述第一处理器接收到所述第一内存控制器和所有管理所述待搜索树的子树所在内存的处理器关联的内存控制器发送的满足所述搜索条件的数据时,生成所述搜索结果。
通过上述内容的描述,当处理器接收到搜索请求消息时,可以将计算处理过程迁移到靠近数据的内存控制器中的迁移处理单元执行,降低了计算设备中各个处理器之间因将完整数据存储结构存储到接收搜索请求消息的处理器的缓存中所带来的网络延迟,提升了搜索过程的效率,降低了数据搜索处理的时延。进一步地,由于由数据就近的内存控制器中的迁移处理单元直接在其内存或缓存中进行搜索,避免将完整数据结构全部拷贝到接收搜索请求消息的处理器的缓存,由此减少了跨处理器、节点控制器、缓存和内存之间数据传输过程中所需传输的数据量,节省了数据传输的带宽。而且,由于接收搜索请求消息的处理器的缓存不在需要存储完整的数据结构,也同时减少了接收搜索请求消息的处理器的缓存的存储开销,提升了计算设备整体性能。
第二方面,本申请提供一种数据搜索的方法,该方法包括:第一内存控制器接收第一处理器发送的搜索指令,该搜索指令中包括搜索条件、待搜索树的根节点的地址和第一处理器的标识;待搜索树的根节点的地址所在内存为第一内存,第一内存控制器为管理第一内存的处理器关联的内存控制器。然后,第一内存控制器根据搜索指令在第一内存中查找满足搜索条件的数据,当第一内存中存在满足搜索条件的第一数据时,第一内存控制器获取第一数据,并根据第一处理器的标识将第一数据发送给第一处理器。当待搜索的树在第二内存中存在子树时,第一内存控制器将搜索指令发送给第二内存控制器,以使得第二内存控制器根据搜索指令在第二内存中查找满足搜索条件的数据,当第二内存中存在满足搜索条件的第二数据时,获取第二数据,并将第二数据发送给第一处理器;其中,第二内存为存储待搜索树的子树所在的内存,第二内存控制器为管理第二内存的处理器关联的内存控制器。
可选地,搜索请求消息中还包括待搜索树的标识。搜索指令中包括待搜索树的标识。
在一种可能的实现方式中,每个处理器中还包括缓存,第一内存控制器根据搜索指令在所述第一内存中查找目标数据,包括:根据第一内存的地址确定第一缓存中是否有第一内存的数据副本,当所述第一缓存中存在所述第一内存的数据副本时,在所述第一缓存中查找满足所述搜索条件的所述第一数据;或者,当第一缓存中不存在所述第一内存的数据副本时,将第一内存的数据加载到第一缓存中;其中,第一缓存为第一处理器中包括的缓存;第一内存控制器在第一缓存中查找满足搜索条件的第一数据。
根据上述内存的描述,当处理器接收到搜索请求消息时,由靠近数据的内存控制器中迁移处理单元根据搜索请求消息查找满足搜索请求消息的数据,降低了计算设备中各个处理器之间因将完整数据存储结构存储到接收搜索请求消息的处理器的缓存中所带来的网络延迟,提升了搜索过程的效率,降低了数据搜索处理的时延。
第三方面,本申请提供一种计算设备,计算设备中包括至少两个处理器和内存,所述至少两个处理器中每个处理器关联一个内存控制器,所述内存控制器用于实现所述每个处理器与所述内存之间的数据通信;所述计算设备中包括第一处理器、第一内存控制器、第二内存控制器;
所述第一处理器,用于接收搜索请求消息,所述搜索请求消息包括搜索条件和待搜索树的根节点的地址;根据所述搜索请求消息确定所述待搜索树的根节点的地址所在第一内存和管理所述第一内存的处理器关联的第一内存控制器;根据所述搜索请求消息和预置的搜索算法确定搜索指令,所述搜索指令中包括所述搜索条件、所述待搜索树的根节点的地址和所述第一处理器的标识;将所述搜索指令发送给所述第一内存控制器;接收所述第一内存控制器发送的第一数据,所述第一数据为所述第一内存中满足所述搜索条件的数据;接收所述第二内存控制器发送的第二数据,所述第二内存控制器为管理第二内存的处理器关联的内存控制器,所述第二内存为存储所述待搜索树的子树所在的内存,所述第二数据为所述第二内存中满足所述搜索条件的数据;根据所述第一数据和所述第二数据生成搜索结果;
所述第一内存控制器,用于接收第一处理器发送的所述搜索指令;根据所述搜索指令在所述第一内存中查找满足所述搜索条件的数据,当所述第一内存中存在满足所述搜索条件的第一数据时,获取所述第一数据,并根据所述第一处理器的标识将所述第一数据发送给所述第一处理器;当所述待搜索的树在第二内存中存在子树时,将所述搜索指令发送给所述第二内存控制器,其中,所述第二内存为存储所述待搜索树的所述子树所在的内存,所述第二内存控制器为管理所述第二内存的处理器关联的内存控制器;
所述第二内存控制器,用于接收所述第一内存控制器发送的所述搜索指令;根据所述搜索指令在所述第二内存中查找满足所述搜索条件的数据,当所述第二内存中存在满足所述搜索条件的第二数据时,获取所述第二数据,并根据所述第一处理器的标识将所述第二数据发送给所述第一处理器。
第四方面,本申请提供一种数据搜索的装置,该装置包括用于执行第一方面或第一方面任一种可能实现方式中数据搜索的方法的各个模块。
第五方面,本申请提供一种数据搜索的装置,该装置包括用于执行第二方面或第二方面任一种可能实现方式中数据搜索的方法的各个模块。
第六方面,本申请提供一种处理器,该处理器包括内存控制器、缓存和总线,所述内存控制器和缓存通过总线相通信,所述内存控制器中包括迁移处理电路、存储电路和总线,所述内存控制器中迁移处理电路和存储电路通过所述总线或直连方式相通信,所述内存控制器的存储电路中存储执行指令,所述处理器运行时,所述内存控制器执行所述内存控制器的存储电路中的执行指令以利用所述处理器中的硬件资源执行第一方面或第一方面任一种可能实现方式中数据搜索的方法的操作步骤。
第七方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行第一方面或第一方面中任一种可能实现方式所述的方法。
第八方面,本申请提供一种内存控制器,所述内存控制器中包括迁移处理电路、存储电路、通信电路和总线,所述迁移处理电路、存储电路、通信电路通过所述总线或直连方式相通信,所述存储电路中存储有中用于存储执行指令,所述内存控制器运行时,所述处理电路执行所述存储电路中的执行指令以利用所述内存控制器中的硬件资源执行第二方面或第二方面任一种可能实现方式所述的方法。
第九方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行第二方面或第二方面任一种可能实现方式所述的方法。
第十方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行第三方面或第三方面任一种可能实现方式所述的方法。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。
图1A为现有技术中一种计算设备系统架构的示意图;
图1B为现有技术中一种链表和树的结构的示意图;
图2A为本发明实施例提供的一种计算设备的系统架构的示意图;
图2B为本发明实施例提供的另一种计算设备的系统架构的示意图;
图3为本发明实施例提供的一种数据搜索的方法的示意性流程图;
图4为本发明实施例提供的另一种数据搜索的方法的示意图流程图;
图5为本发明实施例提供的一种数据搜索的装置500的结构示意图;
图6为本发明实施例提供的一种数据搜索的装置600的结构示意图;
图7为本发明实施例提供的一种数据搜索的处理器700的结构示意图;
图8为本发明实施例提供的一种数据搜索的内存控制器800的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行详细介绍。
图2A为本发明实施例提供的一种计算设备100的系统架构的示意图,如图所示,该计算设备100中包括节点控制器301、多个处理器和内存。其中,计算设备100可以是服务器、台式机、便携机或虚拟机等具有计算能力的设备。
节点控制器301用于实现多处理器之间的互联,处理器和节点控制器301之间可以通过片内互连总线通信。节点控制器可以是一块由多个电子器件组成的独立的硬件芯片,也可以是集成在处理器内部的硬件结构。图2A中以节点控制器为独立的硬件芯片为例。
值得说明的是,计算设备中不同处理器之间可以通过一个节点控制器301进行互联;也可以通过多个节点控制器301组成的交换网络进行互联,不同节点控制器301之间分工协作,共同实现多处理器之间的数据传输。为便于描述,本发明的以下实施例中以计算设备中仅包括一个节点控制器为例进行详细介绍。
图2A中计算设备100为多个处理器系统,本发明实施例的以下内容中以三个处理器为例进行描述。例如,计算设备100中包括处理器201、处理器211和处理器221。三个处理器共享一个内存的存储资源,每个处理器负责管理内存中一段存储空间。将处理器201所管理的内存中的存储空间标记为内存205,将处理器211所管理的内存中的存储空间标记为内存215,将处理器221所管理的内存中的存储空间标记为内存225。
值得说明的是,内存205、内存215和内存225分别为多个处理器所共享的内存中的一部分,内存205、内存215和内存225可以是内存中连续的存储空间,也可以是内存中间断的存储空间。另外,每个CPU管理的内存的存储空间的大小可以相同,也可以不同,具体实施过程中可以根据业务需求配置,本发明不作限制。
内存也称为主存,是CPU能够直接寻址的存储空间,可以由半导体器件制成,内存的特点是存取速率快,是计算设备的主要部件。我们平常使用的程序,如Windows操作程序、打字软件、游戏软件等,一般都是安装在硬盘等外存上的,但仅此是不能使用其功能的,必须把它们调入内存中进行处理。内存一般采用半导体存储单元,包括随机存储器(randomaccess memory,RAM)或闪存。内存可以用于存储应用程序的数据,如树或链表形式的数据,为便于表述,在本发明的以下实施例中以主存中存储的数据结构为树形式进行描述。
通常地,应用程序(例如数据库)会使用链表或树的结构存储数据。链表或树的数据结构可以按照预置算法存储,例如,连续存储的数据需要存储在不同处理器所对应的内存中。或者,可以配置每次数据的写入过程按照轮询的方式,依次由各个CPU分别进行处理,存储在其对应的内存中。数据的存储过程为现有技术,本发明不再赘述。本发明的以下描述中,以应用程序存储的结构为树结构为例进行描述。
每个树的数据存储结构中包括大量节点,每个节点的内部结构相同,均包括数据和指针两部分。其中,指针的数量可以是一个或多个,用于标识不同数据在存储结构中的关联关系。利用根节点标识树的数据存储结构中起始节点,对于同一个树而言,内存中存储有树的数据结构中根节点所在的一部分数据时,将该部分数据结构称为母树,内存中存储有非根节点的数据结构所在的部分数据时,将该部分数据结构称为子树。例如,如图2A所示,若内存215中存储有根节点所在的数据结构,那么内存215中存储的数据结构可称为母树,为便于后续表述,将内存215中存储的数据结构称为母树216。若同一树的数据结构分别存储在不同处理器管理的内存中,如内存205中存储有该树的数据结构中非根节点所在的一部分数据,则可以将内存205中存储的数据结构称为该树的子树,此处,将其记为子树206。依此类推,内存225中存储的数据结构可以称为子树226。
图2A所示的计算设备100中包括至少两个处理器,例如该计算设备100中包括处理器201、处理器211、处理器221。图2A中仅示出了三个处理器,具体实施过程中,该计算设备100中可以包括两个或两个以上处理器,本发明不做限制,为便于后续描述,本发明实施例中以计算设备100中包括三个处理器为例进行进一步详细描述。
每个处理器配置有一个缓存和至少一个内存控制器(memory controller,MC)。缓存用于存储该处理器管理的内存中数据的副本,以避免频繁访问外部的慢速大容量主存带来的网络损耗和时延问题。例如,图2A中,处理器201中配置缓存204,处理器211中配置缓存214、处理器221中配置缓存224。
处理器可以是CPU,也可以是其他通用处理器、数字信号处理器(digital signalprocessor,DSP)、可编程逻辑器件(programmable logic device,PLD)、实现专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件。通用处理器可以是微处理器或者是任何常规的处理器等。在本发明实施例的以下描述中,以处理器为CPU为例进行进一步详细描述。
内存控制器是计算设备内部控制内存与CPU之间交换数据的重要组成部分。内存控制器可以是一个独立的硬件芯片。内存控制器决定了计算设备所能使用的最大内存容量、内存类型和速度、内存颗粒数据深度和数据宽度等等重要参数,也就是说决定了计算设备的内存性能,从而也对计算设备的整体性能产生较大影响。传统地计算设备系统中,处理器没有管脚直接连接到内存,当处理器需要读取内存中目标数据时,处理器会把目标数据对应的内存地址传递给缓存,缓存会查找缓存中是否有这个内存地址对应的缓存段,如果有,则处理器可以直接读取目标数据;如果没有,内存控制器会将内存地址对应的数据加载到缓存中,处理器再读取目标数据。
进一步地,内存控制器中包括迁移处理单元(migrated processing unit,MPU)。每个处理器可以配置至少一个迁移处理单元。迁移处理单元由内存控制器中独立硬件构成,用于存储处理器中常用的功能子集,其中仅包括常见的定点算术运算,例如,加法、减法、乘法、除法、逻辑与、逻辑或、逻辑异或、内存读写和原子操作等。其中,原子操作是指处理器所执行的多个指令中存在顺序和连续的要求,指令执行过程中不能够出现中断,那么,每个指令所执行的操作即称为原子操作。例如,指令执行的过程是:首先,读取a参数对应的值;然后,对a参数对应的值加1;最后,将修改后的a参数写回原执行指令中。应理解的是,MPU中不包括任何复杂功能,如浮点、向量、系统状态操作和乱系流水线等。
图2B为本发明实施例提供的另一种计算设备100的系统架构示意图。图2B与图2A的区别在于,图2A中内存控制器集成在处理器内部,而图2B中内存控制器为独立于处理器的硬件结构。
接下来,结合图3进一步介绍本发明实施例提供的一种数据搜索的方法,如图所示,该方法包括:
S301、第一处理器接收搜索请求消息。
第一处理器为图2A或图2B中所示计算设备100中任意一个处理器。搜索请求消息可以是第一处理器接收用户发送的搜索请求消息,也可以是应用程序或其他处理器发送的搜索请求消息。搜索请求消息中携带搜索条件和待搜索树的根节点的地址。搜索条件可以是数据存储时任意一个参数,如名称、时间,或者存储数据的关键字。
可选地,搜索请求消息中还包括待搜索树的标识(identification)。
S302、第一处理器根据搜索请求消息确定待搜索树的根节点的地址所在的第一内存和管理第一内存的处理器关联的第一内存控制器。
具体地,第一处理器接收到搜索请求消息后,会按照如下步骤确定待搜索树的根节点所在内存和管理第一内存的处理器关联的第一内存控制器:
S3021、第一处理器将待搜索树的根节点的地址发送给第一处理器中的地址译码器。
地址译码器是处理器中用于解析地址访问关系的器件。地址译码器可以根据待搜索树的根节点的地址,确定其所在的内存地址。
S3022、地址译码器向第一处理器发送待搜索树的根节点的地址所在内存地址。
S3023、第一处理器根据待搜索树的根节点地址所对应的内存地址,以及预置的内存和处理器的映射关系确定管理待搜索树的根节点的地址所在内存的处理器。
第一处理器中存储有预置的内存和处理器的映射关系,当第一处理器获取待搜索树的根节点地址所在内存地址时,可以根据预置的内存和处理器的映射关系确定待搜索树的根节点地址所在内存地址所对应的处理器,即管理待搜索树的根节点地址所在内存的处理器。
S3024、第一处理器根据预置的处理器和内存控制器的映射关系确定与管理待搜索树的根节点的地址所在内存的处理器关联的第一内存控制器。
第一处理器中存储有预置的处理器和内存控制器的映射关系,在第一处理器确定待搜索树的根节点地址所在内存地址所对应的处理器后,第一处理器可以根据预置的处理器和内存控制器的映射关系确定与待搜索树的根节点地址所在内存地址所对应的处理器关联的内存控制器,为便于后续描述,将该内存控制器记为第一内存控制器。
S303、第一处理器根据搜索请求消息和预置的搜索算法确定搜索指令。
在图2A和图2B所示的计算设备中,内存中还存储有预置的搜索算法,该预置的搜索算法用于控制搜索过程中各个内存控制器执行搜索请求消息的先后顺序或时间,以及搜索规则。可以存储在任意一个处理器所管理的内存中。通常地,在计算设备中仅一个处理器可以执行该搜索算法。例如,如图2A所示的计算设备中,预置的搜索算法存储在内存215中,处理器201可以执行该搜索算法。
当第一处理器接收到搜索请求消息时,可以通知计算设备中能够执行预置的搜索算法的处理器根据搜索请求消息中的搜索条件和预置的搜索算法生成搜索指令。该搜索指令中包括搜索条件、待搜索树的根节点的地址和第一处理器的标识。
可选地,该搜索指令中还可以包括待搜索树的标识。当内存中存在多个树的数据结构时,可以先根据待搜索树的标识区分所需查找的目标树的数据结构,然后再按照搜索条件查找满足搜索条件的数据。
第一处理器确定搜索指令的过程包括以下两种情况中任意一种:
情况一:接收搜索请求消息的处理器为可以执行搜索算法的处理器,即第一处理器为可以执行搜索算法的处理器。当第一处理器接收搜索请求消息时,可以根据预置的搜索算法和搜索条件直接生成搜索指令。
情况二:接收搜索请求消息的处理器与可执行搜索算法的处理器不是同一处理器。即第一处理器不能执行搜索算法。当第一处理器接收搜索请求消息时,第一处理器通过节点控制器向可执行搜索算法的处理器发送搜索请求消息,由可执行搜索算法的处理器根据搜索请求消息中搜索条件和预置的搜索算法生成搜索指令,并将该搜索指令发送给第一处理器。
值得说明的是,本发明实施例中,步骤S302和步骤S303的执行无先后顺序关系,可以向执行步骤S302,再执行步骤S303。也可以先执行步骤S303,再执行步骤S302。或者,同时执行步骤S302和步骤S303。
S304、第一处理器向第一内存控制器发送搜索指令。
具体地,在图2A和图2B所示的计算设备中,处理器和第一内存控制器之间的搜索指令传输过程包括:首先,由发送搜索指令的处理器通过节点控制器构成的网络将搜索指令发送给接收搜索指令的处理器;然后,再由接收搜索指令的处理器将搜索指令发送给该处理器关联的内存控制器;最后,再由内存控制器中迁移处理单元执行。由于迁移处理单元中存储有处理器中常用的功能子集,可以快速完成搜索指令的搜索过程,提高搜索效率。
相应地,当步骤S302中确定的待搜索树的根节点的地址所在的内存由其他处理器管理时,例如,待搜索树的根节点的地址所在的内存由第二处理器管理,其搜索过程包括:第一处理器需要先将搜索指令通过节点控制器构成的网络将搜索指令发送给第二处理器;再由第二处理器将搜索指令发送给第一内存控制器;最后,再由第一内存控制器中第一迁移处理单元执行搜索指令。其中,第二处理器为步骤S302中第一处理器确定的待搜索树的根节点所在的内存对应的处理器,第一内存控制器为第二处理器关联的内存控制器,第一迁移处理单元为第一内存控制器中的迁移处理单元。
示例地,如图2A所示的计算设备中,假设处理器201接收到搜索请求消息,待搜索树的根节点所在的内存对应的处理器为处理器211,那么,处理器201会先将搜索指令通过节点控制器301发送给处理器211;然后,再由处理器211将搜索指令发送给内存控制器212;最后,再由内存控制器212中迁移处理单元213完成进一步地搜索处理。
可选地,当步骤S302中确定的待搜索树的根节点的地址所在的内存由第一处理器管理时,即待搜索树的根节点的地址所在的内存由接收搜索请求消息的处理器管理,那么,第一处理器直接将搜索指令发送给第一处理器关联的内存控制器,并由该内存控制器中的迁移处理单元完成进一步地搜索处理。
示例地,如图2A所示的计算设备中,假设处理器201接收到搜索请求消息,待搜索树的根节点所在的内存对应的处理器为处理器201,那么,处理器201会先将搜索指令发送给内存控制器202;然后,再由内存控制器202中的迁移处理单元203完成进一步地搜索处理。
S305、当第一内存中存在满足搜索条件的数据时,第一内存控制器根据搜索指令获取满足搜索条件的第一数据。
具体地,第一内存为待搜索树的母树所在的内存。第一内存控制器在接收到搜索指令后,由第一内存控制器中的第一迁移处理单元先确定在管理第一内存的处理器的缓存中是否有对应的缓存段。如果有,直接按照搜索条件获取满足搜索条件的数据。此处,将第一内存中满足搜索条件的数据记为第一数据。如果没有,会将第一内存的地址对应的数据加载到缓存中;然后,第一迁移处理单元再去按照搜索条件获取第一数据。
值得说明的是,通常地,内存控制器读取内存中数据的方式为:先将内存地址中数据加载到缓存中,然后再在缓存中读取所需数据,以此提高内存控制器读取数据的效率。
S306、第一内存控制器向第一处理器发送第一数据。
具体地,第一内存控制器在获取满足搜索条件的第一数据后,会将第一数据传输给第一处理器,其传输过程与步骤S304类似。
当步骤S302确定的待搜索树的根节点所在的内存对应的处理器为第二处理器时,即管理待搜索树的根节点所在内存的处理器与接收搜索请求消息的处理器不同。第一内存控制器需要先将第一数据发送给第二处理器;然后,第二处理器再将第一数据经过节点控制器发送给第一处理器。
当步骤S302确定的待搜索树的根节点所在的内存对应的处理器为第一处理器时,即管理待搜索树的根节点所在内存的处理器与接收搜索请求消息的处理器相同,第一数据已存储在第一处理器的缓存中,此时,第一内存控制器只需通知第一处理器第一数据的存储位置。
S307、第一处理器接收第一数据,并将第一数据存储在第一处理器的缓存中。
S308、当第一内存控制器确定待搜索树在其他处理器管理的内存中存在子树时,向第二内存控制器发送搜索指令。
第一内存控制器在步骤S305中,从待搜索树的根节点的地址开始,依次搜索根节点所在的母树中各个节点的数据是否满足搜索条件。在搜索过程中,第一内存控制器需要根据各个节点中指针信息获取下一个节点的数据,指针信息通常利用内存地址表示。当第一内存控制器通过指针信息确定该指针信息所指示的内存地址不属于当前处理器所管理的内存时,则可以进一步确定在其他处理器管理的内存中存储有待搜索树的子树。具体地,第一内存控制器记录有第一内存的地址范围,第一内存控制器可以根据指针信息所指示的内存地址确定其是否在第一内存的地址范围内。如果在,则可确定该指针所指示的下一个数据在第一内存中。如果不在,则可确定该指针所指示的下一个数据在其他内存中。第一内存控制器可以将该指针所指示的内存地址发送给第一处理器,第一处理器可以根据预置的内存和处理器的映射关系确定该指针所指示的内存地址对应的处理器。
第一内存控制器可以将指向子树的指针信息发送给第一处理器,第一处理器根据内存和处理器的映射关系确定待搜索树的子树所在内存对应的处理器。由第一处理器将搜索指令发送给待搜索树的子树所在内存对应的处理器。为便于后续描述,将待搜索树的子树所在内存记为第二内存,将管理第二内存的处理器记为第三处理器,第三处理器关联的内存控制器是第二内存控制器,第二内存控制器中由包括第二迁移处理单元。
由上述内容可知,应用程序的数据在存储时,可能同一个树的数据结构会分别存储在不同处理器对应的内存中。当第一内存控制器在母树所在的内存搜索满足搜索条件的数据时,如果发现该母树中有指针指向其他内存的地址信息,第一内存控制器还需要将搜索指令发送给管理子树所在内存的处理器关联的内存控制器,由该内存控制器中的迁移处理单元进一步完成搜索处理。
值得说明的是,第一内存控制器查找满足搜索条件的数据的过程,以及管理待搜索树的子树所在内存的处理器关联的内存控制器查找满足搜索条件的数据的过程可以同时进行;也可以是第一内存控制器先在第一内存中查找完满足搜索条件的数据后,再将搜索指令迁移到管理待搜索树的子树所在内存的处理器关联的内存控制器。
S309、当待搜索树的子树中存在满足搜索条件的数据时,第二内存控制器根据搜索指令获取满足搜索条件的第二数据。
S310、第二内存控制器向第一处理器发送第二数据。
S311、第一处理器接收第二数据,并将第二数据存储在第一处理器的缓存中。
步骤S309至步骤S311的处理过程与步骤S305和步骤S307的处理过程相同,此处不再赘述。将第二迁移处理单元根据搜索指令获取的搜索结果成为第二数据。
S312、第一处理器根据第一数据和第二数据生成搜索结果。
当接收到管理待搜索树的母树和子树所在内存的处理器关联的内存控制器发送的数据时,第一处理器根据获取的第一数据和第二数据确定搜索请求消息的搜索结果。
具体地,第一处理器可以按照预置规则将第一数据和第二数据进行汇总得到汇总后的搜索结果。汇总第一数据和第二数据的方式可以是按照接收时间进行排序,分别记录发送满足搜索条件的数据的内存控制器和满足搜索条件的数据。也可以是按照发送满足搜索条件的数据的内存控制器进行排序,依次列举发送满足搜索条件的数据的内存控制器和满足搜索条件的数据。
作为本发明的一个可能的实施例,第一处理器也可以设置预设条件,当满足预设条件时,根据获取的满足搜索条件的数据生成搜索结果。预设条件可以是以下方式中的至少一种:
方式一:当数据搜索时间满足第一阈值时,第一处理器根据第一数据和第二数据生成搜索结果。
方式二:当第一处理器获取的第一数据和第二数据的数量满足第二阈值时,第一处理器根据第一数据和第二数据生成搜索结果。
其中,第一阈值为大于1的正整数,为避免计算设备中网络或硬件故障而导致第一处理器无法接收到内存控制器发送的满足搜索条件的数据,可以根据第一阈值限定数据搜索时间,当数据搜索时间满足第一阈值时,即将第一处理器所获取的数据进行汇总,生成搜索结果。同样地,可以根据第一处理器获取的满足搜索条件的数据的个数是否满足第二阈值来决定何时生成搜索结果。
作为本发明的另一个可能的实施例,第一处理器在接收到搜索请求消息后,也可以向计算设备中所有处理器发送查找请求消息,该查找请求消息中携带待搜索树的标识。当其他处理器接收到该查找请求消息时,可以根据待搜索树的标识确定其管理的内存中是否存储有待搜索树的子树。如果有,则其他处理器则向第一处理器发送响应消息,该响应消息用于指示该处理器的内存中存储有待搜索树的子树。第一处理器可以记录计算设备中所有存储有待搜索树的子树的信息,每个存储有待搜索树的子树的内存关联的内存控制器在执行完搜索指令后,会向第一处理器发送满足搜索条件的数据或无满足搜索条件的数据的响应信息。当第一处理器接收到所有管理待搜索树的子树所在内存的处理器关联的内存控制器发送的数据时,第一处理器再根据获取的数据生成搜索结果。
示例地,在图2A所示的计算设备100中,当处理器201接收到搜索请求消息后,可以向处理器211和处理器221发送查找请求消息,该查找请求消息中携带的待搜索树的ID。处理器201自身也会在其管理的内存205中查询是否存储有待搜索树的子树,并记录查询结果。处理器211在接收到处理器201发送的查找请求消息时,会根据待搜索树的ID在其管理的内存215中查询是否存储有待搜索树的子树,并将查询结果发送给处理器201。同样地,处理器221也会根据待搜索树的ID在其管理的内存225中查询是否存储有待搜索树的子树,并将查询结果发送给处理器201。处理器201记录计算设备中各个处理器发送的查询结果,当接收到所有管理待搜索树所在内存的处理器关联的内存控制器发送的满足搜索条件的数据和无满足搜索条件的数据的响应信息时,根据获取的数据生成搜索结果。
通过上述内容的描述,当处理器接收到搜索请求指令时,可以将搜索处理过程迁移到靠近数据的内存控制器中的迁移处理单元执行,降低了计算设备中各个处理器之间因将数据存储结构存储到该处理器的缓存中所带来的网络延迟,提升了搜索过程的效率,降低了数据搜索处理的时延。进一步地,由于由数据就近的内存控制器中的迁移处理单元直接在其内存中进行搜索,避免将完整数据结构全部拷贝到执行搜索指令的处理器的缓存,由此减少了跨处理器、节点控制器、缓存和内存的所需传输的数据量,节省了数据传输的带宽。而且,由于执行搜索指令的处理器的缓存不在需要存储完整的数据结构,也同时减少了接收搜索请求消息的处理器的缓存的存储开销,提升了计算设备整体性能。
进一步地,以图2A所示的计算设备100和数据存储结构为例,结合图4进一步解释本申请中提供的一种数据搜索的方法。
在计算设备100中,处理器201接收搜索请求消息,该搜索请求消息中待搜索树的ID为1、待搜索树的根节点的地址为“101XX”,搜索条件为查找1月1日到1月2日存储的数据。假设满足搜索条件的数据为母树217中黑色圆点标记的节点、子树227中黑色圆点标记的节点和子树206中黑色圆点标记的节点。处理器201的具体处理过程如下:
S401、CPU201接收搜索请求消息。
S402、CPU201根据搜索请求消息确定待搜索树的根节点的地址所在的内存和管理该内存的处理器关联的内存控制器。
具体地,CPU201可以根据待搜索树的根节点的地址确定待搜索树的根节点所在内存为内存215。然后,根据预置的内存和处理器的映射关系确定管理内存215的处理器为处理器211。再根据预置的处理器和内存控制器的映射关系确定与处理器211关联的内存控制器为内存控制器212。
S403、CPU201根据搜索请求消息和预置的搜索算法确定搜索指令。
S404、CPU201将搜索指令发送给CPU211。
S405、CPU211将搜索指令发送给内存控制器212。
值得说明的是,在计算设备内部,处理器和内存控制器之间数据传输过程需要经过节点控制器构成的网络和处理器。例如,若CPU201需要将搜索指令发送给内存控制器212,那么,数据传输过程会从CPU201经节点控制器301传输给CPU211,然后CPU211再将搜索指令发送给内存控制器212。
S406、当内存215中存在满足搜索条件的数据时,由内存控制器212中迁移处理单元213根据搜索指令获取满足搜索条件的第一数据。
S407、内存控制器212向CPU211发送第一数据。
S408、处理器211向CPU201发送第一数据。
S409、处理器201接收第一数据,并将第一数据存储在缓存204中。
S410、当内存控制器212确定CPU221的内存225中存储有待搜索树的子树226时,向CPU221发送搜索指令。
S411、CPU221向内存控制器222发送搜索指令。
S412、当内存225中存在满足搜索条件的数据时,内存控制器222中迁移处理单元223根据搜索指令在内存225中获取满足搜索条件的第二数据。
S413、内存控制器222向CPU221发送第二数据。
S414、CPU221向CPU201发送第二数据。
S415、CPU201接收第二数据,并将第二数据存储在缓存204中。
S416、当内存控制器212确定CPU201的内存205中存储有待搜索树的子树206时,向CPU201发送搜索指令。
S417、CPU201向内存控制器202发送搜索指令。
S418、当内存205中存在满足搜索条件的数据时,内存控制器202中的迁移处理单元203根据搜索指令获取满足搜索条件的第三数据。
S419、内存控制器202向CPU201发送存储第三数据的内存地址信息。
S420、CPU201根据获取的第一数据、第二数据和第三数据生成搜索结果。
值得说明的是,当管理根节点所在的内存的处理器关联的内存控制器在搜索过程中发现其他内存中存储有待搜索树的子树时,可以直接将搜索指令发送给该内存对应的内存控制器,由该内存控制器中迁移处理单元完成进一步的搜索过程。也可以是在管理根节点所在的内存的处理器所关联的内存控制器完成搜索后,再向管理待搜索树的子树所在内存的处理器关联的内存控制器发送搜索指令,再由内存控制器中迁移处理单元完成进一步地搜索过程。若待搜索树的子树分别存储在不同内存中,管理根节点所在的内存的处理器关联的内存控制器可以逐个向管理待搜索树的子树所在内存的处理器关联的内存控制器发送搜索指令;也可以同时向所有管理待搜索树的子树所在内存的处理器关联的内存控制器发送搜索指令。通过上述步骤的描述,接收搜索请求消息的CPU201可以将搜索指令发送给待搜索树的母树或子树所在内存对应的内存控制器,由该内存控制器中迁移处理单元在内存或缓存中查找满足搜索条件的数据,就近完成数据搜索过程,以此避免处理器之间将待搜索树的完整结构存储到CPU201的缓存所带来的网络延迟问题,提高数据搜索的效率。
应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
值得说明的是,对于上述方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明所必须的。
本领域的技术人员根据以上描述的内容,能够想到的其他合理的步骤组合,也属于本发明的保护范围内。其次,本领域技术人员也应该熟悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明所必须的。
上文中结合图2A至图4,详细描述了根据本发明实施例所提供的数据搜索的方法,下面将结合图5至图7,描述根据本发明实施例所提供的数据搜索的装置、处理器和计算设备。
图5为本发明实施例提供的一种数据搜索的装置500的示意图,所述装置500对应图3中第一处理器。如图所示,所述装置500包括接收单元501、处理单元502、生成单元503和发送单元504。
所述接收单元501,用于接收搜索请求消息,所述搜索请求消息包括搜索条件和待搜索树的根节点的地址。
所述处理单元502,用于根据所述搜索请求消息确定所述待搜索树的根节点的地址所在第一内存和管理所述第一内存的处理器关联的第一内存控制器;
所述生成单元503,用于根据所述搜索请求消息和预置的搜索算法确定搜索指令,所述搜索指令中包括所述搜索条件、所述待搜索树的根节点的地址和所述装置的标识;
所述发送单元504,用于将所述搜索指令发送给所述第一内存控制器;
所述接收单元501,还用于接收所述第一内存控制器发送的第一数据,所述第一数据为所述第一内存中满足所述搜索条件的数据;接收第二内存控制器发送的第二数据,所述第二内存控制器为管理第二内存的处理器关联的内存控制器,所述第二内存为存储所述待搜索树的子树所在的内存,所述第二数据为所述第二内存中满足所述搜索条件的数据;
所述生成单元503,还用于根据所述第一数据和所述第二数据生成搜索结果。
可选地,所述处理单元502根据搜索请求消息确定待搜索树的根节点的地址所在第一内存和管理所述第一内存的处理器关联的第一内存控制器,包括:
根据所述待搜索树的根节点的地址确定所述待搜索树的根节点的地址所在所述第一内存;
根据预置的内存和处理器映射表确定与所述第一内存存在关联关系的所述管理所述第一内存的处理器;
所述第一处理器根据预置的处理器和内存控制器的映射关系确定与所述管理所述第一内存的处理器关联的所述第一内存控制器。
可选地,所述生成单元503根据所述第一数据和第二数据生成搜索结果,包括:
当搜索时间满足第一阈值时,根据接收的第一数据和第二数据生成所述搜索结果;或者,当所述接收单元获取的满足所述搜索条件的数据的数量满足第二阈值时,根据接收的第一处理器和所述第二处理器生成所述搜索结果。
可选地,所述搜索请求消息中还包括待搜索树的标识,所述发送单元504,还用于向所述计算设备中所有处理器发送查找请求消息,所述查找请求消息中携带所述待搜索树的标识;
所述接收单元501,还用于接收存储所述待搜索树的子树处理器发送的响应消息,所述响应消息用于指示处理器管理的内存中存储有所述待搜索树的子树;
所述生成单元503,还用于当所述接收单元接收到所述第一内存控制器和所有管理所述待搜索树的子树所在内存的处理器关联的内存控制器发送的满足所述搜索条件的数据时,生成所述搜索结果。
根据本发明实施例的装置500可对应于执行本发明实施例中描述的方法,并且装置500中的各个单元的上述和其它操作和/或功能分别为了实现图3中第一处理器为执行主体的所述方法的相应流程,为了简洁,在此不再赘述。
图6为本发明实施例提供的一种数据搜索的装置600的结构示意图,该装置600对应图3中第一内存控制器。该装置600包括接收单元601、处理单元602和发送单元603。
所述接收单元601,用于接收第一处理器发送的搜索指令,所述搜索指令中包括搜索条件、待搜索树的根节点的地址和所述第一处理器的标识,所述待搜索树的根节点的地址所在内存为第一内存,所述第一内存控制器为管理所述第一内存的处理器关联的内存控制器;
所述处理单元602,用于根据搜索指令在所述第一内存中查找满足所述搜索条件的数据,当所述第一内存中存在满足所述搜索条件的第一数据时,所述第一内存控制器获取所述第一数据,并根据所述第一处理器的标识将所述第一数据发送给所述第一处理器;
所述发送单元603,用于当所述待搜索的树在第二内存中存在子树时,将所述搜索指令发送给所述第二内存控制器。
可选地,所述处理单元602根据所述搜索指令在所述第一内存中查找满足所述搜索条件的数据,包括:
根据所述第一内存的地址确定第一缓存中是否有所述第一内存的数据副本,当所述第一缓存中存在所述第一内存的数据副本时,在所述第一缓存中查找满足所述搜索条件的所述第一数据;或者,当所述第一缓存中不存在所述第一内存的数据副本时,将所述第一内存的数据加载到所述第一缓存中;其中,所述第一缓存为所述第一处理器中包括的缓存;在所述第一缓存中查找满足所述搜索条件的所述第一数据。
根据本发明实施例的装置500可对应于执行本发明实施例中描述的方法,并且装置500中的各个单元的上述和其它操作和/或功能分别为了实现图3中第一内存控制器为执行主体的所述方法的相应流程,为了简洁,在此不再赘述。
图7为本发明实施例提供的一种处理器700的示意图,如图所示,所述处理器700包括处理电路701、内存控制器702、缓存703和总线704。其中,处理电路701、内存控制器702、缓存703通过总线704进行通信。内存控制器702中包括迁移处理电路7021、存储电路7022、通信电路7023和总线7024,所述内存控制器702中迁移处理电路7021、存储电路7022、通信电路7023通过总线7024相通信。内存控制器702的存储电路7022用于存储指令,该内存控制器702用于执行所述内存控制器702的存储电路7022存储的指令。该所述内存控制器702的存储电路7022存储程序代码,且内存控制器702可以调用所述内存控制器702的存储电路7022中存储的程序代码执行以下操作:
接收搜索请求消息,所述搜索请求消息包括搜索条件和待搜索树的根节点的地址;
根据所述搜索请求消息确定所述待搜索树的所述根节点的地址所在第一内存和管理所述第一内存的处理器关联的第一内存控制器;
根据所述搜索请求消息和预置的搜索算法确定搜索指令,所述搜索指令中包括所述搜索条件、所述待搜索树的根节点的地址和所述处理器700的标识;
将所述搜索指令发送给所述第一内存控制器;
接收所述第一内存控制器发送的第一数据,所述第一数据为所述第一内存中满足所述搜索条件的数据;
接收第二内存控制器发送的第二数据,所述第二内存控制器为管理第二内存的处理器关联的内存控制器,所述第二内存为存储所述待搜索树的子树所在的内存,所述第二数据为所述第二内存中满足所述搜索条件的数据;
根据所述第一数据和所述第二数据生成搜索结果。
应理解,在本发明实施例中,该处理电路701可以是专用集成电路(applicationspecific integrated circuit,ASIC)、可编程逻辑器件(programmable logic device,PLD),现场可编程门阵列(field-programmable gate array,FPGA)、或者其他可编程逻辑器件。
该总线704为片内互连总线。处理电路701、内存控制器702、缓存703之间也可以通过直连的方式相通信。例如,处理电路701、内存控制器702、缓存703采用开关或直连电路连线方式进行通信。
该迁移处理电路7021可以是专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件等。
该存储电路7022可以包括随机存取存储器,并向迁移处理电路701提供指令和数据。存储电路7022还可以包括非易失性随机存取存储器。
该通信电路7023可以为通信接口,用于内存控制器702与其他硬件电路进行通信。
该总线7024包括片内互连总线。迁移处理电路7021、存储电路7022和通信电路7023还可以通过直连方式相通信。例如,迁移处理电路7021、存储电路7022和通信电路7023通过开关或直连电路连线方式进行通信。
应理解,根据本发明实施例的处理700对应于本发明实施例提供的装置500,该处理器700用于实现图3中所示方法中第一处理器执行的相应流程,为了简洁,在此不再赘述。
图8为本发明实施例提供的一种内存控制器800的示意图,如图所示,所述内存控制器中包括迁移处理电路801、存储电路802、通信电路803和总线804,所述迁移处理电路801、存储电路802和通信电路803通过总线804相通信,所述存储电路802中存储有中用于存储执行指令,所述内存控制器800运行时,所述迁移处理电路801执行所述存储电路802中的执行指令以利用所述内存控制器800中的硬件资源执行以下操作:
接收第一处理器发送的搜索指令,所述搜索指令中包括搜索条件和待搜索树的根节点的地址,所述待搜索树的根节点的地址所在内存为第一内存,所述第一内存控制器为管理所述第一内存的处理器关联的内存控制器;
根据搜索指令在所述第一内存中查找满足所述搜索条件的数据,当所述第一内存中存在满足所述搜索条件的第一数据时,所述第一内存控制器获取所述第一数据,并将所述第一数据发送给所述第一处理器;
当所述待搜索的树在第二内存中存在子树时,将所述搜索指令发送给所述第二内存控制器,以使得所述第二内存控制器根据所述搜索指令在所述第二内存中查找满足所述搜索条件的数据,当所述第二内存中存在满足所述搜索条件的第二数据时,获取所述第二数据,并将所述第二数据发送给所述第一处理器;其中,所述第二内存为存储所述待搜索树的所述子树所在的内存,所述第二内存控制器为管理所述第二内存的处理器关联的内存控制器。
应理解,在本发明实施例中,该迁移处理电路801可以是专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件等。
该存储电路802可以包括随机存取存储器,并向迁移处理电路801提供指令和数据。存储电路802还可以包括非易失性随机存取存储器。例如,存储电路802还可以存储设备类型的信息。
该通信电路803可以为通信接口,用于内存控制器800与其他硬件电路进行通信。
该总线804除包括片内互连总线之外,还可以直连方式将迁移处理电路801、存储电路802和通信电路803相通信。例如,迁移处理电路801、存储电路802和通信电路803通过开关或直连电路方式进行通信。
应理解,根据本发明实施例的内存控制器800对应于本发明实施例提供的装置600,该内存控制器800用于实现图3中所示方法中第一内存控制器执行的相应流程,为了简洁,在此不再赘述。
如图2A或2B所示,本发明实施例还提供一种计算设备,该所述计算设备中包括至少两个处理器和内存,所述至少两个处理器中每个处理器关联至少一个内存控制器,所述至少一个内存控制器中每个内存控制器用于所述每个处理器与所述内存之间的数据通信;所述计算设备中包括第一处理器、第一内存控制器、第二内存控制器;
所述第一处理器,用于接收搜索请求消息,所述搜索请求消息包括搜索条件和待搜索树的根节点的地址;根据所述搜索请求消息确定所述待搜索树的根节点的地址所在第一内存和管理所述第一内存的处理器关联的第一内存控制器;根据所述搜索请求消息和预置的搜索算法确定搜索指令,所述搜索指令中包括所述搜索条件、所述待搜索树的根节点的地址和所述第一处理器的标识;将所述搜索指令发送给所述第一内存控制器;接收所述第一内存控制器发送的第一数据,所述第一数据为所述第一内存中满足所述搜索条件的数据;接收第二内存控制器发送的第二数据,所述第二内存控制器为管理第二内存的处理器关联的内存控制器,所述第二内存为存储所述待搜索树的子树所在的内存,所述第二数据为所述第二内存中满足所述搜索条件的数据;根据所述第一数据和所述第二数据生成搜索结果;
所述第一内存控制器,用于接收第一处理器发送的所述搜索指令;根据所述搜索指令在所述第一内存中查找满足所述搜索条件的数据,当所述第一内存中存在满足所述搜索条件的第一数据时,获取所述第一数据,并根据所述第一处理器的标识将所述第一数据发送给所述第一处理器;当所述待搜索的树在第二内存中存在子树时,将所述搜索指令发送给所述第二内存控制器,其中,所述第二内存为存储所述待搜索树的所述子树所在的内存,所述第二内存控制器为管理所述第二内存的处理器关联的内存控制器;
所述第二内存控制器,用于接收所述第一内存控制器发送的所述搜索指令;根据所述搜索指令在所述第二内存中查找满足所述搜索条件的数据,当所述第二内存中存在满足所述搜索条件的第二数据时,获取所述第二数据,并根据所述第一处理器的标识将所述第二数据发送给所述第一处理器。
综上所述,当处理器接收到搜索请求消息时,可以将计算处理过程迁移到靠近数据的内存控制器中的迁移处理单元执行,降低了计算设备中各个处理器之间因将完整数据存储结构存储到接收搜索请求消息的处理器的缓存中所带来的网络延迟,提升了搜索过程的效率,降低了数据搜索处理的时延。进一步地,由于由数据就近的内存控制器中的迁移处理单元直接在其内存或缓存中进行搜索,避免将完整数据结构全部拷贝到接收搜索请求消息的处理器的缓存,由此减少了跨处理器、节点控制器、缓存和内存之间数据传输过程中所需传输的数据量,节省了数据传输的带宽。而且,由于接收搜索请求消息的处理器的缓存不在需要存储完整的数据结构,也同时减少了接收搜索请求消息的处理器的缓存的存储开销,提升了计算设备整体性能。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘(solid state disk,SSD)。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述,仅为本发明的具体实施方式。熟悉本技术领域的技术人员根据本发明提供的具体实施方式,可想到变化或替换。
Claims (15)
1.一种数据搜索的方法,其特征在于,所述方法包括:
第一处理器接收搜索请求消息,所述第一处理器为计算设备中任意一个处理器,所述搜索请求消息包括搜索条件和待搜索树的根节点的地址;
所述第一处理器根据所述搜索请求消息确定所述待搜索树的所述根节点的地址所在第一内存和管理所述第一内存的处理器关联的第一内存控制器;
所述第一处理器根据所述搜索请求消息和预置的搜索算法确定搜索指令,所述搜索指令中包括所述搜索条件、所述待搜索树的根节点的地址和所述第一处理器的标识;
所述第一处理器将所述搜索指令发送给第一内存控制器;
所述第一处理器接收所述第一内存控制器发送的第一数据,所述第一数据为所述第一内存中满足所述搜索条件的数据;
所述第一处理器接收第二内存控制器发送的第二数据,所述第二内存控制器为管理第二内存的处理器关联的内存控制器,所述第二内存为存储所述待搜索树的子树所在的内存,当所述待搜索树在所述第二内存中存在子树时,所述第一内存控制器可以指示所述第二内存控制器获取所述第二数据,所述第二数据为所述第二内存中满足所述搜索条件的数据;
所述第一处理器根据所述第一数据和所述第二数据生成搜索结果。
2.根据权利要求1所述方法,其特征在于,所述第一处理器根据搜索请求消息确定待搜索树的根节点的地址所在第一内存和管理所述第一内存的处理器关联的第一内存控制器,包括:
所述第一处理器根据所述待搜索树的根节点的地址确定所述待搜索树的根节点的地址所在所述第一内存;
所述第一处理器根据预置的内存和处理器映射表确定与所述第一内存存在关联关系的所述管理所述第一内存的处理器;
所述第一处理器根据预置的处理器和内存控制器的映射关系确定与所述管理所述第一内存的处理器关联的所述第一内存控制器。
3.根据权利要求2所述方法,其特征在于,所述第一处理器根据所述第一数据和第二数据生成搜索结果,包括:
当数据搜索时间满足第一阈值时,所述第一处理器根据接收的第一数据和第二数据生成所述搜索结果;或者,
当第一处理器获取的所述第一数据和所述第二数据的数量满足第二阈值时,所述第一处理器根据接收的第一数据和所述第二数据生成所述搜索结果。
4.根据权利要求2所述方法,其特征在于,所述搜索请求消息中还包括所述待搜索树的标识,所述方法包括:
所述第一处理器向所述计算设备中所有处理器发送查找请求消息,所述查找请求消息中携带所述待搜索树的标识,以指示所述计算设备中所有处理器根据所述待搜索树的标识确定所述各个处理器管理的内存中是否存储有所述待搜索树的子树;
所述第一处理器接收存储所述待搜索树的子树处理器发送的响应消息,所述响应消息用于指示处理器管理的内存中存储有所述待搜索树的子树;
当所述第一处理器接收到所述第一内存控制器和所有管理所述待搜索树的子树所在内存的处理器关联的内存控制器发送的满足所述搜索条件的数据时,生成所述搜索结果。
5.一种数据搜索的方法,其特征在于,所述方法包括:
第一内存控制器接收第一处理器发送的搜索指令,所述搜索指令中包括搜索条件、待搜索树的根节点的地址和所述第一处理器的标识,所述待搜索树的根节点的地址所在内存为第一内存,所述第一内存控制器为管理所述第一内存的处理器关联的内存控制器;
所述第一内存控制器根据所述搜索指令在所述第一内存中查找满足所述搜索条件的数据,当所述第一内存中存在满足所述搜索条件的第一数据时,所述第一内存控制器获取所述第一数据,并根据所述第一处理器的标识将所述第一数据发送给所述第一处理器;
当所述待搜索的树在第二内存中存在子树时,所述第一内存控制器将所述搜索指令发送给所述第二内存控制器,以指示所述第二内存控制器根据所述搜索指令在所述第二内存中查找满足所述搜索条件的数据,当所述第二内存中存在满足所述搜索条件的第二数据时,获取所述第二数据,并将所述第二数据发送给所述第一处理器;其中, 所述第二内存为存储所述待搜索树的所述子树所在的内存,所述第二内存控制器为管理所述第二内存的处理器关联的内存控制器。
6.根据权利要求5所述方法,其特征在于,每个处理器中还包括缓存,所述第一内存控制器根据搜索指令在所述第一内存中查找满足所述搜索条件的数据,包括:
所述第一内存控制器根据所述第一内存的地址确定第一缓存中是否有所述第一内存的数据副本,当所述第一缓存中存在所述第一内存的数据副本时,在所述第一缓存中查找满足所述搜索条件的所述第一数据;或者,
当所述第一缓存中不存在所述第一内存的数据副本时,将所述第一内存的数据加载到所述第一缓存中;其中,所述第一缓存为所述第一处理器中包括的缓存;在所述第一缓存中查找满足所述搜索条件的所述第一数据。
7.一种计算设备,其特征在于,所述计算设备中包括至少两个处理器和内存,所述至少两个处理器中每个处理器关联至少一个内存控制器,所述至少一个内存控制器中每个内存控制器用于实现所述每个处理器与所述内存之间的数据通信;所述计算设备中包括第一处理器、第一内存控制器、第二内存控制器;
所述第一处理器,用于接收搜索请求消息,所述搜索请求消息包括搜索条件和待搜索树的根节点的地址;根据所述搜索请求消息确定所述待搜索树的根节点的地址所在第一内存和管理所述第一内存的处理器关联的第一内存控制器;根据所述搜索请求消息和预置的搜索算法确定搜索指令,所述搜索指令中包括所述搜索条件、所述待搜索树的根节点的地址和所述第一处理器的标识;将所述搜索指令发送给所述第一内存控制器;接收所述第一内存控制器发送的第一数据,所述第一数据为所述第一内存中满足所述搜索条件的数据;接收第二内存控制器发送的第二数据,所述第二内存控制器为管理第二内存的处理器关联的内存控制器,所述第二内存为存储所述待搜索树的子树所在的内存,所述第二数据为所述第二内存中满足所述搜索条件的数据;根据所述第一数据和所述第二数据生成搜索结果;
所述第一内存控制器,用于接收第一处理器发送的所述搜索指令;根据所述搜索指令在所述第一内存中查找满足所述搜索条件的数据,当所述第一内存中存在满足所述搜索条件的第一数据时,获取所述第一数据,并根据所述第一处理器的标识将所述第一数据发送给所述第一处理器;当所述待搜索的树在第二内存中存在子树时,将所述搜索指令发送给所述第二内存控制器,其中, 所述第二内存为存储所述待搜索树的所述子树所在的内存,所述第二内存控制器为管理所述第二内存的处理器关联的内存控制器;
所述第二内存控制器,用于接收所述第一内存控制器发送的所述搜索指令;根据所述搜索指令在所述第二内存中查找满足所述搜索条件的数据,当所述第二内存中存在满足所述搜索条件的第二数据时,获取所述第二数据,并根据所述第一处理器的标识将所述第二数据发送给所述第一处理器。
8.一种数据搜索的装置,其特征在于,所述装置包括接收单元、处理单元、生成单元和发送单元;
所述接收单元,用于接收搜索请求消息,所述搜索请求消息包括搜索条件和待搜索树的根节点的地址;
所述处理单元,用于根据所述搜索请求消息确定所述待搜索树的根节点的地址所在第一内存和管理所述第一内存的处理器关联的第一内存控制器;
所述生成单元,用于根据所述搜索请求消息和预置的搜索算法确定搜索指令,所述搜索指令中包括所述搜索条件、所述待搜索树的根节点的地址和所述装置的标识;
所述发送单元,用于将所述搜索指令发送给第一内存控制器;
所述接收单元,还用于接收所述第一内存控制器发送的第一数据,所述第一数据为所述第一内存中满足所述搜索条件的数据;接收第二内存控制器发送的第二数据,所述第二内存控制器为管理第二内存的处理器关联的内存控制器,所述第二内存为存储所述待搜索树的子树所在的内存,当所述待搜索树在所述第二内存中存在子树时,所述第一内存控制器可以指示所述第二内存控制器获取所述第二数据,所述第二数据为所述第二内存中满足所述搜索条件的数据;
所述生成单元,还用于根据所述第一数据和所述第二数据生成搜索结果。
9.根据权利要求8所述装置,其特征在于,所述处理单元根据搜索请求消息确定待搜索树的根节点的地址所在第一内存和管理所述第一内存的处理器关联的第一内存控制器,包括:
根据所述待搜索树的根节点的地址确定所述待搜索树的根节点的地址所在所述第一内存;
根据预置的内存和处理器映射表确定与所述第一内存存在关联关系的所述管理所述第一内存的处理器;
根据预置的处理器和内存控制器的映射关系确定与所述管理所述第一内存的处理器关联的所述第一内存控制器。
10.根据权利要求9所述装置,其特征在于,所述生成单元根据所述第一数据和第二数据生成搜索结果,包括:
当搜索时间满足第一阈值时,根据接收的第一数据和第二数据生成所述搜索结果;或者,当所述接收单元获取的满足所述搜索条件的数据的数量满足第二阈值时,根据接收的第一数据和所述第二数据生成所述搜索结果。
11.根据权利要求9所述装置,其特征在于,所述搜索请求消息中还包括所述待搜索树的标识;
所述发送单元,还用于向计算设备中所有处理器发送查找请求消息,所述查找请求消息中携带所述待搜索树的标识;
所述接收单元,还用于接收存储所述待搜索树的子树处理器发送的响应消息,所述响应消息用于指示处理器管理的内存中存储有所述待搜索树的子树;
所述生成单元,还用于当所述接收单元接收到所述第一内存控制器和所有管理所述待搜索树的子树所在内存的处理器关联的内存控制器发送的满足所述搜索条件的数据时,生成所述搜索结果。
12.一种数据搜索的装置,其特征在于,所述装置包括接收单元、处理单元和发送单元;
所述接收单元,用于接收第一处理器发送的搜索指令,所述搜索指令中包括搜索条件、待搜索树的根节点的地址和所述第一处理器的标识,所述待搜索树的根节点的地址所在内存为第一内存,所述第一内存控制器为管理所述第一内存的处理器关联的内存控制器;
所述处理单元,用于根据搜索指令在所述第一内存中查找满足所述搜索条件的数据,当所述第一内存中存在满足所述搜索条件的第一数据时,所述第一内存控制器获取所述第一数据,并根据所述第一处理器的标识将所述第一数据发送给所述第一处理器;
所述发送单元,用于当所述待搜索的树在第二内存中存在子树时,将所述搜索指令发送给第二内存控制器,所述第二内存控制器为管理所述第二内存的处理器关联的内存控制器,所述第二内存控制器根据所述搜索指令在所述第二内存中查找满足所述搜索条件的数据,当所述第二内存中存在满足所述搜索条件的第二数据时,获取所述第二数据,并将所述第二数据发送给所述第一处理器。
13.根据权利要求12所述装置,其特征在于,所述处理单元根据所述搜索指令在所述第一内存中查找满足所述搜索条件的数据,包括:
根据所述第一内存的地址确定第一缓存中是否有所述第一内存的数据副本, 当所述第一缓存中存在所述第一内存的数据副本时,在所述第一缓存中查找满足所述搜索条件的所述第一数据;或者,
当所述第一缓存中不存在所述第一内存的数据副本时,将所述第一内存的数据加载到所述第一缓存中;其中,所述第一缓存为所述第一处理器中包括的缓存;在所述第一缓存中查找满足所述搜索条件的所述第一数据。
14.一种处理器,其特征在于,所述处理器中包括至少一个内存控制器、缓存和总线,所述内存控制器和缓存通过总线相通信,所述内存控制器中包括迁移处理电路、存储电路和总线,所述内存控制器中迁移处理电路和存储电路通过所述总线或直连方式相通信,所述内存控制器的存储电路中存储执行指令,所述处理器运行时,所述内存控制器执行所述内存控制器的存储电路中的执行指令以利用所述处理器中的硬件资源执行权利要求1至4中任一所述方法的操作步骤。
15.一种内存控制器,其特征在于,所述内存控制器中包括迁移处理电路、存储电路和总线,所述迁移处理电路、存储电路通过所述总线或直连方式相通信,所述存储电路中存储有中用于存储执行指令,所述内存控制器运行时,所述处理电路执行所述存储电路中的执行指令以利用所述内存控制器中的硬件资源执行权利要求5至6中任一所述方法的操作步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710245610.1A CN108733678B (zh) | 2017-04-14 | 2017-04-14 | 一种数据搜索的方法、装置和相关设备 |
PCT/CN2018/076750 WO2018188416A1 (zh) | 2017-04-14 | 2018-02-13 | 一种数据搜索的方法、装置和相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710245610.1A CN108733678B (zh) | 2017-04-14 | 2017-04-14 | 一种数据搜索的方法、装置和相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108733678A CN108733678A (zh) | 2018-11-02 |
CN108733678B true CN108733678B (zh) | 2021-11-09 |
Family
ID=63793112
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710245610.1A Active CN108733678B (zh) | 2017-04-14 | 2017-04-14 | 一种数据搜索的方法、装置和相关设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN108733678B (zh) |
WO (1) | WO2018188416A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111309258B (zh) * | 2020-02-14 | 2021-10-15 | 苏州浪潮智能科技有限公司 | 一种b+树的存取方法、装置和计算机可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101079036A (zh) * | 2006-06-23 | 2007-11-28 | 腾讯科技(深圳)有限公司 | 一种海量文件的存储方法及系统 |
CN103116661A (zh) * | 2013-03-20 | 2013-05-22 | 广东宜通世纪科技股份有限公司 | 一种数据库的数据处理方法 |
CN104090942A (zh) * | 2014-06-30 | 2014-10-08 | 中国电子科技集团公司第三十二研究所 | 应用于网络处理器中的Trie搜索方法及装置 |
CN105447156A (zh) * | 2015-11-30 | 2016-03-30 | 北京航空航天大学 | 资源描述框架分布式引擎及增量式更新方法 |
CN106201350A (zh) * | 2016-07-07 | 2016-12-07 | 华为技术有限公司 | 存储数据的方法、存储器和计算机系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030236793A1 (en) * | 2002-06-19 | 2003-12-25 | Ericsson Inc. | Compressed prefix tree structure and method for traversing a compressed prefix tree |
US7152123B2 (en) * | 2002-12-23 | 2006-12-19 | Micron Technology, Inc. | Distributed configuration storage |
CN100483411C (zh) * | 2006-03-10 | 2009-04-29 | 华为技术有限公司 | 关系型数据库中信息检索方法及装置 |
CN103970678B (zh) * | 2014-04-21 | 2017-01-25 | 华为技术有限公司 | 目录设计方法及装置 |
CN105574054B (zh) * | 2014-11-06 | 2018-12-28 | 阿里巴巴集团控股有限公司 | 一种分布式缓存范围查询方法、装置及系统 |
-
2017
- 2017-04-14 CN CN201710245610.1A patent/CN108733678B/zh active Active
-
2018
- 2018-02-13 WO PCT/CN2018/076750 patent/WO2018188416A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101079036A (zh) * | 2006-06-23 | 2007-11-28 | 腾讯科技(深圳)有限公司 | 一种海量文件的存储方法及系统 |
CN103116661A (zh) * | 2013-03-20 | 2013-05-22 | 广东宜通世纪科技股份有限公司 | 一种数据库的数据处理方法 |
CN104090942A (zh) * | 2014-06-30 | 2014-10-08 | 中国电子科技集团公司第三十二研究所 | 应用于网络处理器中的Trie搜索方法及装置 |
CN105447156A (zh) * | 2015-11-30 | 2016-03-30 | 北京航空航天大学 | 资源描述框架分布式引擎及增量式更新方法 |
CN106201350A (zh) * | 2016-07-07 | 2016-12-07 | 华为技术有限公司 | 存储数据的方法、存储器和计算机系统 |
Also Published As
Publication number | Publication date |
---|---|
CN108733678A (zh) | 2018-11-02 |
WO2018188416A1 (zh) | 2018-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8381230B2 (en) | Message passing with queues and channels | |
KR101786871B1 (ko) | 원격 페이지 폴트 처리 장치 및 그 방법 | |
CN110119304B (zh) | 一种中断处理方法、装置及服务器 | |
US11237761B2 (en) | Management of multiple physical function nonvolatile memory devices | |
WO2023231345A1 (zh) | 对多个交易进行分组的方法和区块链节点 | |
US9369332B1 (en) | In-memory distributed cache | |
CN111666184B (zh) | 固态驱动器ssd硬盘测试方法、装置及电子设备 | |
US11061676B2 (en) | Scatter gather using key-value store | |
US8543722B2 (en) | Message passing with queues and channels | |
US20240220334A1 (en) | Data processing method in distributed system, and related system | |
CN114020525A (zh) | 故障隔离方法、装置、设备及存储介质 | |
CN108733678B (zh) | 一种数据搜索的方法、装置和相关设备 | |
CN107179883B (zh) | 一种基于SSD和HDD的混合存储系统的Spark架构优化方法 | |
WO2016049807A1 (zh) | 多核处理器系统的缓存目录处理方法和目录控制器 | |
CN112711564B (zh) | 合并处理方法以及相关设备 | |
CN110427394B (zh) | 数据操作方法及装置 | |
CN107102898B (zh) | 一种基于numa架构的内存管理、构建数据结构的方法及装置 | |
WO2024001025A1 (zh) | 一种预执行缓存数据清理方法和区块链节点 | |
US11340964B2 (en) | Systems and methods for efficient management of advanced functions in software defined storage systems | |
CN115017164A (zh) | 索引构建方法、索引构建系统及索引更新方法 | |
CN115729693A (zh) | 数据处理方法、装置、计算机设备及计算机可读存储介质 | |
KR20210152929A (ko) | Ssd에서의 라이트 명령하기 | |
CN110968267A (zh) | 数据管理方法、装置、服务器及系统 | |
US12056372B2 (en) | Collecting quality of service statistics for in-use child physical functions of multiple physical function non-volatile memory devices | |
US20240220294A1 (en) | VM Migration Using Memory Pointers |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20211224 Address after: 450046 Floor 9, building 1, Zhengshang Boya Plaza, Longzihu wisdom Island, Zhengdong New Area, Zhengzhou City, Henan Province Patentee after: xFusion Digital Technologies Co., Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
TR01 | Transfer of patent right |