数据处理方法及相关产品与流程

文档序号:37549276发布日期:2024-04-08 13:56阅读:10来源:国知局
数据处理方法及相关产品与流程

本技术涉及分布式数据库,尤其涉及一种数据处理方法及相关产品。


背景技术:

1、在传统的数据库系统中,数据是以集中的方式存储和管理的。然而,随着互联网和大数据时代的到来,传统方法已经无法满足对海量数据存储和访问的需求。这时分布式数据库系统便应运而生。分布式数据库系统将数据分散存储在多台服务器上,并通过网络连接来实现数据的共享和访问。分布式数据库系统可以提供更高的可用性、更高的性能和更好的扩展性,因此被广泛应用于各行各业的领域。基于此,如何提升分布式数据库的稳定性具有非常重要的意义。


技术实现思路

1、本技术提供一种数据处理方法及相关产品,以提升分布式数据库的稳定性,其中,相关产品包括数据处理系统、计算机可读存储介质和计算机程序产品。

2、第一方面,提供了一种数据处理方法,所述方法用于对分布式数据库的数据进行处理,所述分布式数据库包括存储集群,所述存储集群包括至少一个写入节点和至少两个存储节点,所述写入节点为用于写入数据的节点,所述存储节点为用于存储待存储数据的节点,所述待存储数据为需要存储至所述分布式数据库的数据,所述至少一个写入节点包括目标写入节点,所述方法包括:

3、所述目标写入节点在接收到存储所述待存储数据的请求的情况下,从所述至少两个存储节点中确定与所述待存储数据匹配的目标存储节点,所述目标存储节点具有与所述待存储数据匹配的索引;

4、所述目标写入节点在确定所述目标存储节点不可用的情况下,将所述待存储数据存储至所述目标写入节点;

5、所述目标写入节点在确定所述目标存储节点可用的情况下,将所述目标写入节点中的所述待存储数据写入所述目标存储节点。

6、结合本技术任一实施方式,所述分布式数据库还包括查询节点和注册节点,所述查询节点为用于对存储在所述分布式数据库中的数据进行查询的节点,所述注册节点包括所述至少两个存储节点的地址,所述方法还包括:

7、所述注册节点根据所述至少两个存储节点的地址,确定查询地址,所述查询地址为存储查询数据的节点的地址,所述查询数据为所述查询节点所需查询的数据;

8、所述注册节点将所述查询地址发送至所述查询节点;

9、所述查询节点在接收到查询指令的情况下,根据所述查询地址和所述查询指令中的筛选条件,对存储在所述查询地址所指示的节点中的数据进行筛选,得到目标数据;

10、所述查询节点根据所述目标数据,确定所述查询指令的查询结果。

11、结合本技术任一实施方式,所述查询节点根据所述目标数据,确定所述查询指令的查询结果,包括:

12、所述查询节点通过对所述目标数据进行聚合,得到聚合结果;

13、所述查询节点将所述聚合结果作为所述查询指令的所述查询结果。

14、结合本技术任一实施方式,所述至少两个存储节点中除所述目标存储节点之外的节点为参考节点;

15、所述注册节点根据所述至少两个存储节点的地址,确定查询地址之前,所述方法还包括:

16、所述目标写入节点在确定所述目标存储节点可用的情况下,向所述注册节点发送所述目标存储节点可用的消息;

17、所述注册节点根据所述至少两个存储节点的地址,确定查询地址,包括:

18、所述注册节点在接收到所述目标存储节点可用的消息的情况下,根据所述参考节点的地址和所述目标存储节点的地址,得到所述查询地址。

19、结合本技术任一实施方式,所述分布式数据库还包括副本集群,所述副本集群为所述存储集群的副本,所述副本集群包括所述目标存储节点的副本存储节点,所述注册节点包括所述副本存储节点的地址,所述至少两个存储节点中除所述目标存储节点之外的节点为参考节点;

20、所述注册节点根据所述至少两个存储节点的地址,确定查询地址之前,所述方法还包括:

21、所述目标写入节点在确定所述目标存储节点不可用的情况下,向所述注册节点发送所述目标存储节点不可用的消息;

