一种分布式数据库节点数据交互方法及装置与流程

文档序号:11134037阅读:721来源:国知局
一种分布式数据库节点数据交互方法及装置与制造工艺

本发明属于分布式数据库领域,尤其是涉及一种分布式数据库节点数据交互方法。



背景技术:

随着信息化技术的快速发展,大型数据库系统需要处理和存储的数据量越来越大,计算越来越复杂,对于性能的挑战也越来越大,性能,可靠性,可扩展性的需求就会越来越强烈,这个时候一个集中式的数据库显然已经满足不了需求了。为了适应应用业务的发展需要,分布式数据库将数据分布在计算机网络的不同节点上,而这些数据在逻辑上属于同一个系统。

分布式数据库的最大特点就是数据被拆分成多份,分布在不同的计算节点上,这样会提高整个集群的计算并行度。但随之而来的问题是数据不可能一直孤立存在于固定节点,节点间必然有数据传送。

同时考虑到I/O的连续性、以及高效的数据压缩等问题,数据通常会分块存储。这样数据传输数量的不确定性与分块存储形成了差异,很可能造成碎块过多从而降低I/O效率。同时如果数据块太小、规律性减弱,也会增加压缩难度,增加存储或计算成本。



技术实现要素:

本发明提供了一种分布式数据库节点数据交互方法及装置,以解决分布式数据库数据传输引起碎块过多的问题。

第一方面,本发明实施例提供了一种分布式数据库节点数据发送方法,包括:

发送端将欲发送的数据存储在缓存中;

检测所述缓存的数据是否满足预设条件,在满足预设条件时,向接收端发送缓存的数据。

进一步的,所述预设条件包括:缓存的数据积达到预设阈值、数据缓存时长超出预设时长限制和\或欲发送的数据已经存储在缓存中。

第二方面,本发明实施例提供了一种分布式数据库节点数据接收方法,包括:

接收端将接收到的数据存储缓存;

检测所述缓存的数据是否满足预设条件,在满足预设条件时,保存所述缓存的数据。

进一步的,所述预设条件包括:

缓存的数据积达到预设阈值、数据缓存时长超出预设时长限制和\或欲发送的数据已经存储在缓存中。

第三方面,本发明实施例还提供了一种分布式数据库节点数据发送装置,包括:

存储模块,用于将欲发送的数据存储在缓存中;

发送模块,用于检测所述缓存的数据是否满足预设条件,在满足预设条件时,向接收端发送缓存的数据。

进一步的,所述预设条件包括:

缓存的数据积达到预设阈值、数据缓存时长超出预设时长限制和\或欲发送的数据已经存储在缓存中。

第四方面,本发明实施例还提供了一种分布式数据库节点数据接收装置,包括:

存入模块,用于将接收到的数据存入缓存;

保存模块,用于检测所述缓存的数据是否满足预设条件,在满足预设条件时,保存所述缓存的数据。

进一步的,所述预设条件包括:

缓存的数据积达到预设阈值、数据缓存时长超出预设时长限制和\或欲发送的数据已经存储在缓存中。

本发明实施例通过将发送或者接收的数据预先存储在缓存中,在满足条件时,才执行对应的发送或者写入操作,可以控制发送或者接收数据的规模,避免大量I/O操作产生的大量碎片。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例一提供的分布式数据库节点数据发送方法的流程示意图;

图2是本发明实施例二提供的分布式数据库节点数据接收方法的流程示意图;

图3是本发明实施例三提供的分布式数据库节点数据发送装置的结构示意图;

图4是本发明实施例四提供的分布式数据库节点数据接收装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一

图1为本发明实施例一提供的分布式数据库节点数据发送方法的流程图,本实施例可适用于分布式数据库节点数据发送的情况,该方法可以由适用于分布式数据库节点数据发送装置来执行,该装置可由软件/硬件方式实现,并可集成于分布式数据库系统的节点中。

参见图1,所述分布式数据库节点数据发送方法,包括:

S110,发送端将欲发送的数据存储在缓存中。

