CN107967273A - 数据获取方法、数据节点及系统 - Google Patents
数据获取方法、数据节点及系统 Download PDFInfo
- Publication number
- CN107967273A CN107967273A CN201610912439.0A CN201610912439A CN107967273A CN 107967273 A CN107967273 A CN 107967273A CN 201610912439 A CN201610912439 A CN 201610912439A CN 107967273 A CN107967273 A CN 107967273A
- Authority
- CN
- China
- Prior art keywords
- data
- node
- back end
- section point
- stored
- 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.)
- Pending
Links
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/25—Integrating or interfacing systems involving database management systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5682—Policies or rules for updating, deleting or replacing the stored data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5683—Storage of data provided by user terminals, i.e. reverse caching
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据获取方法、数据节点及系统,属于数据库技术领域。该方法用于集群数据库系统中的第一节点,该方法包括:接收第二节点发送的第一元组信息,根据第一元组信息查询第一节点指定缓存区是否存储有第一数据,若第一节点指定缓存区存储有第一数据,从第一节点指定缓存区内获取第一数据,第二节点为多个数据节点中除第一节点之外的任一节点,第一元组信息包括用于标识集群数据库系统中存储的第一数据的第一数据标识,第一数据为存储于第二节点的数据;解决了集群数据库系统网络传输量较大,对集群数据库系统造成较大网络负担的问题,降低了网络传输量,减小了集群数据库系统的网络负担以及发送节点的负载消耗。
Description
技术领域
本发明涉及数据库技术领域,特别涉及一种数据获取方法、数据节点及系统。
背景技术
集群数据库系统是指将一组数据库服务器以集群的方式组合起来,使用统一的接口向用户提供服务。集群数据库系统可以将复杂的任务分解为多个简单的子任务来并行处理。集群数据库系统包括多个协调节点和多个数据节点,为了完成数据检索任务,数据需要在不同的节点之间传输。
在执行查询语句的过程中,当数据节点A1需要向另一数据节点A2传输数据时,数据节点A1会读取本地的数据,再将数据传输至数据节点A2;当数据节点A1需要获取来自数据节点A2的数据时,数据节点A1会向数据节点A2发送数据获取请求,数据节点A2根据该数据获取请求将读取的相应数据传输至数据节点A1。
上述过程中,一个数据节点在向另一个数据节点传输数据时,都是直接读取本地的数据,再将数据传输至另一个数据节点,即每一次数据传输都需要通过网络链路传输相应的数据,所以整个集群数据库系统的网络传输量较大,对集群数据库系统造成较大的网络负担。
发明内容
本发明提供了一种数据获取方法、数据节点及系统,用以减少集群数据库系统中数据节点之间的数据传输,降低集群数据库系统的网络传输量,减小集群数据库系统的网络负担。所述技术方案如下:
第一方面,提供了一种数据获取方法,用于集群数据库系统中的第一节点,第一节点为集群数据库系统中多个数据节点中的任一节点,该方法包括:接收第二节点发送的第一元组信息,第二节点为多个数据节点中除第一节点之外的任一节点,第一元组信息包括用于标识集群数据库系统中存储的第一数据的第一数据标识,第一数据为存储于第二节点的数据;根据第一元组信息查询第一节点的指定缓存区内是否存储有第一数据;若第一节点的指定缓存区内存储有第一数据,从第一节点的指定缓存区内获取第一数据。
由于第一节点能够根据第二节点发送的第一元组信息查询第一节点的指定缓存区内是否存储有第一数据,且若第一节点的指定缓存区内存储有第一数据,第一节点直接从第一节点的指定缓存区内获取第一数据,相较于现有技术,第二节点无需直接向第一节点发送第一数据,减少了第二节点与第一节点之间网络链路上的数据传输量,降低了集群数据库系统的网络传输量,减小了集群数据库系统的网络负担。
该方法中的第一元组信息的数据量较小,所以第一元组信息的传输量较小,占用内存也较小,且第一元组信息的数据量远小于第一数据的数据量。此外,为了进一步减小第一元组信息的占用内存,还可以将第一元组信息进行封装,或者将第一元组信息以一定的格式嵌入在某个占用内存较小的消息中。
可选的,该方法还可以包括:若第一节点的指定缓存区内未存储有第一数据,向第二节点发送第一获取请求,并接收第二节点发送的第一数据,第一获取请求用于请求第一数据。
若第一节点的指定缓存区内未存储有第一数据,第一节点再向第二节点发送第一获取请求,以便于第二节点向第一节点发送第一数据。所以该数据获取方法,使得第一节点在真正需要获取第二节点发送的第一数据时,才向第二节点发送第一获取请求,请求获取第一数据,降低了集群数据库系统的网络传输量。
可选的,该方法还可以包括:当第一节点的指定缓存区的剩余空间的大小小于预设值时,删除目标数据,该目标数据为满足预设条件的数据。
第一节点可以检测第一节点的指定缓存区的剩余空间的大小是否小于预设值,当第二节点的指定缓存区的剩余空间的大小小于预设值时,删除目标数据,避免该指定缓存区的剩余空间过小,而无法缓存第一节点向第二节点请求获取的数据。其中,预设值可以根据需求来设置。
可选的,预设条件为数据的访问频率低于预设阈值。如当第一节点检测到第一节点的指定缓存区的剩余空间的大小小于预设值时,第一节点可以根据各个数据的访问频率删除访问频率较低的数据。
示例的,也可以考虑数据的存储时间,比如,当第一节点的指定缓存区的剩余空间的大小小于预设值时,缓存组件可以综合考虑各个数据的存储时间以及访问频率,删除存储时间较长且访问频率较低的数据。又如,当第一节点的指定缓存区的剩余空间的大小小于预设值时,缓存组件可以综合考虑各个数据所占用的空间以及访问频率,删除所占空间较大且访问频率较低的数据。
可选的,第一元组信息中的第一数据标识包括:位置标识和节点标识,该位置标识用于指示第一数据存储于第二节点对应的磁盘中的位置,该节点标识用于指示存储第一数据的第二节点的标识,根据第一元组信息查询第一节点的指定缓存区内是否存储有第一数据,包括:根据第一数据标识查询预设的标识与数据的对应关系,该标识与数据的对应关系用于记录第一节点的指定缓存区内存储的数据所对应的标识;当在标识与数据的对应关系查询到与第一数据标识相同的标识时,确定第一节点的指定缓存区内存储有第一数据。
由于第一数据标识包括位置标识和节点标识,所以可以根据第一数据标识查询预设的标识与数据的对应关系,当在标识与数据的对应关系查询到与第一数据标识相同的标识时,则可以确定第一节点的指定缓存区内存储有第一数据,以便于第一节点从第一节点的指定缓存区内获取第一数据。
第二方面,提供了一种数据获取方法,用于集群数据库系统中的第二节点,该第二节点为集群数据库系统中多个数据节点中的任一节点,该方法包括:获取第一元组信息,该第一元组信息包括用于标识集群数据库系统中存储的第一数据的第一数据标识;向第一节点发送第一元组信息,以便于第一节点在根据第一元组信息查询到第一节点的指定缓存区内存储有第一数据时,从第一节点的指定缓存区内获取第一数据,第一节点为多个数据节点中除第二节点之外的任一节点。
由于第二节点能够将获取的第一元组信息发送至第一节点,使得第一节点在根据第一元组信息查询到第一节点的指定缓存区内存储有第一数据时,可以从第一节点的指定缓存区内直接获取第一数据,相较于现有技术,第二节点无需直接将磁盘的第一数据读入内存中,并将第一数据发送至第一节点,减少了第二节点与第一节点之间网络链路上的数据传输量,降低了集群数据库系统的网络传输量,减少了第二节点中磁盘到内存的数据的处理量,减少了第二节点的磁盘I/O访问量以及内存的使用量,从而减小了集群数据库系统的网络负担以及发送节点的负载消耗。
可选的,在向第一节点发送第一元组信息之后,该方法还可以包括:在接收到第一节点发送的第一获取请求后,获取第一数据,该第一获取请求用于请求第一数据,第一获取请求是第一节点在查询第一节点的指定缓存区内未存储有第一数据时生成的;根据第一获取请求将第一数据发送至第一节点。
当第一节点的指定缓存区内未存储有第一数据时,第一节点向第二节点发送第一获取请求,以便于第二节点向第一节点发送第一数据。所以该数据获取方法,使得第一节点在真正需要获取第二节点发送的第一数据时,才向第二节点发送第一获取请求,请求获取第一数据,减小了集群数据库系统的网络传输量,第二节点无需直接将磁盘的第一数据读入内存中,并将第一数据发送至第一节点,减少了第二节点中磁盘到内存的数据的处理量,减少了第二节点的磁盘I/O访问量以及内存的使用量。
可选的,在获取第一元组信息之后,该方法还可以包括:获取查询指令,该查询指令包括节点标识和位置标识,该节点标识用于指示存储第二数据的目标节点的标识,该位置标识用于指示第二数据存储于目标节点对应的磁盘中的位置;根据节点标识判断目标节点是第二节点还是第一节点;若目标节点是第二节点,获取第二数据;若目标节点是第一节点,查询第二节点的指定缓存区内是否存储有第二数据;若第二节点的指定缓存区内存储有第二数据,从第二节点的指定缓存区内获取第二数据;若第二节点的指定缓存区内未存储有第二数据,向第一节点发送第二获取请求,并接收第一节点发送的第二数据,第二获取请求用于请求第二数据。
同样的,当第二节点需要获取第二数据时,第二节点先根据节点标识判断存储第二数据的目标节点是第二节点还是第一节点,若目标节点是第一节点,从第二节点的指定缓存区内获取第二数据,若第二节点的指定缓存区内未存储有第二数据,第二节点再请求第一节点发送第二数据,所以该数据获取方法,使得第二节点在真正需要获取第一节点发送的第二数据时,才向第一节点发送第二获取请求,请求获取第二数据,减小了集群数据库系统的网络传输量,减轻了集群数据库系统的网络负担。
可选的,第一元组信息中的第一数据标识包括:位置标识和节点标识,该位置标识用于指示第一数据存储于第二节点对应的磁盘中的位置,该节点标识用于指示存储第一数据的第二节点的标识,具体的,获取第一数据,包括:根据第一元组信息确定第一数据存储于第二节点对应的磁盘中的位置;将第一数据从第二节点对应的磁盘中读入第二节点对应的内存。
第一数据标识包括:位置标识和节点标识,所以可以根据第一元组信息确定第一数据存储于第二节点对应的磁盘中的位置,以便于第二节点将第一数据从磁盘中读入内存,从而将第一数据发送至第一节点。
可选的,该方法还可以包括:当第二节点的指定缓存区的剩余空间的大小小于预设值时,删除目标数据,该目标数据为满足预设条件的数据。
当第二节点的指定缓存区内未存储有第二数据时,第二节点可以检测第二节点的指定缓存区的剩余空间的大小是否小于预设值,当第二节点的指定缓存区的剩余空间的大小小于预设值时,删除目标数据,避免该指定缓存区的剩余空间过小,而无法缓存第二节点向第一节点请求获取的数据。
可选的,预设条件为数据的访问频率低于预设阈值。
可选的,集群数据库系统的各个节点可以设置元组解析组件,该元组解析组件用于发送或接收元组信息,并对接收到的元组信息进行解析。
可选的,集群数据库系统的各个节点还可以设置缓存组件,该缓存组件能够提供用于缓存其余节点发送的数据的指定缓存区。该缓存组件还能够根据淘汰规则淘汰指定缓存区中的部分缓存数据,如当第一节点检测到第一节点的指定缓存区的剩余空间的大小小于预设值时,第一节点的缓存组件可以根据各个数据的访问频率删除访问频率较低的数据。
第三方面,提供了一种数据节点,该数据节点为集群数据库系统中的任一数据节点,该数据节点包括:至少一个单元,该至少一个单元用于实现上述第一方面所提供的数据获取方法。
第四方面,提供了一种数据节点,该数据节点为集群数据库系统中的任一数据节点,该数据节点包括:至少一个单元,该至少一个单元用于实现上述第二方面所提供的数据获取方法。
第五方面,提供了一种数据节点,该数据节点为集群数据库系统中的任一数据节点,该数据节点包括:处理器、存储器、网络接口和总线。总线用于连接处理器、存储器和网络接口,处理器用于执行存储器中存储的程序来实现上述第一方面所提供的数据获取方法。
第六方面,提供了一种数据节点,该数据节点为集群数据库系统中的任一数据节点,该数据节点包括:处理器、存储器、网络接口和总线。总线用于连接处理器、存储器和网络接口,处理器用于执行存储器中存储的程序来实现上述第二方面所提供的数据获取方法。
第七方面,提供了一种数据获取系统,包括第一节点和第二节点,
所述第一节点包括第三方面所述的数据节点;
所述第二节点包括第四方面所述的数据节点。
第八方面,提供了一种数据获取系统,包括第一节点和第二节点,
所述第一节点包括第五方面所述的数据节点;
所述第二节点包括第六方面所述的数据节点。
上述第三至第八方面所获得的技术效果与上述第一方面和第二方面中对应的技术手段所获得的技术效果近似,本发明在这里不再赘述。
综上所述,本发明提供的技术方案带来的有益效果是:
本发明提供的数据获取方法、数据节点及系统,由于第一节点能够根据第二节点发送的第一元组信息查询第一节点的指定缓存区内是否存储有第一数据,且若第一节点的指定缓存区内存储有第一数据,第一节点直接从第一节点的指定缓存区内获取第一数据,相较于现有技术,第二节点无需直接向第一节点发送第一数据,减少了第二节点与第一节点之间网络链路上的数据传输量,降低了集群数据库系统的网络传输量,减少了第二节点的磁盘I/O访问量以及内存的使用量,从而减小了集群数据库系统的网络负担以及发送节点的负载消耗。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明各个实施例所涉及的实施环境的示意图;
图2是本发明实施例提供的一种数据获取方法的流程图;
图3-1是本发明实施例提供的另一种数据获取方法的流程图;
图3-2是本发明实施例提供的一种第一节点查询第一节点的指定缓存区内是否存储有第一数据的流程图;
图3-3是本发明实施例提供的一种第二节点获取第一数据的流程图;
图4是现有技术中的数据获取方法的示意图;
图5-1是本发明实施例提供的一种数据节点的结构示意图;
图5-2是本发明实施例提供的另一种数据节点的结构示意图;
图6-1是本发明实施例提供的又一种数据节点的结构示意图;
图6-2是本发明实施例提供的再一种数据节点的结构示意图;
图7是本发明实施例提供的一种数据节点的结构示意图。
通过上述附图,已示出本发明明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本发明构思的范围,而是通过参考特定实施例为本领域技术人员说明本发明的概念。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
图1示出了本发明各个实施例所涉及的实施环境(即集群数据库系统)的示意图,该实施环境可以包括多个数据节点和一个协调节点001,数据节点指的是各种具有计算能力、可以进行数据处理的功能模块,如虚拟机、计算容器和物理服务器等通过软件或硬件实现的功能模块。协调节点可以通过硬件或软件实现,例如,协调节点可以包括硬件实现的数据节点管理中心或者为软件实现的第三方应用程序等。协调节点用于统一管理与协调各数据节点对数据访问的一致性,正确性等问题。图1示出了两个数据节点,该两个数据节点分别是第一节点002和第二节点003。
其中,协调节点001用于接收用户发起的查询语句(该查询语句包括查询指令),如结构化查询语言(英文:Structured Query Language;简称:SQL),并将查询语句发送至第二节点003,第二节点003用于解析并执行该查询语句。具体的,第二节点003根据该查询语句判断是否需要向第一节点002发送第一数据,当需要向第一节点002发送第一数据时,先向第一节点002发送相关的元组信息,以便于第一节点002根据该元组信息查询第一节点002的指定缓存区内是否存储有第一数据。若第一节点002的指定缓存区内存储有第一数据,第一节点002从第一节点002的指定缓存区内直接获取第一数据;若第一节点002的指定缓存区内未存储有第一数据,第一节点002再向第二节点003请求获取第一数据。
第二节点003还用于根据该查询语句判断是否需要获取目标节点存储的第二数据。当需要获取目标节点存储的第二数据时,根据查询语句中的节点标识判断目标节点是否是第二节点003。当目标节点是第二节点003时,第二节点003直接从本地获取第二数据;当目标节点不是第二节点003时,第二节点003查询第二节点003的指定缓存区内是否存储有第二数据。若第二节点003的指定缓存区内存储有第二数据,第二节点003从第二节点003的指定缓存区内直接获取第二数据;若第二节点003的指定缓存区内未存储有第二数据,第二节点003再向目标节点请求获取第二数据。
同样的,协调节点001也可以将查询语句发送至第一节点002,使第一节点002解析并执行该查询语句。本发明实施例对数据节点和协调节点的数量不作限制。
本发明实施例提供了一种数据获取方法,用于图1所示的集群数据库系统,如图2所示,该方法包括:
步骤201、第二节点获取第一元组信息。
第二节点为集群数据库系统中多个数据节点中的任一节点。第一元组信息包括用于标识集群数据库系统中存储的第一数据的第一数据标识。第一数据为存储于第二节点的数据。
步骤202、第二节点向第一节点发送第一元组信息。
第一节点为多个数据节点中除第二节点之外的任一节点。第二节点将获取的第一元组信息发送至第一节点,使得第二节点能够根据第一元组信息查询第一节点的指定缓存区内是否存储有第一数据。
步骤203、第一节点根据第一元组信息查询第一节点的指定缓存区内是否存储有第一数据。
第一节点接收到第二节点发送的第一元组信息后,可以根据该第一元组信息查询第一节点的指定缓存区内是否存储有第一数据。
步骤204、若第一节点的指定缓存区内存储有第一数据,第一节点从第一节点的指定缓存区内获取第一数据。
第一节点根据第一元组信息查询第一节点的指定缓存区内是否存储有第一数据,若第一节点的指定缓存区内存储有第一数据,第一节点从第一节点的指定缓存区内获取第一数据。
综上所述,本发明实施例提供的数据获取方法,由于第一节点能够根据第二节点发送的第一元组信息查询第一节点的指定缓存区内是否存储有第一数据,且若第一节点的指定缓存区内存储有第一数据,第一节点直接从第一节点的指定缓存区内获取第一数据,相较于现有技术,第二节点无需直接向第一节点发送第一数据,减少了第二节点与第一节点之间网络链路上的数据传输量,降低了集群数据库系统的网络传输量,减少了第二节点的磁盘I/O访问量以及内存的使用量,从而减小了集群数据库系统的网络负担以及发送节点的负载消耗。
本发明实施例提供了一种数据获取方法,用于图1所示的集群数据库系统,如图3-1所示,该方法可以包括:
步骤401、第二节点获取第一元组信息。执行步骤402。
该第二节点为集群数据库系统中多个数据节点中的任一节点。
示例的,如图1所示,协调节点001在接收到用户发起的查询语句后,会将该查询语句发送至第二节点003,第二节点003在接收到在该查询语句后,解析该查询语句,并执行该查询语句。具体的,第二节点003可以根据该查询语句判断是否需要向第一节点发送第一数据,当需要向第一节点发送第一数据时,第二节点获取第一元组信息。
该第一元组信息包括用于标识集群数据库系统中存储的第一数据的第一数据标识。可选的,本发明实施例中的集群数据库系统的各个节点可以设置元组解析组件,该元组解析组件用于发送或接收元组信息,并对接收到的元组信息进行解析。示例的,第二节点的元组解析组件可以从内存中获取第一元组信息。
集群数据库系统中存储的所有数据中每个数据都对应一个数据标识,通过该数据标识,可以唯一确定一个数据。其中,集群数据库系统可以采用分布式键值存储方式存储数据,分布式键值存储方式通过键值对存储半结构化数据,关于分布式键值存储方式可以参考现有技术,本发明实施例在此不再赘述。
本发明实施例中的第一元组信息的数据量较小,所以第一元组信息的传输量较小,占用内存也较小,且第一元组信息的数据量远小于第一数据的数据量。此外,为了进一步减小第一元组信息的占用内存,还可以将第一元组信息进行封装,或者将第一元组信息以一定的格式嵌入在某个占用内存较小的消息中。
步骤402、第二节点向第一节点发送第一元组信息。执行步骤403。
示例的,第二节点的元组解析组件可以向第一节点的元组解析组件发送第一元组信息,以便于第一节点根据该第一元组信息查询第一节点的指定缓存区内是否存储有第一数据。
步骤403、第一节点根据第一元组信息查询第一节点的指定缓存区内是否存储有第一数据。若第一节点的指定缓存区内存储有第一数据,执行步骤404;若第一节点的指定缓存区内未存储有第一数据,执行步骤405。
可选的,第一元组信息中的第一数据标识包括:位置标识和节点标识。其中,该位置标识用于指示第一数据存储于第二节点对应的磁盘中的位置,该位置指的是数据在磁盘中的存储位置,也即是,数据在磁盘中的存储地址。该节点标识用于指示存储第一数据的第二节点的标识。示例的,该位置标识为位置A,即第一数据存储于第二节点对应的磁盘中的位置为位置A,该节点标识为003,即存储第一数据的第二节点的标识为003。需要说明的是,第二节点的标识还可以为其他任一能够标识第二节点的身份信息,本发明实施例对节点的标识的具体形式不做限定。
示例的,第一节点的元组解析组件可以解析第二节点发送的第一元组信息,并确定第一元组信息中的位置标识和节点标识。
需要说明的是,本发明实施例中的集群数据库系统的各个节点可以设置缓存组件,该缓存组件能够提供用于缓存其余节点发送的数据的指定缓存区。
相应的,如图3-2所示,步骤403可以包括:
步骤4031、根据第一数据标识查询预设的标识与数据的对应关系。
该标识与数据的对应关系用于记录第一节点的指定缓存区内存储的数据所对应的标识。示例的,表1示出了标识与数据的对应关系的一种示意图,如表1所示,第四数据对应的标识中的位置标识是:位置F,节点标识是:007。第一节点的元组解析组件在接收到第一元组信息后,可以根据第一元组信息包括的第一数据标识查询表1。
表1
步骤4032、当在标识与数据的对应关系查询到与第一数据标识相同的标识时,确定第一节点的指定缓存区内存储有第一数据。
以表1为例,当第一节点的元组解析组件在表1中查询到与第一数据标识相同的标识时,第一节点则可以确定第一节点的指定缓存区内存储有第一数据,当第一节点的元组解析组件在表1中未查询到与第一数据标识相同的标识时,第一节点则可以确定第一节点的指定缓存区内未存储有第一数据。以第一数据标识中的位置标识为位置A,节点标识为003为例,由于表1中存在与第一数据标识相同的标识,所以第一节点可以确定第一节点的指定缓存区内存储有第一数据。
步骤404、第一节点从第一节点的指定缓存区内获取第一数据。
当第一节点根据第一元组信息查询到第一节点的指定缓存区内存储有第一数据时,第一节点则直接从第一节点的指定缓存区内获取第一数据。示例的,第一节点的元组解析组件可以从第一节点的缓存组件提供的指定缓存区内获取第一数据。这样一来,第二节点向第一节点发送数据量较小的第一元组信息,即可使第一节点获取第一数据,第二节点无需直接向第一节点发送第一数据,也即第二节点无需直接将磁盘的第一数据读入内存中,并将第一数据发送至第一节点,第二节点中磁盘到内存的数据的处理量减少,且第一元组信息占用内存较小,因此,减少了第一节点与第二节点之间网络链路上的数据传输量,降低了集群数据库系统的网络传输量,减少了第二节点的磁盘I/O访问量以及内存的使用量,从而减小了集群数据库系统的网络负担以及发送节点的负载消耗。
需要补充说明的是,磁盘I/O指的是将数据从磁盘读入内存的操作。完成磁盘I/O操作要消耗许多资源并且耗时较长,所以数据库一般侧重于提高磁盘I/O效率,减少磁盘I/O访问量。
至此,第二节点执行完查询语句,第二节点将执行结果返回至协调节点。
步骤405、第一节点向第二节点发送第一获取请求。执行步骤406。
该第一获取请求用于请求第一数据。示例的,第一节点的标识可以为002。若第一节点根据第一元组信息查询到第一节点的指定缓存区内未存储有第一数据,则生成第一获取请求,第一节点的元组解析组件将该第一获取请求发送至第二节点的元组解析组件。可选的,第二节点在接收到第一节点发送的第一获取请求后,可以向第一节点发送请求响应。
步骤406、第二节点获取第一数据。执行步骤407。
示例的,第二节点的元组解析组件可以接收第一获取请求,并获取第一数据。
可选的,如步骤403所述,由于第一元组信息中的第一数据标识可以包括:位置标识和节点标识,该位置标识用于指示第一数据存储于第二节点对应的磁盘中的位置,该节点标识用于指示存储第一数据的第二节点的标识,所以,相应的,如图3-3所示,步骤406可以包括:
步骤4061、根据第一元组信息确定第一数据存储于第二节点对应的磁盘中的位置。
第二节点根据第一元组信息包括的第一数据标识中的位置标识,确定第一数据存储于第二节点对应的磁盘中的位置。示例的,第一数据标识中的位置标识为位置A,所以第二节点可以根据该位置标识确定第一数据存储于第二节点对应的磁盘中的位置。
步骤4062、将第一数据从第二节点对应的磁盘中读入第二节点对应的内存。
第二节点在确定了第一数据存储于第二节点对应的磁盘中的位置之后,可以将第一数据从第二节点对应的磁盘中读入第二节点对应的内存,以便将第一数据发送至第一节点。
步骤407、第二节点根据第一获取请求将第一数据发送至第一节点。
至此,第二节点执行完查询语句,第二节点将执行结果返回至协调节点。
步骤408、第一节点检测第一节点的指定缓存区的剩余空间的大小是否小于预设值。执行步骤409。
第一节点可以检测第一节点的指定缓存区的剩余空间的大小是否小于预设值,避免该指定缓存区的剩余空间过小,而无法缓存第一节点向第二节点请求获取的数据。其中,预设值可以根据需求来设置。
需要说明的是,步骤408和步骤407无先后顺序。
步骤409、当第一节点的指定缓存区的剩余空间的大小小于预设值时,第一节点删除目标数据。
该目标数据为满足预设条件的数据。示例的,当剩余空间的大小小于预设值时,第一节点的缓存组件可以根据淘汰规则淘汰其中的部分缓存数据。具体的,第一节点检测到第一节点的指定缓存区的剩余空间的大小小于预设值时,第一节点的缓存组件可以将满足预设条件的目标数据删除掉,以便于缓存组件提供的指定缓存区能够缓存第一节点向第二节点请求获取的数据。示例的,预设条件为数据的访问频率低于预设阈值。当剩余空间的大小小于预设值时,缓存组件可以根据各个数据的访问频率删除访问频率较低的数据,如将访问频率小于100次每分钟的数据删除掉。
示例的,也可以考虑数据的存储时间,比如,当第一节点的指定缓存区的剩余空间的大小小于预设值时,缓存组件可以综合考虑各个数据的存储时间以及访问频率,删除存储时间较长且访问频率较低的数据。又如,当第一节点的指定缓存区的剩余空间的大小小于预设值时,缓存组件可以综合考虑各个数据所占用的空间以及访问频率,删除所占空间较大且访问频率较低的数据。
此外,缓存组件还可以以其他方式删除目标数据,本发明实施例对此不做限定。
步骤410、第二节点获取查询指令。执行步骤411。
查询指令包括节点标识和位置标识,该节点标识用于指示存储第二数据的目标节点的标识,该位置标识用于指示第二数据存储于目标节点对应的磁盘中的位置。
示例的,如图1所示,协调节点001在接收到用户发起的查询语句后,会将该查询语句发送至第二节点003,第二节点003在接收到在该查询语句后,解析该查询语句,并执行该查询语句,该查询语句包括查询指令。第二节点可以根据该查询语句判断是否需要获取目标节点存储的第二数据。
步骤411、第二节点根据节点标识判断目标节点是第二节点还是第一节点。
第二节点获取查询指令后,再根据节点标识判断目标节点是第二节点还是第一节点。
步骤412、若目标节点是第二节点,第二节点获取第二数据。
示例的,第二节点的元组解析组件可以根据节点标识,判断目标节点是第二节点还是第一节点。假设,目标节点的标识为006,而第二节点的标识为003,第一节点的标识为006,那么可以确定目标节点是第一节点。若目标节点是第二节点,第二节点可以通过存储引擎将第二数据从第二节点对应的磁盘中读入第二节点对应的内存。
步骤413、若目标节点是第一节点,第二节点查询第二节点的指定缓存区内是否存储有第二数据。若第二节点的指定缓存区内存储有第二数据,执行步骤414;若第二节点的指定缓存区内未存储有第二数据,执行步骤415。
若目标节点是第一节点,第二节点先查询第二节点的指定缓存区内是否存储有第二数据,若第二节点的指定缓存区内存储有第二数据,第二节点从第二节点的指定缓存区内直接获取第二数据,无需向第一节点请求获取第二数据。示例的,第二节点的元组解析组件可以根据节点标识和位置标识查询第二节点的指定缓存区内是否存储有第二数据。
步骤414、第二节点从第二节点的指定缓存区内获取第二数据。
若第二节点查询到第二节点的指定缓存区内存储有第二数据,第二节点则从第二节点的指定缓存区内直接获取第二数据。示例的,第二节点的元组解析组件可以从第二节点的缓存组件提供的指定缓存区内获取第二数据。
至此,第二节点执行完查询指令指示的任务,第二节点将执行结果返回至协调节点。
步骤415、第二节点向第一节点发送第二获取请求。
第二获取请求用于请求第二数据。
第二节点查询到第二节点的指定缓存区内未存储有第二数据,则生成第二获取请求,并向第一节点发送第二获取请求。第二获取请求包括查询指令中的节点标识和位置标识。示例的,第二节点的元组解析组件可以向第一节点发送第二获取请求。
步骤416、第一节点根据第二获取请求将第二数据发送至第二节点。
第一节点在接收到第二节点发送的第二获取请求后,可以向第二节点发送请求响应,同时,第一节点的元组解析组件可以根据第二获取请求中的位置标识,确定第二数据存储于第一节点对应的磁盘中的位置,在确定了第二数据存储于第一节点对应的磁盘中的位置后,可以将第二数据从第一节点对应的磁盘中读入第一节点对应的内存。最后,第一节点将第二数据发送至第二节点,使得第二节点获得第二数据。
至此,第二节点执行完查询指令指示的任务,第二节点将执行结果返回至协调节点。
步骤417、第二节点检测第二节点的指定缓存区的剩余空间的大小是否小于预设值。执行步骤418。
第二节点可以检测第二节点的指定缓存区的剩余空间的大小是否小于预设值,避免该指定缓存区的剩余空间过小,而无法缓存第二节点向第一节点请求获取的数据。
需要说明的是,步骤417和步骤416无先后顺序。
步骤418、当第二节点的指定缓存区的剩余空间的大小小于预设值时,第二节点删除目标数据。
该目标数据为满足预设条件的数据。示例的,第二节点内部的缓存组件可以根据淘汰规则淘汰其中的部分缓存数据。可选的,该预设条件可以为数据的访问频率低于预设阈值。步骤418的具体过程可以参考步骤409,在此不再赘述。
本发明实施例以用户发起的查询语句是:Select*from persons left joinscores on scores.id=persons.id,为例进行说明,该查询语句表明用户想要将表名为persons的表与表名为scores的表中,scores.id等于persons.id的项左连接。假设表名为persons的表如表2所示,表名为scores的表如表3所示。表2中记录了所有人的姓名与身份标识号码(英文:IDentity;简称:ID)的对应关系,表3记录了所有成绩与ID的对应关系。以图1所示的集群数据库系统为例进行说明,采用本发明实施例提供的数据获取方法执行该查询语句的过程可以为:协调节点001接收该查询语句:Select*from persons left joinscores on scores.id=persons.id,第二节点003先解析该查询语句,根据该查询语句判断需要向第一节点002发送数据(即表3中的数据),第二节点003向第一节点002发送表3中的数据对应的元组信息,该元组信息用于指示表3中的数据存储于第二节点003对应的磁盘中的位置,以及存储表3中的数据的第二节点003的标识。若第一节点002的指定缓存区内存储有表3中的数据,第一节点002从第一节点002的指定缓存区内获取表3中的数据,接着按照现有技术,第一节点002根据表3中的数据和表2中的数据,将两个表中scores.id等于persons.id的项左连接,得到的结果如表4所示。可以看出,采用本发明实施例在执行该查询语句时,第一节点和第二节点之间传输的数据由数据量较大的实际数据转变为数据量要小很多的元组信息,大大降低了两个节点之间网络链路上的数据传输量。
表2
ID | persons |
1 | 张三 |
2 | 李四 |
3 | 王二 |
表3
ID | scores |
1 | 90 |
2 | 99 |
3 | 100 |
表4
ID | persons | ID | scores |
1 | 张三 | 1 | 90 |
2 | 李四 | 2 | 99 |
3 | 王二 | 3 | 100 |
图4示出了现有技术中的一种数据获取方法的示意图,该数据获取方法采用晚期读取技术获取数据。具体的,先将磁盘中的第1列(col1)数据读入内存,再根据过滤条件过滤掉第1列数据中的部分数据,得到第2行数据、第3行数据及第5行数据,然后根据第1列数据中的第2行数据、第3行数据及第5行数据,将磁盘中的第2列(col2)数据和第3列(col3)数据中的相关数据(即第2列数据中的第2行数据、第3行数据和第5行数据,以及第3列数据中的第2行数据、第3行数据和第5行数据)读入内存。因此,降低了从磁盘读入内存的数据量,相应的数据具体为第2列数据中的部分数据(即第2列数据中的第1行数据和第4行数据)和第3列数据中的部分数据(即第3列数据中的第1行数据和第4行数据)。图4中的1至5分别表示第1列数据中第1至第5行数据,10至14分别表示第2列数据中第1至第5行数据,21至25分别表示第3列数据中第1至第5行数据。但是该过程仅是基于单机数据库系统的数据获取考虑的,该过程没有涉及集群数据库系统。在集群数据库系统中,数据需要在不同的节点之间流动,这些流动的数据在跨节点的时候会被全部从磁盘中读入内存,而读入内存的这些数据到了其他节点,还会被进一步过滤,所以,整个过程中会传送一些无用的数据,这样一来,增大了集群数据库系统的网络传输量、磁盘I/O访问量以及内存的使用量。
参见图1,现有技术中,集群数据库系统的不同节点之间的数据流动的过程为:协调节点001接收用户发起的查询语句,并将该查询语句发送至第二节点003,第二节点003解析并执行该查询语句,第二节点003在执行该查询语句的过程中,确定需要向第一节点002发送数据时,将该数据从第二节点003对应的磁盘中读入第二节点003对应的内存,再将数据直接发送至第一节点002。因此,在集群数据库系统中,当一个节点需要向另一个节点发送数据时,都是直接将数据从本地的磁盘中读入内存,再将数据发送至另一个节点。所以,集群数据库系统的网络传输量较大,磁盘I/O访问量以及内存的使用量较大,对集群数据库系统造成较大的网络负担,发送节点的负载消耗较大。
而本发明实施例提供的数据获取方法,针对集群数据库系统进行数据获取时,数据需要在不同节点之间流动的特点,采用缓存技术降低了数据流动的概率。由于元组信息的数据量较小,所以在节点的指定缓存区内存在实际数据的情况下,当跨节点传输数据时,不同节点之间无需传输数据量较大的实际数据,仅需传输数据量较小的元组信息,因此,大大降低了集群数据库系统的网络传输量,减少了节点的磁盘I/O访问量以及内存的使用量,从而减小了集群数据库系统的网络负担以及发送节点的负载消耗。
还需要补充说明的是,本发明实施例提供的数据获取方法,当第二节点需要向第一节点发送第一数据时,虽然将第一节点获取第一数据的时刻延迟到了第二节点向第一节点发送第一元组信息之后,但是,由于现有技术中第一节点在得到第二节点发送的第一数据后,还需要进一步对第一数据进行过滤,所以现有技术中第一节点获取到第一数据的时间较长。相较于现有技术,本发明实施例提供的数据获取方法中,第一节点获取到第一数据的时间较短,因此,本发明实施例提供的数据获取方法提高了数据的获取效率。
综上所述,本发明实施例提供的数据获取方法,由于第一节点能够根据第二节点发送的第一元组信息查询第一节点的指定缓存区内是否存储有第一数据,且若第一节点的指定缓存区内存储有第一数据,第一节点直接从第一节点的指定缓存区内获取第一数据,相较于现有技术,第二节点无需直接向第一节点发送第一数据,减少了第一节点与第二节点之间网络链路上的数据传输量,降低了集群数据库系统的网络传输量,减少了第二节点的磁盘I/O访问量以及内存的使用量,从而减小了集群数据库系统的网络负担以及发送节点的负载消耗,且提高了数据的获取效率。
下述为本发明装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例。
本发明实施例提供了一种数据节点,该数据节点为集群数据库系统中的任一数据节点,该数据节点可以为图1中的第一节点002,如图5-1所示,该数据节点包括:
接收单元610,用于接收第二节点发送的第一元组信息,第二节点为所述集群数据库系统中的另一数据节点,第一元组信息包括用于标识集群数据库系统中存储的第一数据的第一数据标识,第一数据为存储于第二节点的数据。该第二节点可以为图1中的第二节点003。
查询单元620,用于根据第一元组信息查询该数据节点的指定缓存区内是否存储有第一数据。
获取单元630,用于若该数据节点的指定缓存区内存储有第一数据,从该数据节点的指定缓存区内获取第一数据。
进一步的,如图5-2所示,该数据节点还可以包括:
发送单元640,用于若该数据节点的指定缓存区内未存储有第一数据时,向第二节点发送第一获取请求,第一获取请求用于请求第一数据。
接收单元610,还用于接收第二节点发送的第一数据。
进一步的,如图5-2所示,该数据节点还可以包括:
删除单元650,用于在该数据节点的指定缓存区的剩余空间的大小小于预设值时,删除目标数据,该目标数据为满足预设条件的数据。
可选的,第一元组信息中的第一数据标识包括:位置标识和节点标识,该位置标识用于指示第一数据存储于第二节点对应的磁盘中的位置,该节点标识用于指示存储第一数据的第二节点的标识。
相应的,查询单元620,具体用于:
根据第一数据标识查询预设的标识与数据的对应关系,标识与数据的对应关系用于记录该数据节点的指定缓存区内存储的数据所对应的标识;
当在标识与数据的对应关系查询到与第一数据标识相同的标识时,确定该数据节点的指定缓存区内存储有第一数据。
可选的,预设条件为数据的访问频率低于预设阈值。
示例的,也可以考虑数据的存储时间,比如,当该数据节点的指定缓存区的剩余空间的大小小于预设值时,缓存组件可以综合考虑各个数据的存储时间以及访问频率,删除存储时间较长且访问频率较低的数据。又如,当该数据节点的指定缓存区的剩余空间的大小小于预设值时,缓存组件可以综合考虑各个数据所占用的空间以及访问频率,删除所占空间较大且访问频率较低的数据。
此外,图5-2中其他标记含义可以参考图5-1进行说明。图5-1中各单元的具体工作过程可以参考图2所示的实施例方式进行说明,图5-2中各单元的具体工作过程可以参考图3-1所示的实施方式进行说明。
综上所述,本发明实施例提供的数据节点,由于该数据节点能够根据第二节点发送的第一元组信息查询该数据节点的指定缓存区内是否存储有第一数据,且若该数据节点的指定缓存区内存储有第一数据,该数据节点直接从指定缓存区内获取第一数据,相较于现有技术,第二节点无需直接向该数据节点发送第一数据,减少了第二节点与该数据节点之间网络链路上的数据传输量,降低了集群数据库系统的网络传输量,从而减小了集群数据库系统的网络负担。
本发明实施例提供了一种数据节点,该数据节点为集群数据库系统中的任一数据节点,该数据节点可以为图1中的第二节点003,如图6-1所示,该数据节点包括:
获取单元710,用于获取第一元组信息,第一元组信息包括用于标识集群数据库系统中存储的第一数据的第一数据标识。
发送单元720,用于向第一节点发送第一元组信息,以便于第一节点在根据第一元组信息查询到第一节点的指定缓存区内存储有第一数据时,从第一节点的指定缓存区内获取第一数据,第一节点为集群数据库系统中的另一数据节点。该第一节点可以为图1中的第一节点002。
进一步的,获取单元710,还用于在接收到第一节点发送的第一获取请求后,获取第一数据,第一获取请求用于请求第一数据,第一获取请求是第一节点在查询第一节点的指定缓存区内未存储有第一数据时生成的。
发送单元720,还用于根据第一获取请求将第一数据发送至第一节点。
进一步的,获取单元710,还用于获取查询指令,该查询指令包括节点标识和位置标识,该节点标识用于指示存储第二数据的目标节点的标识,该位置标识用于指示第二数据存储于目标节点对应的磁盘中的位置。
如图6-2所示,该数据节点还可以包括:
判断单元730,用于:
根据节点标识判断目标节点是该数据节点还是第一节点;
若目标节点是该数据节点,获取第二数据;
若目标节点是第一节点,查询该数据节点的指定缓存区内是否存储有第二数据;
若该数据节点的指定缓存区内存储有第二数据时,从该数据节点的指定缓存区内获取第二数据。
若该数据节点的指定缓存区内未存储有第二数据,向第一节点发送第二获取请求,并接收第一节点发送的第二数据,该第二获取请求用于请求第二数据。
可选的,第一元组信息中的第一数据标识包括:位置标识和节点标识,位置标识用于指示第一数据存储于该数据节点对应的磁盘中的位置,节点标识用于指示存储第一数据的该数据节点的标识。
相应的,获取单元710,具体用于:
根据第一元组信息确定第一数据存储于该数据节点对应的磁盘中的位置;
将第一数据从该数据节点对应的磁盘中读入该数据节点对应的内存。
进一步的,如图6-2所示,该数据节点还可以包括:
删除单元740,用于在该数据节点的指定缓存区的剩余空间的大小小于预设值时,删除目标数据,该目标数据为满足预设条件的数据。
可选的,预设条件为数据的访问频率低于预设阈值。
示例的,也可以考虑数据的存储时间,比如,当该数据节点的指定缓存区的剩余空间的大小小于预设值时,缓存组件可以综合考虑各个数据的存储时间以及访问频率,删除存储时间较长且访问频率较低的数据。又如,当该数据节点的指定缓存区的剩余空间的大小小于预设值时,缓存组件可以综合考虑各个数据所占用的空间以及访问频率,删除所占空间较大且访问频率较低的数据。
此外,图6-2中的其他标记含义可以参考图6-1进行说明。图6-1中各单元的具体工作过程可以参考图2所示的实施例方式进行说明,图6-2中各单元的具体工作过程可以参考图3-1所示的实施方式进行说明。
综上所述,本发明实施例提供的数据节点,由于该数据节点能够将获取的第一元组信息发送至第一节点,使得第一节点在根据第一元组信息查询到第一节点的指定缓存区内存储有第一数据时,可以从第一节点的指定缓存区内直接获取第一数据,相较于现有技术,该数据节点无需直接将磁盘的第一数据读入内存中,并将第一数据发送至第一节点,减少了第一节点与该数据节点之间网络链路上的数据传输量,降低了集群数据库系统的网络传输量,减少了该数据节点中磁盘到内存的数据的处理量,减少了该数据节点的磁盘I/O访问量以及内存的使用量,从而减小了集群数据库系统的网络负担以及发送节点的负载消耗。
本发明实施例提供了一种数据节点,该数据节点为集群数据库系统中的任一数据节点,该数据节点可以为图1中的第一节点002。如图7所示,该数据节点包括:处理器801、存储器802、网络接口803和总线804。总线804用于连接处理器801、存储器802和网络接口803,处理器801用于执行存储器802中存储的程序8021。上文中图5-1中的接收单元610和图5-2中的发送单元640,可以由网络接口803实现;图5-1中的查询单元620和获取单元630,图5-2中的删除单元650,可以由处理器801执行存储器802中存储的程序8021实现。
存储器802可能包含随机存取存储器(英文:Random Access Memory;简称:RAM),也可能包含非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过网络接口803(可以是有线或者无线)实现节点之间的通信连接。处理器801可以执行存储器802中存储的程序8021来实现集群数据库系统中的数据节点,并使得该数据节点执行下述数据获取方法:
接收第二节点发送的第一元组信息,第二节点为集群数据库系统中的另一数据节点,第一元组信息包括用于标识集群数据库系统中存储的第一数据的第一数据标识,第一数据为存储于第二节点的数据;
根据第一元组信息查询该数据节点的指定缓存区内是否存储有第一数据;
若该数据节点的指定缓存区内存储有第一数据,从该数据节点的指定缓存区内获取第一数据。
可选的,该方法还包括:
若该数据节点的指定缓存区内未存储有第一数据,向第二节点发送第一获取请求,并接收第二节点发送的第一数据,第一获取请求用于请求第一数据。
可选的,该方法还包括:当该数据节点的指定缓存区的剩余空间的大小小于预设值时,删除目标数据,目标数据为满足预设条件的数据。
可选的,预设条件为数据的访问频率低于预设阈值。
可选的,第一元组信息中的第一数据标识包括:位置标识和节点标识,位置标识用于指示第一数据存储于第二节点对应的磁盘中的位置,节点标识用于指示存储第一数据的第二节点的标识,
根据第一元组信息查询该数据节点的指定缓存区内是否存储有第一数据,包括:
根据第一数据标识查询预设的标识与数据的对应关系,标识与数据的对应关系用于记录该数据节点的指定缓存区内存储的数据所对应的标识;
当在标识与数据的对应关系查询到与第一数据标识相同的标识时,确定该数据节点的指定缓存区内存储有第一数据。
综上所述,本发明实施例提供的数据节点,由于该数据节点能够根据第二节点发送的第一元组信息查询该数据节点的指定缓存区内是否存储有第一数据,且若该数据节点的指定缓存区内存储有第一数据,该数据节点直接从指定缓存区内获取第一数据,相较于现有技术,第二节点无需直接向该数据节点发送第一数据,减少了第二节点与该数据节点之间网络链路上的数据传输量,降低了集群数据库系统的网络传输量,从而减小了集群数据库系统的网络负担。
本发明实施例提供了一种数据节点,该数据节点为集群数据库系统中的任一数据节点,该数据节点为图1中的第二节点003。参考图7,该数据节点包括:处理器、存储器、网络接口和总线。总线用于连接处理器、存储器和网络接口,处理器用于执行存储器中存储的程序。上文中图6-1中的发送单元720,可以由该网络接口实现;图6-1中的获取单元710,以及图6-2中的判断单元730和删除单元740,可以由处理器执行存储器中存储的程序实现。
存储器可能包含随机存取存储器,也可能包含非不稳定的存储器,例如至少一个磁盘存储器。通过网络接口(可以是有线或者无线)实现节点之间的通信连接。处理器可以执行存储器中存储的程序来实现集群数据库系统中的数据节点,并使得该数据节点执行下述数据获取方法:
获取第一元组信息,第一元组信息包括用于标识集群数据库系统中存储的第一数据的第一数据标识;
向第一节点发送第一元组信息,以便于第一节点在根据第一元组信息查询到第一节点的指定缓存区内存储有第一数据时,从第一节点的指定缓存区内获取第一数据,第一节点为集群数据库系统中的另一数据节点。
可选的,在向第一节点发送第一元组信息之后,该方法还包括:
在接收到第一节点发送的第一获取请求后,获取第一数据,第一获取请求用于请求第一数据,第一获取请求是第一节点在查询第一节点的指定缓存区内未存储有第一数据时生成的;
根据第一获取请求将第一数据发送至第一节点。
可选的,在获取第一元组信息之后,该方法还包括:
获取查询指令,查询指令包括节点标识和位置标识,节点标识用于指示存储第二数据的目标节点的标识,位置标识用于指示第二数据存储于目标节点对应的磁盘中的位置;
根据节点标识判断目标节点是该数据节点还是第一节点;
若目标节点是该数据节点,获取第二数据;
若目标节点是第一节点,查询该数据节点的指定缓存区内是否存储有第二数据;
若该数据节点的指定缓存区内存储有第二数据,从数据节点的指定缓存区内获取第二数据;
若该数据节点的指定缓存区内未存储有第二数据,向第一节点发送第二获取请求,并接收第一节点发送的第二数据,第二获取请求用于请求第二数据。
可选的,第一元组信息中的第一数据标识包括:位置标识和节点标识,位置标识用于指示第一数据存储于该数据节点对应的磁盘中的位置,节点标识用于指示存储第一数据的该数据节点的标识,
获取第一数据,包括:
根据第一元组信息确定第一数据存储于该数据节点对应的磁盘中的位置;
将第一数据从该数据节点对应的磁盘中读入该数据节点对应的内存。
可选的,该方法还包括:当该数据节点的指定缓存区的剩余空间的大小小于预设值时,删除目标数据,目标数据为满足预设条件的数据。
可选的,预设条件为数据的访问频率低于预设阈值。
综上所述,本发明实施例提供的数据节点,由于该数据节点能够将获取第一元组信息发送至第一节点,使得第一节点在根据第一元组信息查询到第一节点的指定缓存区内存储有第一数据时,可以从第一节点的指定缓存区内直接获取第一数据,相较于现有技术,该数据节点无需直接将磁盘的第一数据读入内存中,并将第一数据发送至第一节点,减少了第一节点与该数据节点之间网络链路上的数据传输量,降低了集群数据库系统的网络传输量,减少了该数据节点中磁盘到内存的数据的处理量,减少了该数据节点的磁盘I/O访问量以及内存的使用量,从而减小了集群数据库系统的网络负担以及发送节点的负载消耗。
本发明实施例还提供了一种数据获取系统,包括第一节点和第二节点。
其中,第一节点包括图5-1或图5-2所示的数据节点;
第二节点包括图6-1或图6-2所示的数据节点。
本发明实施例还提供了另一种数据获取系统,包括第一节点和第二节点。
其中,第一节点包括图7所示的数据节点;
第二节点包括图7所示的数据节点。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (23)
1.一种数据获取方法,其特征在于,用于集群数据库系统中的第一节点,所述第一节点为所述集群数据库系统中多个数据节点中的任一节点,所述方法包括:
接收第二节点发送的第一元组信息,所述第二节点为所述多个数据节点中除所述第一节点之外的任一节点,所述第一元组信息包括用于标识所述集群数据库系统中存储的第一数据的第一数据标识,所述第一数据为存储于所述第二节点的数据;
根据所述第一元组信息查询所述第一节点的指定缓存区内是否存储有所述第一数据;
若所述第一节点的指定缓存区内存储有所述第一数据,从所述第一节点的指定缓存区内获取所述第一数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述第一节点的指定缓存区内未存储有所述第一数据,向所述第二节点发送第一获取请求,并接收所述第二节点发送的第一数据,所述第一获取请求用于请求所述第一数据。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当所述第一节点的指定缓存区的剩余空间的大小小于预设值时,删除目标数据,所述目标数据为满足预设条件的数据。
4.根据权利要求1所述的方法,其特征在于,所述第一元组信息中的第一数据标识包括:位置标识和节点标识,所述位置标识用于指示所述第一数据存储于所述第二节点对应的磁盘中的位置,所述节点标识用于指示存储所述第一数据的第二节点的标识,
所述根据所述第一元组信息查询所述第一节点的指定缓存区内是否存储有所述第一数据,包括:
根据所述第一数据标识查询预设的标识与数据的对应关系,所述标识与数据的对应关系用于记录所述第一节点的指定缓存区内存储的数据所对应的标识;
当在所述标识与数据的对应关系查询到与所述第一数据标识相同的标识时,确定所述第一节点的指定缓存区内存储有所述第一数据。
5.根据权利要求3所述的方法,其特征在于,
所述预设条件为数据的访问频率低于预设阈值。
6.一种数据获取方法,其特征在于,用于集群数据库系统中的第二节点,所述第二节点为所述集群数据库系统中多个数据节点中的任一节点,所述方法包括:
获取第一元组信息,所述第一元组信息包括用于标识所述集群数据库系统中存储的第一数据的第一数据标识;
向第一节点发送所述第一元组信息,以便于所述第一节点在根据所述第一元组信息查询到所述第一节点的指定缓存区内存储有所述第一数据时,从所述第一节点的指定缓存区内获取所述第一数据,所述第一节点为所述多个数据节点中除所述第二节点之外的任一节点。
7.根据权利要求6所述的方法,其特征在于,在所述向第一节点发送所述第一元组信息之后,所述方法还包括:
在接收到所述第一节点发送的第一获取请求后,获取所述第一数据,所述第一获取请求用于请求所述第一数据,所述第一获取请求是所述第一节点在查询所述第一节点的指定缓存区内未存储有所述第一数据时生成的;
根据所述第一获取请求将所述第一数据发送至所述第一节点。
8.根据权利要求6所述的方法,其特征在于,在所述获取第一元组信息之后,所述方法还包括:
获取查询指令,所述查询指令包括节点标识和位置标识,所述节点标识用于指示存储第二数据的目标节点的标识,所述位置标识用于指示所述第二数据存储于所述目标节点对应的磁盘中的位置;
根据所述节点标识判断所述目标节点是所述第二节点还是所述第一节点;
若所述目标节点是所述第二节点,获取所述第二数据;
若所述目标节点是所述第一节点,查询所述第二节点的指定缓存区内是否存储有所述第二数据;
若所述第二节点的指定缓存区内存储有所述第二数据,从所述第二节点的指定缓存区内获取所述第二数据;
若所述第二节点的指定缓存区内未存储有所述第二数据,向所述第一节点发送第二获取请求,并接收所述第一节点发送的第二数据,所述第二获取请求用于请求所述第二数据。
9.根据权利要求7所述的方法,其特征在于,所述第一元组信息中的第一数据标识包括:位置标识和节点标识,所述位置标识用于指示所述第一数据存储于所述第二节点对应的磁盘中的位置,所述节点标识用于指示存储所述第一数据的第二节点的标识,
所述获取所述第一数据,包括:
根据所述第一元组信息确定所述第一数据存储于所述第二节点对应的磁盘中的位置;
将所述第一数据从所述第二节点对应的磁盘中读入所述第二节点对应的内存。
10.根据权利要求8所述的方法,其特征在于,所述方法还包括:
当所述第二节点的指定缓存区的剩余空间的大小小于预设值时,删除目标数据,所述目标数据为满足预设条件的数据。
11.根据权利要求10所述的方法,其特征在于,
所述预设条件为数据的访问频率低于预设阈值。
12.一种数据节点,其特征在于,所述数据节点为集群数据库系统中的任一数据节点,所述数据节点包括:
接收单元,用于接收第二节点发送的第一元组信息,所述第二节点为所述集群数据库系统中的另一数据节点,所述第一元组信息包括用于标识所述集群数据库系统中存储的第一数据的第一数据标识,所述第一数据为存储于所述第二节点的数据;
查询单元,用于根据所述第一元组信息查询所述数据节点的指定缓存区内是否存储有所述第一数据;
获取单元,用于若所述数据节点的指定缓存区内存储有所述第一数据,从所述数据节点的指定缓存区内获取所述第一数据。
13.根据权利要求12所述的数据节点,其特征在于,所述数据节点还包括:
发送单元,用于若所述数据节点的指定缓存区内未存储有所述第一数据,向所述第二节点发送第一获取请求,所述第一获取请求用于请求所述第一数据;
所述接收单元,还用于接收所述第二节点发送的第一数据。
14.根据权利要求13所述的数据节点,其特征在于,所述数据节点还包括:
删除单元,用于在所述数据节点的指定缓存区的剩余空间的大小小于预设值时,删除目标数据,所述目标数据为满足预设条件的数据。
15.根据权利要求12所述的数据节点,其特征在于,所述第一元组信息中的第一数据标识包括:位置标识和节点标识,所述位置标识用于指示所述第一数据存储于所述第二节点对应的磁盘中的位置,所述节点标识用于指示存储所述第一数据的第二节点的标识,
所述查询单元,具体用于:
根据所述第一数据标识查询预设的标识与数据的对应关系,所述标识与数据的对应关系用于记录所述数据节点的指定缓存区内存储的数据所对应的标识;
当在所述标识与数据的对应关系查询到与所述第一数据标识相同的标识时,确定所述数据节点的指定缓存区内存储有所述第一数据。
16.根据权利要求14所述的数据节点,其特征在于,
所述预设条件为数据的访问频率低于预设阈值。
17.一种数据节点,其特征在于,所述数据节点为集群数据库系统中的任一数据节点,所述数据节点包括:
获取单元,用于获取第一元组信息,所述第一元组信息包括用于标识所述集群数据库系统中存储的第一数据的第一数据标识;
发送单元,用于向第一节点发送所述第一元组信息,以便于所述第一节点在根据所述第一元组信息查询到所述第一节点的指定缓存区内存储有所述第一数据时,从所述第一节点的指定缓存区内获取所述第一数据,所述第一节点为所述集群数据库系统中的另一数据节点。
18.根据权利要求17所述的数据节点,其特征在于,
所述获取单元,还用于在接收到所述第一节点发送的第一获取请求后,获取所述第一数据,所述第一获取请求用于请求所述第一数据,所述第一获取请求是所述第一节点在查询所述第一节点的指定缓存区内未存储有所述第一数据时生成的;
所述发送单元,还用于根据所述第一获取请求将所述第一数据发送至所述第一节点。
19.根据权利要求17所述的数据节点,其特征在于,
所述获取单元,还用于获取查询指令,所述查询指令包括节点标识和位置标识,所述节点标识用于指示存储第二数据的目标节点的标识,所述位置标识用于指示所述第二数据存储于所述目标节点对应的磁盘中的位置;
所述数据节点还包括:
判断单元,用于:
根据所述节点标识判断所述目标节点是所述数据节点还是所述第一节点;
若所述目标节点是所述数据节点,获取所述第二数据;
若所述目标节点是所述第一节点,查询所述数据节点的指定缓存区内是否存储有所述第二数据;
若所述数据节点的指定缓存区内存储有所述第二数据,从所述数据节点的指定缓存区内获取所述第二数据;
若所述数据节点的指定缓存区内未存储有所述第二数据,向所述第一节点发送第二获取请求,并接收所述第一节点发送的第二数据,所述第二获取请求用于请求所述第二数据。
20.根据权利要求18所述的数据节点,其特征在于,所述第一元组信息中的第一数据标识包括:位置标识和节点标识,所述位置标识用于指示所述第一数据存储于所述数据节点对应的磁盘中的位置,所述节点标识用于指示存储所述第一数据的数据节点的标识,
所述获取单元,具体用于:
根据所述第一元组信息确定所述第一数据存储于所述数据节点对应的磁盘中的位置;
将所述第一数据从所述数据节点对应的磁盘中读入所述数据节点对应的内存。
21.根据权利要求19所述的数据节点,其特征在于,所述数据节点还包括:
删除单元,在所述数据节点的指定缓存区的剩余空间的大小小于预设值时,删除目标数据,所述目标数据为满足预设条件的数据。
22.根据权利要求21所述的数据节点,其特征在于,
所述预设条件为数据的访问频率低于预设阈值。
23.一种数据获取系统,其特征在于,包括第一节点和第二节点,
所述第一节点包括权利要求12至16任一所述的数据节点;
所述第二节点包括权利要求17至22任一所述的数据节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610912439.0A CN107967273A (zh) | 2016-10-19 | 2016-10-19 | 数据获取方法、数据节点及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610912439.0A CN107967273A (zh) | 2016-10-19 | 2016-10-19 | 数据获取方法、数据节点及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107967273A true CN107967273A (zh) | 2018-04-27 |
Family
ID=61996307
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610912439.0A Pending CN107967273A (zh) | 2016-10-19 | 2016-10-19 | 数据获取方法、数据节点及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107967273A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110580556A (zh) * | 2018-06-08 | 2019-12-17 | 阿里巴巴集团控股有限公司 | 数据处理方法及系统、处理器 |
CN110944065A (zh) * | 2019-12-13 | 2020-03-31 | 李炳勇 | 一种基于物联网的传感器数据传输方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102111448A (zh) * | 2011-01-13 | 2011-06-29 | 华为技术有限公司 | 分布式哈希表dht存储系统的数据预取方法、节点和系统 |
CN103036948A (zh) * | 2012-11-21 | 2013-04-10 | 北京航空航天大学 | 网络文件处理方法、执行节点、软件即服务SaaS平台 |
CN104243150A (zh) * | 2014-09-05 | 2014-12-24 | 中国联合网络通信集团有限公司 | 一种IPSec公钥交互方法、节点和DNS服务器 |
CN105138678A (zh) * | 2015-09-11 | 2015-12-09 | 武汉云空间地理信息技术有限公司 | 一种地图瓦片数据的读取、分发方法及读取、分发系统 |
-
2016
- 2016-10-19 CN CN201610912439.0A patent/CN107967273A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102111448A (zh) * | 2011-01-13 | 2011-06-29 | 华为技术有限公司 | 分布式哈希表dht存储系统的数据预取方法、节点和系统 |
CN103036948A (zh) * | 2012-11-21 | 2013-04-10 | 北京航空航天大学 | 网络文件处理方法、执行节点、软件即服务SaaS平台 |
CN104243150A (zh) * | 2014-09-05 | 2014-12-24 | 中国联合网络通信集团有限公司 | 一种IPSec公钥交互方法、节点和DNS服务器 |
CN105138678A (zh) * | 2015-09-11 | 2015-12-09 | 武汉云空间地理信息技术有限公司 | 一种地图瓦片数据的读取、分发方法及读取、分发系统 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110580556A (zh) * | 2018-06-08 | 2019-12-17 | 阿里巴巴集团控股有限公司 | 数据处理方法及系统、处理器 |
CN110944065A (zh) * | 2019-12-13 | 2020-03-31 | 李炳勇 | 一种基于物联网的传感器数据传输方法及系统 |
CN110944065B (zh) * | 2019-12-13 | 2023-03-24 | 湖南半岛医疗科技有限公司 | 一种基于物联网的传感器数据传输方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106708968B (zh) | 分布式数据库系统和分布式数据库系统中的数据处理方法 | |
CN104462225B (zh) | 一种数据读取的方法、装置及系统 | |
CN110268394A (zh) | Kvs树 | |
CN104135715B (zh) | 一种位置服务的实现方法、装置,及系统 | |
CN106970958B (zh) | 一种流文件的查询与存储方法和装置 | |
CN111258978A (zh) | 一种数据存储的方法 | |
CN109344157A (zh) | 读写分离方法、装置、计算机设备及存储介质 | |
CN102902763B (zh) | 关联、检索信息处理数据和处理信息任务的方法及装置 | |
CN104423982B (zh) | 请求的处理方法和处理设备 | |
CN110399348A (zh) | 文件重删方法、装置、系统及计算机可读存储介质 | |
CN107493329A (zh) | 一种分布式内存文件系统的远程文件访问方法 | |
CN109299157A (zh) | 一种分布式大单表的数据导出方法及装置 | |
CN106503008B (zh) | 文件存储方法和装置及文件查询方法和装置 | |
CN106503058A (zh) | 一种数据加载方法、终端和计算集群 | |
CN112416960A (zh) | 多场景下的数据处理方法、装置、设备及存储介质 | |
CN109213604A (zh) | 一种数据源的管理方法和装置 | |
CN110287201A (zh) | 数据访问方法、装置、设备及存储介质 | |
CN108564462A (zh) | 征信数据的获取方法、终端设备及介质 | |
CN104978324A (zh) | 一种数据处理方法和装置 | |
CN108734566A (zh) | 征信数据查询方法、终端设备及介质 | |
CN110502607A (zh) | 一种电子病历系统、查询电子病历的方法及服务器 | |
CN110245129A (zh) | 一种分布式全局数据去重方法和装置 | |
CN114760289B (zh) | 车辆数据采集方法、装置、计算机设备和存储介质 | |
CN109460409A (zh) | 数据访问方法和装置 | |
CN110222046B (zh) | 列表数据的处理方法、装置、服务器和存储介质 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180427 |