本申请涉及分布式数据存储,尤其涉及一种分布式数据库主备数据同步方法、装置、设备及存储介质。
背景技术:
1、为了便于提升数据传输与存储的安全性、稳定性与效率,一般通过分布式数据库对数据进行传输与存储。
2、分布式数据库所包含的节点一般分布在不同的区域az,每个区域至少包括一个与该区域内的客户端通信连接的计算节点cn,以及不少于一个的数据节点dn,同区域的数据节点中,至少其中一个数据节点为数据主节点(dn主),其余数据节点为数据备节点(dn备);数据主节点(dn主)用于对计算节点cn发送的分片数据进行存储,数据备节点(dn备)用于对数据主节点(dn主)存储的分片数据进行备份;数据主节点与对应的数据备节点通信连接,且数据备节点与对应的数据备节点分布在不同区域。
3、客户端将数据存储至数据节点中步骤为:客户端先将数据发送至同区域的计算节点cn,然后计算节点将数据分片至对应的数据主节点(dn主),接着每个数据主节点(dn主)将接收到的分片数据再备份至对应的数据备节点(dn备)。
4、若某一数据主节点(dn主)与计算节点cn不在同一区域,而数据备节点(dn备)与计算节点cn在同一区域,则本区域的计算节点cn需要先将对应的分片数据发送至另一区域中的数据主节点(dn主),然后数据主节点(dn主)再将分片数据传输至对应的数据备节点(dn备)中进行备份;但是,在不同的区域az之间进行数据传输的网络带宽是有限的,而上述情况,数据的存储与备份至少需要使用两次网络带宽,在数据的数据量较大的情况下,会导致数据存储与备份的效率较低。
技术实现思路
1、为了便于提升分布式数据库中数据存储与备份的效率,本申请实施例提供一种分布式数据库主备数据同步方法、装置、设备及存储介质。
2、第一方面,本申请实施例提供一种分布式数据库主备数据同步方法,包括:
3、对接收到的待存储数据进行分片得到分片数据,并确定与所述分片数据对应的数据主节点;
4、判断所述数据主节点与计算节点是否处于同一区域;
5、若是,将与所述数据主节点对应的所述分片数据传输至所述数据主节点中存储得到第一写入数据,再将所述第一写入数据同步至对应的数据备节点;
6、否则,对所述数据主节点进行加锁得到加锁主节点,将与所述加锁主节点对应的分片数据传输至与所述加锁主节点对应且与所述计算节点同区域的数据备节点中存储得到第二写入数据,再将所述第二写入数据同步至所述加锁主节点。
7、第二方面,本申请实施例提供一种分布式数据库主备数据同步装置,包括:
8、数据分片模块,用于对接收到的待存储数据进行分片得到分片数据,并确定与所述分片数据对应的数据主节点;
9、区域判断模块,用于判断所述数据主节点与计算节点是否处于同一区域;
10、第一同步模块,用于若是,将与所述数据主节点对应的所述分片数据传输至所述数据主节点中存储得到第一写入数据,再将所述第一写入数据同步至对应的数据备节点;
11、第二同步模块,用于对所述数据主节点进行加锁得到加锁主节点,将与所述加锁主节点对应的分片数据传输至与所述加锁主节点对应且与所述计算节点同区域的数据备节点中存储得到第二写入数据,再将所述第二写入数据同步至所述加锁主节点。
12、第三方面,本申请实施例提供了一种计算机设备,计算机设备包括存储器和处理器,所述存储器存储有计算机程序,处理器执行该计算机程序时实现上述的方法中的步骤。
13、第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的方法中的步骤。
14、第五方面,本申请实施例还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述任一方法实施例中的步骤。
15、上述分布式数据库主备数据同步方法、装置、设备及存储介质的实施例,在判断出数据主节点与计算节点不在同一区域时,对数据主节点进行加锁,从而防止其他计算节点占用数据主节点后续需要同步的分片数据的空间;然后计算节点先将分片数据写入同区域的且与数据主节点对应的数据备节点,进一步的,再将数据备节点中的分片数据备份至加锁的数据主节点中,如此仅仅将分片数据写入数据主节点与数据备节点的过程中仍然仅仅使用了一次不同区域之间的网络带宽,从而提升了分片数据写入数据主节点与数据备节点的速度,如此便于提升分布式数据库中数据存储与备份的效率。
16、应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
1.一种分布式数据库主备数据同步方法,其特征在于,包括:
2.根据权利要求1所述的一种方法,其特征在于,所述计算节点、所述数据主节点与所述数据备节点均通信连接有位置管理节点;所述计算节点、所述数据主节点与所述数据备节点均用于设置对应的区域位置信息,并将所述区域位置信息发送至所述位置管理节点;所述位置管理节点用于存储所述区域位置信息生成信息集,并向订阅所述信息集的订阅节点推送所述信息集;所述订阅节点包括所述计算节点、所述数据主节点与所述数据备节点中一种或多种。
3.根据权利要求2所述的一种方法,其特征在于,所述判断所述数据主节点与计算节点是否处于同一区域,包括:
4.根据权利要求1所述的一种方法,其特征在于,所述将与所述数据主节点对应的所述分片数据传输至所述数据主节点中存储得到第一写入数据,再将所述第一写入数据同步至对应的数据备节点,包括:
5.根据权利要求1所述的一种方法,其特征在于,所述对所述数据主节点进行加锁得到加锁主节点,包括:
6.根据权利要求1所述的一种方法,其特征在于,所述将与所述加锁主节点对应的分片数据传输至与所述加锁主节点对应的数据备节点中存储得到第二写入数据,再将所述第二写入数据同步至所述加锁主节点,包括:
7.一种分布式数据库主备数据同步装置,其特征在于,所述装置包括:
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。