在分布式数据库中,由于需要,不同的节点之间往往需要传输数据。通常发送节点根据发送指令选取数据直接发送给接收节点。由于每次发送的数据大小不同,具有不确定性。而发送节点并不考虑这些特性,只是根据指令发送数据。容易产生碎片。在本实施例中,发送节点在接收到发送指令后,并不立即发送数据,而是将欲发送的数据存储在该节点的缓存中。

S120,检测所述缓存的数据是否满足预设条件,在满足预设条件时,向接收端发送缓存的数据。

发送节点对缓存的数据进行检测,判断缓存的数据是否满足预设条件,在满足预设条件时,向接收端发送缓存的数据。示例性的,所述预设条件包括:

1.数据积攒到指定大小,称为饱和;

2.缓存数据超出时间限制;

3.所有数据处理结束,后续不会有数据产生。

其中第1项可以使数据达到目标端存储需求,便于其直接形成可实际存储的数据块;第2项是为了防止源数据产生较慢时,缓存数据时间过长受硬件等异常影响造成数据丢失。

其次,有时源端数据无法满足目标端最小存储的要求,而又不能不发送,例如前面提到的2和3两种情况。

本发明实施例通过将发送的数据预先存储在缓存中,在满足条件时,才执行对应的发送操作,可以控制发送数据的规模,避免大量I/O操作产生的大量碎片。

实施例二

图2为本发明实施例二提供的分布式数据库节点数据接收方法的流程图,本实施例可适用于分分布式数据库节点数据接收的情况,该方法可以由适用于分布式数据库节点数据接收装置来执行,该装置可由软件/硬件方式实现,并可集成于分布式数据库系统的节点中。

参见图2,所述分布式数据库节点数据接收方法,包括:

S210,接收端将接收到的数据存入缓存。

在分布式数据库中,由于需要,不同的节点之间往往需要传输数据。通常接收节点在接收到数据时直接将数据写入。由于每次接收的数据大小不同,具有不确定性。而接收节点并不考虑这些特性,容易产生碎片。在本实施例中,接收节点在接收到数据后,并不立即存储数据,而是将接收到的数据存储在该节点的缓存中。

S220,检测所述缓存的数据是否满足预设条件,在满足预设条件时,保存所述缓存的数据。

接收节点对缓存的数据进行检测,判断缓存的数据是否满足预设条件,在满足预设条件时,保存所述缓存的数据。示例性的,所述预设条件包括:

1.目标端接收到足够的数据;

2.目标端缓存数据时间超出限制;

3.所有源端数据发送结束。

其中第1项可以使数据达到目标端存储需求,便于其直接形成可实际存储的数据块;第2项是为了防止源数据产生较慢时,缓存数据时间过长受硬件等异常影响造成数据丢失。其次,有时缓存数据无法满足最小存储的要求,而又不能存储。

本发明实施例通过将接收的数据预先存储在缓存中,在满足条件时,才执行对应的写入操作,可以控制接收数据的规模,避免大量I/O操作产生的大量碎片。

实施例三

图3是本发明实施例三提供的分布式数据库节点数据发送装置的结构示意图,如图3所示,所述装置包括:

存储模块310,用于将欲发送的数据存储在缓存中;

发送模块320,用于检测所述缓存的数据是否满足预设条件,在满足预设条件时,向接收端发送缓存的数据。

本发明实施例通过将发送的数据预先存储在缓存中,在满足条件时,才执行对应的发送操作,可以控制发送数据的规模,避免大量I/O操作产生的大量碎片。

进一步的,所述预设条件包括:

缓存的数据积达到预设阈值、数据缓存时长超出预设时长限制和\或欲发送的数据已经存储在缓存中。

实施例四

图4是本发明实施例四提供的分布式数据库节点数据接收装置的结构示意图,如图4所示,所述装置包括:

存入模块410,用于将接收到的数据存入缓存;

保存模块420,用于检测所述缓存的数据是否满足预设条件,在满足预设条件时,保存所述缓存的数据。

本发明实施例通过将接收的数据预先存储在缓存中,在满足条件时,才执行对应的写入操作,可以控制接收数据的规模,避免大量I/O操作产生的大量碎片。

所述预设条件包括:

缓存的数据积达到预设阈值、数据缓存时长超出预设时长限制和\或欲发送的数据已经存储在缓存中。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1