CN110659312A - 数据处理的方法、装置、设备和计算机存储介质 - Google Patents
数据处理的方法、装置、设备和计算机存储介质 Download PDFInfo
- Publication number
- CN110659312A CN110659312A CN201910706763.0A CN201910706763A CN110659312A CN 110659312 A CN110659312 A CN 110659312A CN 201910706763 A CN201910706763 A CN 201910706763A CN 110659312 A CN110659312 A CN 110659312A
- Authority
- CN
- China
- Prior art keywords
- node
- actuator
- current
- database
- adjacent
- 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.)
- Granted
Links
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
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Fuzzy Systems (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Multi Processors (AREA)
Abstract
本发明提供一种数据处理的方法、装置、设备和计算机存储介质,所述方法包括:对数据库所包含的节点进行分区处理,并为所得到的每个分区分配对应的执行器;接收到检索请求之后,根据数据库的数据结构,控制各执行器执行从所属节点到与所属节点相邻的下一个节点的游走,实现数据检索。本发明通过所分配的执行器分别控制相应的节点以进行数据检索,从而提高检索速度,提升检索效率。
Description
【技术领域】
本发明涉及数据库技术领域,尤其涉及一种数据处理的方法、装置、设备和计算机存储介质。
【背景技术】
随着数据库技术的快速发展,数据库被应用在各种领域。由于数据库中存储有海量数据,因此如何在数据库中进行快速有效的数据检索成为人们越来越关注的技术问题。现有技术在进行数据检索时,存在以下问题:每次检索的线程随机分配节点来进行游走,使得每次检索时各线程处理的数据完全随机,从而无法使用计算机CPU自身的高速缓存进行数据读取,因此检索速度较慢,检索效率较低。
【发明内容】
有鉴于此,本发明提供了一种数据处理的方法、装置、设备和计算机存储介质,用于提高数据检索速度,提升数据检索效率。
本发明为解决技术所采用的技术方案是提供一种数据处理的方法,所述方法包括:对数据库所包含的节点进行分区处理,并为所得到的每个分区分配对应的执行器;接收到检索请求之后,根据数据库的数据结构,控制各执行器执行从所属节点到与所属节点相邻的下一个节点的游走,实现数据检索。
根据本发明一优选实施例,所述对数据库所包含的节点进行分区处理包括:获取数据库所包含的节点的标识信息;对各节点的标识信息进行取模,分别得到各节点的取模结果;将具有相同取模结果的节点划分为同一个分区。
根据本发明一优选实施例,所述根据数据库的数据结构,控制各执行器执行从所属节点到与所属节点相邻的下一个节点的游走包括:根据数据库的数据结构以及分区,确定各执行器的所属节点以及与各所属节点相邻的下一个节点;根据所确定的节点,控制各执行器分别执行从所属节点到与所属节点相邻的下一个节点的游走。
根据本发明一优选实施例,所述根据数据库的数据结构,控制各执行器执行从所属节点到与所属节点相邻的下一个节点的游走包括:根据所述检索请求确定检索的起始节点;将起始节点确定为当前节点,将与当前节点对应的执行器确定为当前执行器;将当前起点发送至当前执行器,在根据数据库的数据结构确定与当前节点相邻的下一个节点之后,控制当前执行器执行从当前节点到与其相邻的下一个节点的游走;确定与当前节点相邻的下一个节点是否为当前执行器的所属节点,若是,则将与当前节点相邻的下一个节点确定为当前节点之后,继续控制当前执行器执行从当前节点到与其相邻的下一个节点的游走;否则,将与当前节点相邻的下一个节点作为起始节点发送至对应的执行器,并重复上述过程,直至完成所有节点之间的游走。
根据本发明一优选实施例,将节点发送至执行器包括:将要发送的节点作为待检索节点添加到执行器的任务队列中,由执行器根据任务队列进行顺序处理。
根据本发明一优选实施例,所述方法还包含:根据接收到的更新请求确定所要更新的节点;根据所确定的节点确定与其对应的执行器,由所确定的执行器对相应的节点进行更新。
根据本发明一优选实施例,所述由所确定的执行器对相应的节点进行更新包括:将要更新的节点作为待更新节点添加到所确定的执行器的任务队列中,由执行器根据任务队列进行顺序处理。
本发明为解决技术问题所采用的技术方案是提供一种数据处理的装置,所述装置包括:处理单元,用于对数据库所包含的节点进行分区处理,并为所得到的每个分区分配对应的执行器;检索单元,用于接收到检索请求之后,根据数据库的数据结构,控制各执行器执行从所属节点到与所属节点相邻的下一个节点的游走,实现数据检索。
根据本发明一优选实施例,所述处理单元在对数据库所包含的节点进行分区处理时,具体执行:获取数据库所包含的节点的标识信息;对各节点的标识信息进行取模,分别得到各节点的取模结果;将具有相同取模结果的节点划分为同一个分区。
根据本发明一优选实施例,所述检索单元在根据数据库的数据结构,控制各执行器执行从所属节点到与所属节点相邻的下一个节点的游走时,具体执行:根据数据库的数据结构以及分区,确定各执行器的所属节点以及与各所属节点相邻的下一个节点;根据所确定的节点,控制各执行器分别执行从所属节点到与所属节点相邻的下一个节点的游走。
根据本发明一优选实施例,所述检索单元在根据数据库的数据结构,控制各执行器执行从所属节点到与所属节点相邻的下一个节点的游走时,具体执行:根据所述检索请求确定检索的起始节点;将起始节点确定为当前节点,将与当前节点对应的执行器确定为当前执行器;将当前起点发送至当前执行器,在根据数据库的数据结构确定与当前节点相邻的下一个节点之后,控制当前执行器执行从当前节点到与其相邻的下一个节点的游走;确定与当前节点相邻的下一个节点是否为当前执行器的所属节点,若是,则将与当前节点相邻的下一个节点确定为当前节点之后,继续控制当前执行器执行从当前节点到与其相邻的下一个节点的游走;否则,将与当前节点相邻的下一个节点作为起始节点发送至对应的执行器,并重复上述过程,直至完成所有节点之间的游走。
根据本发明一优选实施例,所述检索单元在将节点发送至执行器时,具体执行:将要发送的节点作为待检索节点添加到执行器的任务队列中,由执行器根据任务队列进行顺序处理。
根据本发明一优选实施例,所述装置还包含更新单元,具体执行:根据接收到的更新请求确定所要更新的节点;根据所确定的节点确定与其对应的执行器,由所确定的执行器对相应的节点进行更新。
根据本发明一优选实施例,所述更新单元在由所确定的执行器对相应的节点进行更新时,具体执行:将要更新的节点作为待更新节点添加到所确定的执行器的任务队列中,由执行器根据任务队列进行顺序处理。
由以上技术方案可以看出,本发明通过对数据库所包含的节点进行分区处理,进而为每个分区分配对应的执行器,从而在接收到检索请求后,控制各执行器执行从所属节点到与所属节点相邻的下一个节点的游走,使得各执行器在每次检索过程中均处理以其所属节点为起点的游走,从而能够利用计算机CPU自身的高速缓存进行数据读取,提高了检索速度,提升了检索效率。
【附图说明】
图1为本发明一实施例提供的一种数据处理的方法流程图;
图2为本发明一实施例提供的一种数据库的数据结构的示意图;
图3为本发明一实施例提供的一种数据处理的装置结构图;
图4为本发明一实施例提供的计算机系统/服务器的框图。
【具体实施方式】
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
图1为本发明一实施例提供的一种数据处理的方法流程图,如图1中所示,所述方法包括:
在101中,对数据库所包含的节点进行分区处理,并为所得到的每个分区分配对应的执行器。
在本步骤中,首先对数据库所包含的节点进行分区处理,在得到包含不同节点的多个分区之后,为每个分区分配对应的执行器。其中,每个分区对应一个执行器,各执行器分别负责与其对应的分区中各节点的数据处理过程。
可以理解的是,与分区对应的执行器拥有任务队列,任务队列中存储有待处理的数据处理请求,例如节点的更新请求或者节点的检索请求;各执行器的工作线程为顺序处理其任务队列中的数据处理请求。
另外,本发明中的数据库可以为各种类型的数据库,数据库中包含有多个存储数据的节点。优选地,本发明中的数据库为图数据库,图数据库是以实体及其关系为主要存储对象的数据库。
具体地,本步骤在对数据库所包含的节点进行分区处理时,可以采用以下方式进行:获取数据库所包含的节点的标识信息,例如获取各节点的ID;对各节点的标识信息进行取模,分别得到各节点的取模结果;将具有相同取模结果的节点划分为同一个分区。
另外,在对节点进行分区处理时,可以尽可能地将数据库中所包含的节点打散。因此,本步骤在对数据库所包含的节点进行分区处理时,还可以根据用户的实际需求对各节点进行分区处理。
可以理解的是,本步骤可以针对各数据库预先完成节点分区以及分配执行器的操作,例如在数据库创建完成后即可自动执行;也可以在用户发出相应请求后,对用户所选择的数据库执行节点分区以及分配执行器的操作。
在102中,接收到检索请求之后,根据数据库的数据结构,控制各执行器执行从所属节点到与所属节点相邻的下一个节点的游走,实现数据检索。
在本步骤中,在接收到检索请求之后,根据数据库的数据结构,控制步骤101中所分配的各执行器执行从所属节点到与所属节点相邻的下一个节点的游走,从而在完成各节点之间的游走过程后,实现在该数据库中进行数据检索。本步骤中的检索请求可以由用户通过移动终端或服务器端发出。
其中,各执行器的所属节点为与各执行器对应的分区中所包含的各节点;节点间的游走过程即为遍历节点以进行数据检索的过程。
具体地,本步骤在根据数据库的数据结构,控制各执行器执行从所属节点到与所属节点相邻的下一个节点的游走时,可以采用以下方式:根据数据库的数据结构以及分区,确定各执行器的所属节点以及与各所属节点相邻的下一个节点;根据所确定的节点,控制各执行器分别执行从所属节点到与所属节点相邻的下一个节点的游走。
由于本发明通过设置的执行器对确定的节点进行数据处理,因此对于任何一次检索来说,每个执行器始终进行的是以其所属节点为起点的游走,由于各执行器每次访问的数据在任何一次游走过程中均相同,因此本发明能够利用计算机CPU自身的高速缓存来快速地读取数据,进一步提升检索速度。
另外,本步骤在根据数据库的数据结构,控制各执行器执行从所属节点到与所属节点相邻的下一个节点的游走时,可以采用以下方式:根据检索请求确定检索的起始节点;将起始节点确定为当前节点,将与当前节点对应的执行器确定为当前执行器;将当前起点发送至当前执行器,在根据数据库的数据结构确定与当前节点相邻的下一个节点之后,控制当前执行器执行从当前节点到与其相邻的下一个节点的游走;确定与当前节点相邻的下一个节点是否为当前执行器的所属节点,若是,则将与当前节点相邻的下一个节点确定为当前节点之后,继续控制当前执行器执行从当前节点到与其相邻的下一个节点的游走;否则,将与当前节点相邻的下一个节点作为起始节点发送至对应的执行器,并重复上述过程,直至完成所有节点之间的游走。
其中,本步骤在将节点发送至执行器时,即将该节点作为待检索节点添加到对应的执行器的任务队列中,进而由该执行器根据任务队列进行顺序处理,以使得执行器完成以其所属节点为起点的游走。
对上述节点间的游走过程进行举例说明:
若数据库的数据结构如图2中所示,该数据库中包含有节点A、B、C、D、E、F、G、H、I、J以及K,若将A、B以及C划分为第一分区,对应执行器1;将D、E以及F划分为第二分区,对应执行器2;将G、H划分为第三分区,对应执行器3;将I、J以及K划分为第三分区,对应执行器4。
若检索请求中的起始节点为A,则检索过程为:将A作为当前节点,并将A对应的执行器1作为当前执行器;将A发送至执行器1,由执行器1分别执行A到B、A到C、A到D、A到E、A到F、A到G的游走;确定B以及C为执行器1的所属节点,则由执行器1继续执行B到I、C到I的游走;而与A相邻的下一个节点中的D、E、F以及G,以及与B以及C相邻的下一个节点I不为执行器1的所属节点,则将D、E以及F发送至执行器2,将G发送至执行器3,将I发送至执行器4;执行器2接收到D、E以及F,分别执行从D到I、E到I以及F到H的游走,与D以及E相邻的下一个节点I以及与F相邻的下一个节点H不是执行器2的所属节点,则分别将I发送至执行器4,将H发送至执行器3;执行器3接收到G,执行G到H的游走;执行器4接收到I,执行I到J以及I到K的游走。
可以理解的是,现有技术所采用的检索方案,是将游走过程分为多层,只有当前一层的游走完成后,才能够进行新一层的游走,因此检索效率较低。而本发明中的执行器在接收到节点之后,即可执行节点间的游走,例如上述的执行器4在执行I到J以及I到K的游走时,与执行器3执行执行F到H以及G到H的游走并没有必然的先后关系,即前者可以在后者执行前完成,并不依赖后者的执行结果,因此本发明能够进一步提升检索效率。
本发明还能够利用执行器对数据库中的节点进行更新,避免现有技术中由于存在多个线程对同一节点进行更新时所导致的更新失败问题,从而提升更新效率。
具体地,本发明在对数据库中的节点进行更新时,可以采用以下方式:根据接收到的更新请求确定所要更新的节点;根据所确定的节点确定与其对应的执行器,由所确定的执行器对相应的节点进行更新。
其中,本步骤在由所确定的执行器对相应的节点进行更新时,可以采用以下方式:将要更新节点的作为待更新节点添加到所确定的执行器的任务队列中;由所确定的执行器根据任务队列进行顺序处理。
可以理解的是,本发明通过将数据处理请求(更新请求或者检索请求)添加到执行器的任务队列的方式,能够在执行器同时存在更新请求和检索请求的情况下进行顺序处理,避免了由于数据更新和数据访问的冲突所导致的更新或检索失败的问题,从而提升了数据处理的成功率。
图3为本发明一实施例提供的一种数据处理的装置结构图,如图3中所示,所述装置包括:处理单元31、检索单元32以及更新单元33。
处理单元31,用于对数据库所包含的节点进行分区处理,并为所得到的每个分区分配对应的执行器。
处理单元31首先对数据库所包含的节点进行分区处理,在得到包含不同节点的多个分区之后,为每个分区分配对应的执行器。其中,每个分区对应一个执行器,各执行器分别负责与其对应的分区中各节点的数据处理过程。
可以理解的是,与分区对应的执行器拥有任务队列,任务队列中存储有待处理的数据处理请求,例如节点的更新请求或者节点的检索请求;各执行器的工作线程为顺序处理其任务队列中的数据处理请求。
具体地,处理单元31在对数据库所包含的节点进行分区处理时,可以采用以下方式进行:获取数据库所包含的节点的标识信息,例如获取各节点的ID;对各节点的标识信息进行取模,分别得到各节点的取模结果;将具有相同取模结果的节点划分为同一个分区。
另外,在对节点进行分区处理时,可以尽可能地将数据库中所包含的节点打散。因此,处理单元31在对数据库所包含的节点进行分区处理时,还可以根据用户的实际需求来对各节点进行分区处理。
可以理解的是,处理单元31可以针对各数据库预先完成节点分区以及分配执行器的操作,例如在数据库创建完成后即可自动执行;处理单元31也可以在用户发出相应请求后,对用户所选择的数据库执行节点分区以及分配执行器的操作。
检索单元32,用于接收到检索请求之后,根据数据库的数据结构,控制各执行器执行从所属节点到与所属节点相邻的下一个节点的游走,实现数据检索。
检索单元32在接收到检索请求之后,根据数据库的数据结构,控制处理单元31所分配的各执行器执行从所属节点到与所属节点相邻的下一个节点的游走,从而在完成各节点之间的游走过程后,实现在该数据库中进行数据检索。
其中,各执行器的所属节点为与各执行器对应的分区中所包含的各节点;节点间的游走过程即为遍历节点以进行数据检索的过程。
具体地,检索单元32在根据数据库的数据结构,控制各执行器执行从所属节点到与所属节点相邻的下一个节点的游走时,可以采用以下方式:根据数据库的数据结构以及分区,确定各执行器的所属节点以及与各所属节点相邻的下一个节点;根据所确定的节点,控制各执行器分别执行从所属节点到与所属节点相邻的下一个节点的游走。
另外,检索单元32在根据数据库的数据结构,控制各执行器执行从所属节点到与所属节点相邻的下一个节点的游走时,可以采用以下方式:根据检索请求确定检索的起始节点;将起始节点确定为当前节点,将与当前节点对应的执行器确定为当前执行器;将当前起点发送至当前执行器,在根据数据库的数据结构确定与当前节点相邻的下一个节点之后,控制当前执行器执行从当前节点到与其相邻的下一个节点的游走;确定与当前节点相邻的下一个节点是否为当前执行器的所属节点,若是,则将与当前节点相邻的下一个节点确定为当前节点之后,继续控制当前执行器执行从当前节点到与其相邻的下一个节点的游走;否则,将与当前节点相邻的下一个节点作为起始节点发送至对应的执行器,并重复上述过程,直至完成所有节点之间的游走。
其中,检索单元32在将节点发送至执行器时,即将该节点作为待检索节点添加到对应的执行器的任务队列中,进而由该执行器根据任务队列进行顺序处理,以使得执行器完成以其所属节点为起点的游走。
本发明还进一步包含更新单元33,用于利用执行器对数据库中的节点进行更新,避免现有技术中由于存在多个线程对同一节点进行更新时所导致的更新失败问题,从而提升更新效率。
具体地,更新单元33在对数据库中的节点进行更新时,可以采用以下方式:根据接收到的更新请求确定所要更新的节点;根据所确定的节点确定与其对应的执行器,由所确定的执行器对相应的节点进行更新。
其中,更新单元33在由所确定的执行器对相应的节点进行更新时,可以采用以下方式:将要更新节点的作为待更新节点添加到所确定的执行器的任务队列中;由所确定的执行器根据任务队列进行顺序处理。
如图4所示,计算机系统/服务器012以通用计算设备的形式表现。计算机系统/服务器012的组件可以包括但不限于:一个或者多个处理器或者处理单元016,系统存储器028,连接不同系统组件(包括系统存储器028和处理单元016)的总线018。
总线018表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器012典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器012访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器028可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)030和/或高速缓存存储器032。计算机系统/服务器012可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统034可以用于读写不可移动的、非易失性磁介质(图4未显示,通常称为“硬盘驱动器”)。尽管图4中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线018相连。存储器028可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块042的程序/实用工具040,可以存储在例如存储器028中,这样的程序模块042包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块042通常执行本发明所描述的实施例中的功能和/或方法。
计算机系统/服务器012也可以与一个或多个外部设备014(例如键盘、指向设备、显示器024等)通信,在本发明中,计算机系统/服务器012与外部雷达设备进行通信,还可与一个或者多个使得用户能与该计算机系统/服务器012交互的设备通信,和/或与使得该计算机系统/服务器012能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口022进行。并且,计算机系统/服务器012还可以通过网络适配器020与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器020通过总线018与计算机系统/服务器012的其它模块通信。应当明白,尽管图中未示出,可以结合计算机系统/服务器012使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元016通过运行存储在系统存储器028中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的方法流程。
随着时间、技术的发展,介质含义越来越广泛,计算机程序的传播途径不再受限于有形介质,还可以直接从网络下载等。可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
利用本发明所提供的技术方案,通过对数据库所包含的节点进行分区处理,进而为每个分区分配对应的执行器,从而在接收到检索请求后,控制各执行器执行从所属节点到与所属节点相邻的下一个节点的游走,使得各执行器在每次检索过程中均处理以其所属节点为起点的游走,从而能够利用计算机CPU自身的高速缓存进行数据读取,提高了检索速度,提升了检索效率。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (16)
1.一种数据处理的方法,其特征在于,所述方法包括:
对数据库所包含的节点进行分区处理,并为所得到的每个分区分配对应的执行器;
接收到检索请求之后,根据数据库的数据结构,控制各执行器执行从所属节点到与所属节点相邻的下一个节点的游走,实现数据检索。
2.根据权利要求1所述的方法,其特征在于,所述对数据库所包含的节点进行分区处理包括:
获取数据库所包含的节点的标识信息;
对各节点的标识信息进行取模,分别得到各节点的取模结果;
将具有相同取模结果的节点划分为同一个分区。
3.根据权利要求1所述的方法,其特征在于,所述根据数据库的数据结构,控制各执行器执行从所属节点到与所属节点相邻的下一个节点的游走包括:
根据数据库的数据结构以及分区,确定各执行器的所属节点以及与各所属节点相邻的下一个节点;
根据所确定的节点,控制各执行器分别执行从所属节点到与所属节点相邻的下一个节点的游走。
4.根据权利要求1所述的方法,其特征在于,所述根据数据库的数据结构,控制各执行器执行从所属节点到与所属节点相邻的下一个节点的游走包括:
根据所述检索请求确定检索的起始节点;
将起始节点确定为当前节点,将与当前节点对应的执行器确定为当前执行器;
将当前起点发送至当前执行器,在根据数据库的数据结构确定与当前节点相邻的下一个节点之后,控制当前执行器执行从当前节点到与其相邻的下一个节点的游走;
确定与当前节点相邻的下一个节点是否为当前执行器的所属节点,若是,则将与当前节点相邻的下一个节点确定为当前节点之后,继续控制当前执行器执行从当前节点到与其相邻的下一个节点的游走;
否则,将与当前节点相邻的下一个节点作为起始节点发送至对应的执行器,并重复上述过程,直至完成所有节点之间的游走。
5.根据权利要求4所述的方法,其特征在于,将节点发送至执行器包括:
将要发送的节点作为待检索节点添加到执行器的任务队列中,由执行器根据任务队列进行顺序处理。
6.根据权利要求1所述的方法,其特征在于,所述方法还包含:
根据接收到的更新请求确定所要更新的节点;
根据所确定的节点确定与其对应的执行器,由所确定的执行器对相应的节点进行更新。
7.根据权利要求6所述的方法,其特征在于,所述由所确定的执行器对相应的节点进行更新包括:
将要更新的节点作为待更新节点添加到所确定的执行器的任务队列中,由执行器根据任务队列进行顺序处理。
8.一种数据处理的装置,其特征在于,所述装置包括:
处理单元,用于对数据库所包含的节点进行分区处理,并为所得到的每个分区分配对应的执行器;
检索单元,用于接收到检索请求之后,根据数据库的数据结构,控制各执行器执行从所属节点到与所属节点相邻的下一个节点的游走,实现数据检索。
9.根据权利要求8所述的装置,其特征在于,所述处理单元在对数据库所包含的节点进行分区处理时,具体执行:
获取数据库所包含的节点的标识信息;
对各节点的标识信息进行取模,分别得到各节点的取模结果;
将具有相同取模结果的节点划分为同一个分区。
10.根据权利要求8所述的装置,其特征在于,所述检索单元在根据数据库的数据结构,控制各执行器执行从所属节点到与所属节点相邻的下一个节点的游走时,具体执行:
根据数据库的数据结构以及分区,确定各执行器的所属节点以及与各所属节点相邻的下一个节点;
根据所确定的节点,控制各执行器分别执行从所属节点到与所属节点相邻的下一个节点的游走。
11.根据权利要求8所述的装置,其特征在于,所述检索单元在根据数据库的数据结构,控制各执行器执行从所属节点到与所属节点相邻的下一个节点的游走时,具体执行:
根据所述检索请求确定检索的起始节点;
将起始节点确定为当前节点,将与当前节点对应的执行器确定为当前执行器;
将当前起点发送至当前执行器,在根据数据库的数据结构确定与当前节点相邻的下一个节点之后,控制当前执行器执行从当前节点到与其相邻的下一个节点的游走;
确定与当前节点相邻的下一个节点是否为当前执行器的所属节点,若是,则将与当前节点相邻的下一个节点确定为当前节点之后,继续控制当前执行器执行从当前节点到与其相邻的下一个节点的游走;
否则,将与当前节点相邻的下一个节点作为起始节点发送至对应的执行器,并重复上述过程,直至完成所有节点之间的游走。
12.根据权利要求11所述的装置,其特征在于,所述检索单元在将节点发送至执行器时,具体执行:
将要发送的节点作为待检索节点添加到执行器的任务队列中,由执行器根据任务队列进行顺序处理。
13.根据权利要求8所述的装置,其特征在于,所述装置还包含更新单元,具体执行:
根据接收到的更新请求确定所要更新的节点;
根据所确定的节点确定与其对应的执行器,由所确定的执行器对相应的节点进行更新。
14.根据权利要求13所述的装置,其特征在于,所述更新单元在由所确定的执行器对相应的节点进行更新时,具体执行:
将要更新的节点作为待更新节点添加到所确定的执行器的任务队列中,由执行器根据任务队列进行顺序处理。
15.一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1~7中任一项所述的方法。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1~7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910706763.0A CN110659312B (zh) | 2019-08-01 | 2019-08-01 | 数据处理的方法、装置、设备和计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910706763.0A CN110659312B (zh) | 2019-08-01 | 2019-08-01 | 数据处理的方法、装置、设备和计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110659312A true CN110659312A (zh) | 2020-01-07 |
CN110659312B CN110659312B (zh) | 2022-08-23 |
Family
ID=69036941
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910706763.0A Active CN110659312B (zh) | 2019-08-01 | 2019-08-01 | 数据处理的方法、装置、设备和计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110659312B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111292223A (zh) * | 2020-01-22 | 2020-06-16 | 北京百度网讯科技有限公司 | 图计算的处理方法、装置、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060015304A1 (en) * | 2004-07-19 | 2006-01-19 | Fang Gang P | Method for generating and evaluating a table model for circuit simulation |
CN103177059A (zh) * | 2011-12-23 | 2013-06-26 | Sap股份公司 | 用于数据库计算引擎的分离处理路径 |
CN105517644A (zh) * | 2014-03-05 | 2016-04-20 | 华为技术有限公司 | 一种数据分区方法和设备 |
CN106095929A (zh) * | 2016-06-12 | 2016-11-09 | 惠龙易通国际物流股份有限公司 | 一种车船位置信息数据的处理方法及系统 |
CN107273195A (zh) * | 2017-05-24 | 2017-10-20 | 上海艾融软件股份有限公司 | 一种大数据的批处理方法、装置及计算机系统 |
CN108153883A (zh) * | 2017-12-26 | 2018-06-12 | 北京百度网讯科技有限公司 | 搜索方法和装置、计算机设备、程序产品以及存储介质 |
-
2019
- 2019-08-01 CN CN201910706763.0A patent/CN110659312B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060015304A1 (en) * | 2004-07-19 | 2006-01-19 | Fang Gang P | Method for generating and evaluating a table model for circuit simulation |
CN103177059A (zh) * | 2011-12-23 | 2013-06-26 | Sap股份公司 | 用于数据库计算引擎的分离处理路径 |
CN105517644A (zh) * | 2014-03-05 | 2016-04-20 | 华为技术有限公司 | 一种数据分区方法和设备 |
CN106095929A (zh) * | 2016-06-12 | 2016-11-09 | 惠龙易通国际物流股份有限公司 | 一种车船位置信息数据的处理方法及系统 |
CN107273195A (zh) * | 2017-05-24 | 2017-10-20 | 上海艾融软件股份有限公司 | 一种大数据的批处理方法、装置及计算机系统 |
CN108153883A (zh) * | 2017-12-26 | 2018-06-12 | 北京百度网讯科技有限公司 | 搜索方法和装置、计算机设备、程序产品以及存储介质 |
Non-Patent Citations (2)
Title |
---|
EVANGELOS OUTSIOS 等: "Data Node Splitting Policies for Improved Range Query Efficiency in k-dimensional Point Data Indexes", 《 2011 15TH PANHELLENIC CONFERENCE ON INFORMATICS》 * |
张鹏远: "大数据分类存储及检索方法研究", 《中国优秀硕士学位论文全文数据库(信息科技辑)》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111292223A (zh) * | 2020-01-22 | 2020-06-16 | 北京百度网讯科技有限公司 | 图计算的处理方法、装置、电子设备及存储介质 |
CN111292223B (zh) * | 2020-01-22 | 2023-07-25 | 北京百度网讯科技有限公司 | 图计算的处理方法、装置、电子设备及存储介质 |
US11941055B2 (en) | 2020-01-22 | 2024-03-26 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Method and apparatus for graph computing, electronic device and storage medium |
Also Published As
Publication number | Publication date |
---|---|
CN110659312B (zh) | 2022-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107885762B (zh) | 智能大数据系统、提供智能大数据服务的方法和设备 | |
CN108537543B (zh) | 区块链数据的并行处理方法、装置、设备和存储介质 | |
CN111078147B (zh) | 一种缓存数据的处理方法、装置、设备及存储介质 | |
US20070061446A1 (en) | Storage management system and method | |
US20230120580A1 (en) | Access control method and apparatus for shared memory, electronic device and autonomous vehicle | |
US11341044B2 (en) | Reclaiming storage resources | |
US8972676B2 (en) | Assigning device adaptors and background tasks to use to copy source extents to target extents in a copy relationship | |
CN111176850B (zh) | 一种数据池的构建方法、装置、服务器及介质 | |
CN117355817A (zh) | 区片段驱动器管理 | |
CN115543965A (zh) | 跨机房数据处理方法、设备、存储介质及程序产品 | |
CN109271193B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN110659312B (zh) | 数据处理的方法、装置、设备和计算机存储介质 | |
CN111736975A (zh) | 请求控制方法、装置、计算机设备及计算机可读存储介质 | |
CN111913812B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
US9703601B2 (en) | Assigning levels of pools of resources to a super process having sub-processes | |
US10956385B2 (en) | Management of unique identifiers in a database | |
CN111738539B (zh) | 一种拣货任务分配方法、装置、设备及介质 | |
CN114385891A (zh) | 数据搜索方法、装置、电子设备及存储介质 | |
CN112434013A (zh) | 数据表迁移方法、装置、电子设备及存储介质 | |
US8966133B2 (en) | Determining a mapping mode for a DMA data transfer | |
US10747627B2 (en) | Method and technique of achieving extraordinarily high insert throughput | |
US20200310879A1 (en) | Memory management in a multi-threaded computing environment | |
US11748002B2 (en) | Highly concurrent data store allocation | |
US20220197927A1 (en) | Techniques for live repartitioning of cross-service database shards | |
JP5630800B2 (ja) | 情報処理システムおよび負荷分散方法 |
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 |