22、所述注册节点根据所述至少两个存储节点的地址,确定查询地址,包括:

23、所述注册节点在接收到所述目标存储节点不可用的消息的情况下,根据所述参考节点的地址和所述副本存储节点的地址,得到所述查询地址。

24、结合本技术任一实施方式,所述目标写入节点包括用于存储需要写入所述目标存储节点的数据的目标队列,所述目标队列包括内存队列,所述内存队列中的数据存储在所述目标写入节点的内存;

25、所述将所述待存储数据存储至所述目标写入节点,包括:

26、确定所述内存队列中的数据的第一数据量;

27、在所述第一数据量达到第一阈值前,将所述待存储数据存储至所述内存队列。

28、结合本技术任一实施方式,所述目标队列包括磁盘队列,所述磁盘队列中的数据存储在所述目标写入节点的磁盘;

29、在确定所述内存队列中的数据的第一数据量之后,所述方法还包括:

30、所述目标写入节点在所述第一数据量达到所述第一阈值后,将所述待存储数据存储至所述磁盘队列,以及将所述内存队列中的数据转移至所述磁盘队列。

31、结合本技术任一实施方式,所述将所述待存储数据存储至所述磁盘队列,包括:

32、在所述待存储数据的数据量未超过预定值的情况下,将所述待存储数据作为一个文件块存储至所述磁盘队列;

33、在所述待存储数据的数据量超过所述预定值的情况下,将所述待存储数据分为r个文件块存储至所述磁盘队列,所述r为大于1的整数,所述r个文件块包括r-1个数据量为预定值的文件块和1个数据量不超过所述预定值的文件块。

34、结合本技术任一实施方式,在所述待存储数据存储在所述磁盘队列的情况下,所述将所述目标写入节点中的所述待存储数据写入所述目标存储节点,包括:

35、以文件块为读取单位,读取所述磁盘队列中的所述n个文件块,在读取所述n个文件块的过程中,目标写入节点将已读取的文件块从所述磁盘队列中删除;

36、通过将所述n个文件块写入所述目标存储节点,将所述目标写入节点中的所述待存储数据写入所述目标存储节点。

37、结合本技术任一实施方式,所述方法还包括:

38、所述目标写入节点在所述磁盘队列中的数据已全部删除,且接收到存储新数据的请求的情况下,将所述新数据存储至所述内存队列,所述新数据与所述索引匹配。

39、结合本技术任一实施方式,所述至少两个存储节点中除所述目标存储节点之外的节点为参考节点;

40、所述注册节点根据所述至少两个存储节点的地址,确定查询地址之前,所述方法还包括:

41、所述注册节点接收所述目标写入节点发送的所述目标队列中的数据的第二数据量;

42、所述注册节点根据所述至少两个存储节点的地址,确定查询地址,包括:

43、所述注册节点在所述第二数据量未达到第二阈值的情况下,根据所述参考节点的地址和所述目标存储节点的地址,得到所述查询地址。

44、结合本技术任一实施方式,所述分布式数据库还包括副本集群,所述副本集群为所述存储集群的副本,所述副本集群包括所述目标存储节点的副本存储节点,所述注册节点还包括所述副本存储节点的地址;

45、所述注册节点接收所述目标写入节点发送的所述目标队列中的数据的第二数据量之后,所述方法还包括:

46、所述注册节点在所述第二数据量达到第二阈值的情况下,确定所述目标存储节点已积压;

47、所述注册节点在所述第二数据量未达到所述第二阈值的情况下,确定所述目标存储节点未积压;

48、所述注册节点根据所述至少两个存储节点的地址,确定查询地址,包括:

49、所述注册节点在所述目标存储节点已积压的情况下,根据所述参考节点的地址和所述副本存储节点的地址,得到所述查询地址;

50、所述注册节点在所述目标存储节点由已积压变为未积压,且所述目标存储节点保持未积压的时长达到第三阈值的情况下,根据所述参考节点的地址和所述目标存储节点的地址,得到所述查询地址。

51、结合本技术任一实施方式,所述写入节点的数量为至少两个,所述方法还包括:

52、所述注册节点在所述存储集群通过增加至少一个所述存储节点得到至少三个存储节点的情况下,根据所述写入节点的数量,确定至少两个所述写入节点的更新计划,所述更新计划用于更新至少两个所述写入节点从所述注册节点获取的所述存储集群的所述存储节点的地址;

53、在所述更新计划中,至少两个所述写入节点通过至少两个更新阶段更新,任意两个所述更新阶段更新的次序均不同,任意两个更新阶段所需更新的所述写入节点均不同;

54、所述注册节点在根据所述更新计划,确定当前更新的所述更新阶段包括所述目标写入节点的情况下,向所述目标写入节点发送所述至少三个存储节点的地址。

55、结合本技术任一实施方式,所述方法还包括:

56、所述注册节点根据所述存储集群的名称,确定所述存储集群;

57、所述注册节点根据所述存储集群中的所述至少两个存储节点,确定所述至少两个存储节点的地址。

58、结合本技术任一实施方式,所述注册节点根据所述存储集群中的所述至少两个存储节点,确定所述至少两个存储节点的地址,包括:

59、所述注册节点确定所述存储集群中的所述至少两个存储节点的名称;

60、所述注册节点以所述至少两个存储节点的名称为依据,计算得到所述至少两个存储节点的地址。

61、结合本技术任一实施方式,所述至少两个存储节点包括与所述目标存储节点不同的参考存储节点,所述目标写入节点存储有参考数据,所述参考数据为需要写入所述参考存储节点的数据,所述目标写入节点获取所述参考数据的时间早于所述目标写入节点获取所述待存储数据的时间;

62、所述将所述目标写入节点中的所述待存储数据写入所述目标存储节点,包括:

63、所述目标写入节点在所述参考存储节点可用的情况下,调用写线程将所述参考数据写入所述参考存储节点,所述写线程为用于写数据的线程;

64、所述目标写入节点在将所述参考数据写入所述参考存储节点后,将所述目标写入节点中的所述待存储数据写入所述目标存储节点;

65、所述目标写入节点在所述参考存储节点不可用的情况下,调用所述写线程,将所述目标写入节点中的所述待存储数据写入所述目标存储节点。

66、结合本技术任一实施方式,所述从所述至少两个存储节点中确定与所述待存储数据匹配的目标存储节点,包括:

67、从所述至少两个存储节点中确定具有与所述待存储数据的标识匹配的标识的节点,作为所述目标存储节点。

68、结合本技术任一实施方式,从所述至少两个存储节点中确定具有与所述待存储数据的标识匹配的标识的目标存储节点之后,所述方法还包括:

69、所述目标写入节点向所述目标存储节点发送写入请求;

70、所述目标写入节点在所述目标存储节点未响应所述写入请求的情况下,确定所述目标存储节点不可用。

71、结合本技术任一实施方式,所述待存储数据为带有时间标签的数据。

72、第二方面,提供了一种数据处理系统,所述数据处理系统用于运行分布式数据库,所述数据处理系统包括存储集群,所述存储集群包括至少一个写入节点和至少两个存储节点,所述写入节点为用于写入数据的节点,所述存储节点为用于存储待存储数据的节点,所述待存储数据为需要存储至所述分布式数据库的数据,所述至少一个写入节点包括目标写入节点;

73、所述目标写入节点在接收到存储所述待存储数据的请求的情况下,从所述至少两个存储节点中确定与所述待存储数据匹配的目标存储节点,所述目标存储节点具有与所述待存储数据匹配的索引;

74、所述目标写入节点在确定所述目标存储节点不可用的情况下,将所述待存储数据存储至所述目标写入节点;

75、所述目标写入节点在确定所述目标存储节点可用的情况下,将所述目标写入节点中的所述待存储数据写入所述目标存储节点。

76、结合本技术任一实施方式,所述数据处理系统还包括查询节点和注册节点,所述查询节点为用于对存储在所述分布式数据库中的数据进行查询的节点,所述注册节点包括所述至少两个存储节点的地址;

77、所述注册节点根据所述至少两个存储节点的地址,确定查询地址,所述查询地址为存储查询数据的节点的地址,所述查询数据为所述查询节点所需查询的数据;

78、所述注册节点将所述查询地址发送至所述查询节点;

79、所述查询节点在接收到查询指令的情况下,根据所述查询地址和所述查询指令中的筛选条件,对存储在所述查询地址所指示的节点中的数据进行筛选,得到目标数据;

80、所述查询节点根据所述目标数据,确定所述查询指令的查询结果。

81、结合本技术任一实施方式,所述查询节点通过对所述目标数据进行聚合,得到聚合结果;

82、所述查询节点将所述聚合结果作为所述查询指令的所述查询结果。

83、结合本技术任一实施方式,所述至少两个存储节点中除所述目标存储节点之外的节点为参考节点;

84、所述目标写入节点在确定所述目标存储节点可用的情况下,向所述注册节点发送所述目标存储节点可用的消息;

85、所述注册节点在接收到所述目标存储节点可用的消息的情况下,根据所述参考节点的地址和所述目标存储节点的地址,得到所述查询地址。

86、结合本技术任一实施方式,所述数据处理系统还包括副本集群,所述副本集群为所述存储集群的副本,所述副本集群包括所述目标存储节点的副本存储节点,所述注册节点包括所述副本存储节点的地址,所述至少两个存储节点中除所述目标存储节点之外的节点为参考节点;

87、所述目标写入节点在确定所述目标存储节点不可用的情况下,向所述注册节点发送所述目标存储节点不可用的消息;

88、所述注册节点在接收到所述目标存储节点不可用的消息的情况下,根据所述参考节点的地址和所述副本存储节点的地址,得到所述查询地址。

89、结合本技术任一实施方式,所述目标写入节点包括用于存储需要写入所述目标存储节点的数据的目标队列,所述目标队列包括内存队列,所述内存队列中的数据存储在所述目标写入节点的内存;

90、所述目标写入节点确定所述内存队列中的数据的第一数据量;

91、所述目标写入节点在所述第一数据量达到第一阈值前,将所述待存储数据存储至所述内存队列。

92、结合本技术任一实施方式,所述目标队列包括磁盘队列,所述磁盘队列中的数据存储在所述目标写入节点的磁盘;

93、所述目标写入节点在所述第一数据量达到所述第一阈值后,将所述待存储数据存储至所述磁盘队列,以及将所述内存队列中的数据转移至所述磁盘队列。

94、结合本技术任一实施方式,所述目标写入节点在所述待存储数据的数据量未超过预定值的情况下,将所述待存储数据作为一个文件块存储至所述磁盘队列;

95、所述目标写入节点在所述待存储数据的数据量超过所述预定值的情况下,将所述待存储数据分为r个文件块存储至所述磁盘队列,所述r为大于1的整数,所述r个文件块包括r-1个数据量为预定值的文件块和1个数据量不超过所述预定值的文件块。

96、结合本技术任一实施方式,所述目标写入节点以文件块为读取单位,读取所述磁盘队列中的所述n个文件块,在读取所述n个文件块的过程中,目标写入节点将已读取的文件块从所述磁盘队列中删除;

97、所述目标写入节点通过将所述n个文件块写入所述目标存储节点,将所述目标写入节点中的所述待存储数据写入所述目标存储节点。

98、结合本技术任一实施方式,所述目标写入节点在所述磁盘队列中的数据已全部删除,且接收到存储新数据的请求的情况下,将所述新数据存储至所述内存队列,所述新数据与所述索引匹配。

99、结合本技术任一实施方式,所述至少两个存储节点中除所述目标存储节点之外的节点为参考节点;

100、所述注册节点接收所述目标写入节点发送的所述目标队列中的数据的第二数据量;

101、所述注册节点在所述第二数据量未达到第二阈值的情况下,根据所述参考节点的地址和所述目标存储节点的地址,得到所述查询地址。

102、结合本技术任一实施方式,所述数据处理系统还包括副本集群,所述副本集群为所述存储集群的副本,所述副本集群包括所述目标存储节点的副本存储节点,所述注册节点还包括所述副本存储节点的地址;

103、所述注册节点在所述第二数据量达到第二阈值的情况下,确定所述目标存储节点已积压;

104、所述注册节点在所述第二数据量未达到所述第二阈值的情况下,确定所述目标存储节点未积压;

105、所述注册节点在所述目标存储节点已积压的情况下,根据所述参考节点的地址和所述副本存储节点的地址,得到所述查询地址;

106、所述注册节点在所述目标存储节点由已积压变为未积压,且所述目标存储节点保持未积压的时长达到第三阈值的情况下,根据所述参考节点的地址和所述目标存储节点的地址,得到所述查询地址。

107、结合本技术任一实施方式,所述写入节点的数量为至少两个,所述注册节点在所述存储集群通过增加至少一个所述存储节点得到至少三个存储节点的情况下,根据所述写入节点的数量,确定至少两个所述写入节点的更新计划,所述更新计划用于更新至少两个所述写入节点从所述注册节点获取的所述存储集群的所述存储节点的地址;

108、在所述更新计划中,至少两个所述写入节点通过至少两个更新阶段更新,任意两个所述更新阶段更新的次序均不同,任意两个更新阶段所需更新的所述写入节点均不同;

109、所述注册节点在根据所述更新计划,确定当前更新的所述更新阶段包括所述目标写入节点的情况下,向所述目标写入节点发送所述至少三个存储节点的地址。

110、结合本技术任一实施方式,所述注册节点根据所述存储集群的名称,确定所述存储集群;

111、所述注册节点根据所述存储集群中的所述至少两个存储节点,确定所述至少两个存储节点的地址。

112、结合本技术任一实施方式,所述注册节点确定所述存储集群中的所述至少两个存储节点的名称;

113、所述注册节点以所述至少两个存储节点的名称为依据,计算得到所述至少两个存储节点的地址。

114、结合本技术任一实施方式,所述至少两个存储节点包括与所述目标存储节点不同的参考存储节点,所述目标写入节点存储有参考数据,所述参考数据为需要写入所述参考存储节点的数据,所述目标写入节点获取所述参考数据的时间早于所述目标写入节点获取所述待存储数据的时间;

115、所述目标写入节点在所述参考存储节点可用的情况下,调用写线程将所述参考数据写入所述参考存储节点,所述写线程为用于写数据的线程;

116、所述目标写入节点在将所述参考数据写入所述参考存储节点后,将所述目标写入节点中的所述待存储数据写入所述目标存储节点;

117、所述目标写入节点在所述参考存储节点不可用的情况下,调用所述写线程,将所述目标写入节点中的所述待存储数据写入所述目标存储节点。

118、结合本技术任一实施方式,所述目标写入节点从所述至少两个存储节点中确定具有与所述待存储数据的标识匹配的标识的节点,作为所述目标存储节点。

119、结合本技术任一实施方式,所述目标写入节点向所述目标存储节点发送写入请求;

120、所述目标写入节点在所述目标存储节点未响应所述写入请求的情况下,确定所述目标存储节点不可用。

121、结合本技术任一实施方式,所述待存储数据为带有时间标签的数据。

122、第三方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序包括程序指令,在所述程序指令被处理器执行的情况下,使所述处理器执行如上述第一方面及其任一实施方式。

123、第四方面,提供了一种计算机程序产品,所述计算机程序产品包括计算机程序或指令,在所述计算机程序或指令在计算机上运行的情况下,使得所述计算机执行上述第一方面及其任一实施方式。

124、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本技术。

125、本技术实施例中,目标写入节点在接收到存储待存储数据的请求的情况下,从至少两个存储节点中确定具有与待存储数据匹配的索引的目标存储节点。目标写入节点在确定目标存储节点不可用的情况下,先将待存储数据存储至目标写入节点本地,然后在确定目标存储节点可用的情况下,将目标写入节点中的待存储数据写入目标存储节点。

126、由于在至少两个存储节点中,除目标存储节点之外的存储节点中不存在与待存储数据匹配的索引,因此本技术实施例相较于在确定目标存储节点不可用的情况下,将待存储数据写入除目标存储节点之外的存储节点中,无需在除目标存储节点之外的存储节点中建立与待存储数据匹配的索引。由此可减少存储集群的资源利用量,进而可降低存储集群出现雪崩的几率,从而可提高分布式数据库的稳定性。

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