CN112527900B - 一种数据库读多副本一致性的方法、装置、设备及介质 - Google Patents
一种数据库读多副本一致性的方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN112527900B CN112527900B CN202011406787.3A CN202011406787A CN112527900B CN 112527900 B CN112527900 B CN 112527900B CN 202011406787 A CN202011406787 A CN 202011406787A CN 112527900 B CN112527900 B CN 112527900B
- Authority
- CN
- China
- Prior art keywords
- copy
- global
- read
- consistency
- data
- 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.)
- Active
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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据库读多副本一致性方法、装置、设备及介质,通过获取客户端的多个查询请求,并发送至数据库的计算节点,对于每一个查询请求,计算节点解析查询请求,并将解析后的数据发送至全局一致性管理器,全局一致性管理器根据解析后的数据,将全局一致性标识发送至存储节点,若存储节点包含有所需查询的只读副本,则路由至该存储节点进行查询,若不包含,则查询其它存储节点中的只读副本,若查询到的只读副本中全局唯一标识与全局一致性标识一致,返回查询到的只读副本中的数据,若不一致,丢弃该只读副本中的数据并再次查询,直至查询到有效数据并返回。采用本发明实施例,能够确保多副本查询请求数据的一致性,避免读取到过期数据。
Description
技术领域
本发明涉及数据库技术领域,尤其涉及一种数据库读多副本一致性的方法、系统、设备及介质。
背景技术
在结构化数据领域,由于需要保证数据的ACID事务性(Atomicity、Consistency、Isolation、Durability,原子性、一致性、隔离性、持久性),传统数据库通过集中式存储引擎的建立全局视角来实现保证强一致性,具体到查询请求,则是通过查询本节点的唯一副本确保读取到的数据为该数据库的最新数据。然而,随着社会信息化的迅速发展,信息化所需要及积累的结构化数据呈现出爆炸性增长,传统的单体架构已不能满足应用的需求,分布式关系型数据库应运而生。无论是读写分离或、分库分表或是原生分布式关系型数据库,同一份数据均具有多个副本。
由于副本之间的复制存在延时,可能存在数据过时的情况,即数据虽在主副本已经更新,但并非所有副本都已完成复制并更新最新数据,数据因此无法保证一致,查询请求可能读到过时数据。
当前保证分布式关系型数据库数据一致性的方法有三种:
1、只读主副本,但由于每份数据仅有一个主副本,此方式无法充分利用多副本并发读,无法应对高并发访问;
2、多副本强同步,即主副本必须等待所有副本均完成更新后,再确认提交,当副本的数量较多或网络环境不稳定的情况时,此方式等待时延开销大,无法应对高并发访问;
3、多数派最终一致性,该方式仅需要过半数确认后,即可确认提交,但依然存在少数副本尚未完成更新时被查询请求访问,因此需要读取大多数副本,通过比较这些副本是否却完全一致,以确保是否是最新数据,当副本的数量越多,则对于一个请求读取的副本数也同步增长,将较大影响并发访问的效率。
综上所述,当前确保多副本查询请求数据一致性的技术均对高并发有较明显的影响,尤其当副本数量增多时,无法满足高并发场景,甚至性能可能低于传统集中式数据库。
发明内容
本发明实施例提供一种数据库读多副本一致性的方法、系统、设备及介质,通过在分布式数据库的基础上建立全局一致性管理器,能够确保多副本查询请求数据的一致性,避免读取到过期的数据,提升副本的利用率。
为实现上述目的,本发明实施例提供了一种数据库读多副本一致性方法,包括以下步骤:
获取客户端的多个查询请求,并将所述多个查询请求发送至分布式数据库的任意计算节点;
对于每一个所述查询请求,所述计算节点接收到所述查询请求后,对所述查询请求进行解析,并将解析后的数据发送至全局一致性管理器;
对于每一个所述查询请求,所述全局一致性管理器接收到所述解析后的数据后,根据所述解析后的数据中的表或行,将所述全局一致性管理器的全局唯一标识映射表中对应的表或行的全局一致性标识发送至所述计算节点;
对于每一个所述查询请求,所述计算节点在接收到所述全局一致性标识后,将所述全局一致性标识发送至所述计算节点对应的存储节点;
对于每一个所述查询请求,若所述计算节点对应的存储节点包含有所需查询的只读副本,则路由至该存储节点进行查询,若不包含,则随机查询其它计算节点对应的存储节点中的只读副本;
对于每一个所述查询请求,若查询到的只读副本中记录的表或行对应的全局唯一标识与所述全局一致性标识一致,则返回所述查询到的只读副本中的数据,若查询到的只读副本中记录的表或行对应的全局唯一标识与所述全局一致性标识不一致,则丢弃所述查询到的只读副本中的数据。
进一步的,所述在获取客户端的多个查询请求之前,还包括以下步骤:
获取客户端的多个写请求,并将所述写请求发送至分布式数据库的任意计算节点;
对于每一个所述写请求,所述计算节点接收到所述写请求后,对所述写请求进行解析;
对于每一个所述写请求,将解析后的数据路由至所述计算节点对应的存储节点,并将所述解析后的数据中的表及行对应的全局唯一标识写入所述存储节点对应的表及行中;
对于每一个所述写请求,所述存储节点在更新所述对应的表及行的全局唯一标识后,通过所述存储节点的分布式全局一致性管理器代理进程,将所述全局唯一标识返回至所述计算节点;
对于每一个所述写请求,所述计算节点在接收到所述全局唯一标识后,将所述全局唯一标识发送至全局一致性管理器;
对于每一个所述写请求,所述全局一致性管理器在接收到所述全局唯一标识后,将所述全局唯一标识更新到所述全局一致性管理器的全局唯一标识映射表对应的表及行中。
进一步的,所述对于每一个所述查询请求,所述全局一致性管理器接收到所述解析后的数据后,根据所述解析后的数据中的表或行,将所述全局一致性管理器的全局唯一标识映射表中对应的表或行的全局一致性标识发送至所述计算节点,具体步骤为:
对于每一个所述查询请求:
所述全局一致性管理器接收到所述解析后的数据;
若所述解析后的数据中包含具体的行,则向所述全局一致性管理器中的全局唯一标识映射表查询对应的行的全局一致性标识,若所述解析后的数据中不包含具体行或行数较多,则向所述全局一致性管理器中的全局唯一标识映射表查询对应的表的全局一致性标识;
将表或行对应的全局一致性标识发送至所述计算节点。
进一步的,所述若查询到的只读副本中记录的全局唯一标识与所述全局一致性标识不一致,则丢弃查询结果之后,还包括以下步骤:
再次查询其它只读副本,重复比对的过程;
或者,直接读取主副本,获取并返回与全局唯一标识一致的只读副本中的数据。
进一步的,所述全局唯一标识是由表名哈希、主键ID、时间戳和序号组成的单调递增的数值。
进一步的,所述存储节点唯一属于一个计算节点。
本发明另一实施例对应提供了一种数据库读多副本一致性装置,包括:
请求获取模块,用于获取客户端的多个查询请求,并将所述多个查询请求发送至分布式数据库的任意计算节点;
请求解析模块,用于对于每一个所述查询请求,所述计算节点接收到所述查询请求后,对所述查询请求进行解析,并将解析后的数据发送至全局一致性管理器;
标识获取模块,用于对于每一个所述查询请求,所述全局一致性管理器接收到所述解析后的数据后,根据所述解析后的数据中的表或行,将所述全局一致性管理器的全局唯一标识映射表中对应的表或行的全局一致性标识发送至所述计算节点;
标识接收模块,用于对于每一个所述查询请求,所述计算节点在接收到所述全局一致性标识后,将所述全局一致性标识发送至所述计算节点对应的存储节点;
副本查询模块,用于对于每一个所述查询请求,若所述计算节点对应的存储节点包含有所需查询的只读副本,则路由至该存储节点进行查询,若不包含,则随机查询其它计算节点对应的存储节点中的只读副本;
标识比较模块,用于对于每一个所述查询请求,若查询到的只读副本中记录的表或行对应的全局唯一标识与所述全局一致性标识一致,则返回所述查询到的只读副本中的数据,若查询到的只读副本中记录的表或行对应的全局唯一标识与所述全局一致性标识不一致,则丢弃所述查询到的只读副本中的数据。
本发明另一实施例提供了一种终端设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现上述发明实施例所述的数据库读多副本一致性方法。
本发明另一实施例提供了一种存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行上述发明实施例所述的数据库读多副本一致性方法。
与现有技术相比,本发明实施例公开的一种数据库读多副本一致性方法、装置、设备及介质,通过获取客户端的多个查询请求,并将所述多个查询请求发送至分布式数据库的任意计算节点,其中,对于每一个所述查询请求,所述计算节点接收到所述查询请求后,对所述查询请求进行解析,并将解析后的数据发送至全局一致性管理器,所述全局一致性管理器根据所述解析后的数据中的表或行,将所述全局一致性管理器的全局唯一标识映射表中对应的表或行的全局一致性标识发送至所述计算节点,所述计算节点将所述全局一致性标识发送至所述计算节点对应的存储节点,若所述计算节点对应的存储节点包含有所需查询的只读副本,则路由至该存储节点进行查询,若不包含,则随机查询其它计算节点对应的存储节点中的只读副本,若查询到的只读副本中记录的表或行对应的全局唯一标识与所述全局一致性标识一致,则返回所述查询到的只读副本中的数据,若不一致,则丢弃所述查询到的只读副本中的数据。采用本发明实施例,通过在分布式数据库的基础上建立全局一致性管理器,能够确保多副本查询请求数据的一致性,避免读取到过期的数据,提升副本的利用率。
附图说明
图1是本发明实施例提供的一种数据库读多副本一致性方法的流程示意图;
图2是本发明实施例提供的一种数据库读多副本一致性装置的结构示意图;
图3是本发明实施例提供的一种终端设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,是本发明实施例提供的一种数据库读多副本一致性方法的流程示意图,所述方法包括步骤S1至步骤S6:
S1、获取客户端的多个查询请求,并将所述多个查询请求发送至分布式数据库的任意计算节点。
S2、对于每一个所述查询请求,所述计算节点接收到所述查询请求后,对所述查询请求进行解析,并将解析后的数据发送至全局一致性管理器。
S3、对于每一个所述查询请求,所述全局一致性管理器接收到所述解析后的数据后,根据所述解析后的数据中的表或行,将所述全局一致性管理器的全局唯一标识映射表中对应的表或行的全局一致性标识发送至所述计算节点。
S4、对于每一个所述查询请求,所述计算节点在接收到所述全局一致性标识后,将所述全局一致性标识发送至所述计算节点对应的存储节点。
S5、对于每一个所述查询请求,若所述计算节点对应的存储节点包含有所需查询的只读副本,则路由至该存储节点进行查询,若不包含,则随机查询其它计算节点对应的存储节点中的只读副本。
S6、对于每一个所述查询请求,若查询到的只读副本中记录的表或行对应的全局唯一标识与所述全局一致性标识一致,则返回所述查询到的只读副本中的数据,若查询到的只读副本中记录的表或行对应的全局唯一标识与所述全局一致性标识不一致,则丢弃所述查询到的只读副本中的数据。
具体的,常规的分布式数据库的计算节点都有元数据记录,可以判断是否有所需查询的只读副本。
进一步的,所述在获取客户端的多个查询请求之前,还包括以下步骤:
获取客户端的多个写请求,并将所述写请求发送至分布式数据库的任意计算节点。
对于每一个所述写请求,所述计算节点接收到所述写请求后,对所述写请求进行解析。
具体的,所述计算节点通过SQL对所述写请求进行解析。
对于每一个所述写请求,将解析后的数据路由至所述计算节点对应的存储节点,并将所述解析后的数据中的表及行对应的全局唯一标识写入所述存储节点对应的表及行中。
对于每一个所述写请求,所述存储节点在更新所述对应的表及行的全局唯一标识后,通过所述存储节点的分布式全局一致性管理器代理进程,将所述全局唯一标识返回至所述计算节点。
对于每一个所述写请求,所述计算节点在接收到所述全局唯一标识后,将所述全局唯一标识发送至全局一致性管理器。
具体的,所述计算节点通过高速网络将将所述全局唯一标识发送至全局一致性管理器。
其中,所述高速网络主要为40GE/100GE超低时延以太网或者采用infiniband技术。
对于每一个所述写请求,所述全局一致性管理器在接收到所述全局唯一标识后,将所述全局唯一标识更新到所述全局一致性管理器的全局唯一标识映射表对应的表及行中。
进一步的,全局唯一标识分为表标识及行标识。表级别的全局唯一标识为各表服务,每张表都有独立的全局唯一标识,行级别的全局唯一标识为表中的各行服务,每一行都有全局唯一标识,与主键一一对应。所有的数据均存在内存当中,以提供高速写入及查询。
进一步的,所述对于每一个所述查询请求,所述全局一致性管理器接收到所述解析后的数据后,根据所述解析后的数据中的表或行,将所述全局一致性管理器的全局唯一标识映射表中对应的表或行的全局一致性标识发送至所述计算节点,具体步骤为:
对于每一个所述查询请求:
所述全局一致性管理器接收到所述解析后的数据;
若所述解析后的数据中包含具体的行,则向所述全局一致性管理器中的全局唯一标识映射表查询对应的行的全局一致性标识,若所述解析后的数据中不包含具体行或行数较多,则向所述全局一致性管理器中的全局唯一标识映射表查询对应的表的全局一致性标识;
将表或行对应的全局一致性标识发送至所述计算节点。
进一步的,所述若查询到的只读副本中记录的全局唯一标识与所述全局一致性标识不一致,则丢弃查询结果之后,还包括以下步骤:
再次查询其它只读副本,重复比对的过程;
或者,直接读取主副本,获取并返回与全局唯一标识一致的只读副本中的数据。
具体的,若所述若查询到的只读副本中记录的全局唯一标识与所述全局一致性标识不一致,说明该只读副本的数据在请求到达数据库的时刻与主副本不一致,则丢弃该查询结果,再次查询其它只读副本,重复比对过程,或直接读取主副本,获取与全局唯一标识相同的数据,确保最多仅重查一次即可获得一致性数据。
进一步的,所述全局唯一标识是由表名哈希、主键ID、时间戳和序号组成的单调递增的数值。
进一步的,所述存储节点唯一属于一个计算节点。
与现有技术相比,本发明实施例公开的一种数据库读多副本一致性方法,通过获取客户端的多个查询请求,并将所述多个查询请求发送至分布式数据库的任意计算节点,其中,对于每一个所述查询请求,所述计算节点接收到所述查询请求后,对所述查询请求进行解析,并将解析后的数据发送至全局一致性管理器,所述全局一致性管理器根据所述解析后的数据中的表或行,将所述全局一致性管理器的全局唯一标识映射表中对应的表或行的全局一致性标识发送至所述计算节点,所述计算节点将所述全局一致性标识发送至所述计算节点对应的存储节点,若所述计算节点对应的存储节点包含有所需查询的只读副本,则路由至该存储节点进行查询,若不包含,则随机查询其它计算节点对应的存储节点中的只读副本,若查询到的只读副本中记录的表或行对应的全局唯一标识与所述全局一致性标识一致,则返回所述查询到的只读副本中的数据,若不一致,则丢弃所述查询到的只读副本中的数据。采用本发明实施例,通过在分布式数据库的基础上建立全局一致性管理器,能够确保多副本查询请求数据的一致性,避免读取到过期的数据,提升副本的利用率。
参见图2,是本发明实施例提供的一种数据库读多副本一致性装置的结构示意图,包括:
请求获取模块11,用于获取客户端的多个查询请求,并将所述多个查询请求发送至分布式数据库的任意计算节点;
请求解析模块12,用于对于每一个所述查询请求,所述计算节点接收到所述查询请求后,对所述查询请求进行解析,并将解析后的数据发送至全局一致性管理器;
标识获取模块13,用于对于每一个所述查询请求,所述全局一致性管理器接收到所述解析后的数据后,根据所述解析后的数据中的表或行,将所述全局一致性管理器的全局唯一标识映射表中对应的表或行的全局一致性标识发送至所述计算节点;
标识接收模块14,用于对于每一个所述查询请求,所述计算节点在接收到所述全局一致性标识后,将所述全局一致性标识发送至所述计算节点对应的存储节点;
副本查询模块15,用于对于每一个所述查询请求,若所述计算节点对应的存储节点包含有所需查询的只读副本,则路由至该存储节点进行查询,若不包含,则随机查询其它计算节点对应的存储节点中的只读副本;
标识比较模块16,用于对于每一个所述查询请求,若查询到的只读副本中记录的表或行对应的全局唯一标识与所述全局一致性标识一致,则返回所述查询到的只读副本中的数据,若查询到的只读副本中记录的表或行对应的全局唯一标识与所述全局一致性标识不一致,则丢弃所述查询到的只读副本中的数据。
与现有技术相比,本发明实施例公开的一种数据库读多副本一致性装置,通过请求获取模块11获取客户端的多个查询请求,并将所述多个查询请求发送至分布式数据库的任意计算节点,对于每一个所述查询请求,通过请求解析模块12对所述查询请求进行解析,并将解析后的数据发送至全局一致性管理器,通过标识获取模块13将所述全局一致性管理器的全局唯一标识映射表中对应的表或行的全局一致性标识发送至所述计算节点,通过标识接收模块14将所述全局一致性标识发送至所述计算节点对应的存储节点,通过副本查询模块15判断所述计算节点对应的存储节点是否包含有所需查询的只读副本,通过标识比较模块16判断查询到的只读副本中记录的表或行对应的全局唯一标识与所述全局一致性标识是否一致,如果一致,则返回所述查询到的只读副本中的数据,如果不一致,则丢弃所述查询到的只读副本中的数据。采用本发明实施例,通过在分布式数据库的基础上建立全局一致性管理器,能够确保多副本查询请求数据的一致性,避免读取到过期的数据,提升副本的利用率。
参见图3,是本发明实施例提供的一种终端设备的结构示意图。该实施例的终端设备包括:处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序。所述处理器执行所述计算机程序时实现上述各个数据库读多副本一致性方法实施例中的步骤。或者,所述处理器执行所述计算机程序时实现上述各装置实施例中各模块的功能。
示例性的,所述计算机程序可以被分割成一个或多个模块,所述一个或者多个模块被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述终端设备中的执行过程。
所述终端设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,所述示意图仅仅是终端设备的示例,并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述终端设备的控制中心,利用各种接口和线路连接整个终端设备的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述终端设备的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
其中,所述终端设备集成的模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如上述所述的数据库读多副本一致性方法。
综上所述,本发明实施例公开的一种数据库读多副本一致性方法、装置、设备及介质,通过获取客户端的多个查询请求,并将所述多个查询请求发送至分布式数据库的任意计算节点,其中,对于每一个所述查询请求,所述计算节点接收到所述查询请求后,对所述查询请求进行解析,并将解析后的数据发送至全局一致性管理器,所述全局一致性管理器根据所述解析后的数据中的表或行,将所述全局一致性管理器的全局唯一标识映射表中对应的表或行的全局一致性标识发送至所述计算节点,所述计算节点将所述全局一致性标识发送至所述计算节点对应的存储节点,若所述计算节点对应的存储节点包含有所需查询的只读副本,则路由至该存储节点进行查询,若不包含,则随机查询其它计算节点对应的存储节点中的只读副本,若查询到的只读副本中记录的表或行对应的全局唯一标识与所述全局一致性标识一致,则返回所述查询到的只读副本中的数据,若不一致,则丢弃所述查询到的只读副本中的数据。采用本发明实施例,通过在分布式数据库的基础上建立全局一致性管理器,能够确保多副本查询请求数据的一致性,避免读取到过期的数据,提升副本的利用率。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
Claims (9)
1.一种数据库读多副本一致性的方法,其特征在于,包括以下步骤:
获取客户端的多个查询请求,并将所述多个查询请求发送至分布式数据库的任意计算节点;
对于每一个所述查询请求,所述计算节点接收到所述查询请求后,对所述查询请求进行解析,并将解析后的数据发送至全局一致性管理器;
对于每一个所述查询请求,所述全局一致性管理器接收到所述解析后的数据后,根据所述解析后的数据中的表或行,将所述全局一致性管理器的全局唯一标识映射表中对应的表或行的全局一致性标识发送至所述计算节点;
对于每一个所述查询请求,所述计算节点在接收到所述全局一致性标识后,将所述全局一致性标识发送至所述计算节点对应的存储节点;
对于每一个所述查询请求,若所述计算节点对应的存储节点包含有所需查询的只读副本,则路由至该存储节点进行查询,若不包含,则随机查询其它计算节点对应的存储节点中的只读副本;
对于每一个所述查询请求,若查询到的只读副本中记录的表或行对应的全局唯一标识与所述全局一致性标识一致,则返回所述查询到的只读副本中的数据,若查询到的只读副本中记录的表或行对应的全局唯一标识与所述全局一致性标识不一致,则丢弃所述查询到的只读副本中的数据。
2.根据权利要求1所述的数据库读多副本一致性的方法,其特征在于,所述在获取客户端的多个查询请求之前,还包括以下步骤:
获取客户端的多个写请求,并将所述写请求发送至分布式数据库的任意计算节点;
对于每一个所述写请求,所述计算节点接收到所述写请求后,对所述写请求进行解析;
对于每一个所述写请求,将解析后的数据路由至所述计算节点对应的存储节点,并将所述解析后的数据中的表及行对应的全局唯一标识写入所述存储节点对应的表及行中;
对于每一个所述写请求,所述存储节点在更新所述对应的表及行的全局唯一标识后,通过所述存储节点的分布式全局一致性管理器代理进程,将所述全局唯一标识返回至所述计算节点;
对于每一个所述写请求,所述计算节点在接收到所述全局唯一标识后,将所述全局唯一标识发送至全局一致性管理器;
对于每一个所述写请求,所述全局一致性管理器在接收到所述全局唯一标识后,将所述全局唯一标识更新到所述全局一致性管理器的全局唯一标识映射表对应的表及行中。
3.根据权利要求1所述的数据库读多副本一致性的方法,其特征在于,所述对于每一个所述查询请求,所述全局一致性管理器接收到所述解析后的数据后,根据所述解析后的数据中的表或行,将所述全局一致性管理器的全局唯一标识映射表中对应的表或行的全局一致性标识发送至所述计算节点,具体步骤为:
对于每一个所述查询请求:
所述全局一致性管理器接收到所述解析后的数据;
若所述解析后的数据中包含具体的行,则向所述全局一致性管理器中的全局唯一标识映射表查询对应的行的全局一致性标识,若所述解析后的数据中不包含具体行或行数较多,则向所述全局一致性管理器中的全局唯一标识映射表查询对应的表的全局一致性标识;
将表或行对应的全局一致性标识发送至所述计算节点。
4.根据权利要求1所述的数据库读多副本一致性的方法,其特征在于,所述若查询到的只读副本中记录的全局唯一标识与所述全局一致性标识不一致,则丢弃查询结果之后,还包括以下步骤:
再次查询其它只读副本,重复比对的过程;
或者,直接读取主副本,获取并返回与全局唯一标识一致的只读副本中的数据。
5.根据权利要求1所述的数据库读多副本一致性的方法,其特征在于,所述全局唯一标识是由表名哈希、主键ID、时间戳和序号组成的单调递增的数值。
6.根据权利要求1所述的数据库读多副本一致性的方法,其特征在于,所述存储节点唯一属于一个计算节点。
7.一种数据库读多副本一致性的装置,其特征在于,包括:
请求获取模块,用于获取客户端的多个查询请求,并将所述多个查询请求发送至分布式数据库的任意计算节点;
请求解析模块,用于对于每一个所述查询请求,所述计算节点接收到所述查询请求后,对所述查询请求进行解析,并将解析后的数据发送至全局一致性管理器;
标识获取模块,用于对于每一个所述查询请求,所述全局一致性管理器接收到所述解析后的数据后,根据所述解析后的数据中的表或行,将所述全局一致性管理器的全局唯一标识映射表中对应的表或行的全局一致性标识发送至所述计算节点;
标识接收模块,用于对于每一个所述查询请求,所述计算节点在接收到所述全局一致性标识后,将所述全局一致性标识发送至所述计算节点对应的存储节点;
副本查询模块,用于对于每一个所述查询请求,若所述计算节点对应的存储节点包含有所需查询的只读副本,则路由至该存储节点进行查询,若不包含,则随机查询其它计算节点对应的存储节点中的只读副本;
标识比较模块,用于对于每一个所述查询请求,若查询到的只读副本中记录的表或行对应的全局唯一标识与所述全局一致性标识一致,则返回所述查询到的只读副本中的数据,若查询到的只读副本中记录的表或行对应的全局唯一标识与所述全局一致性标识不一致,则丢弃所述查询到的只读副本中的数据。
8.一种终端设备,其特征在于,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至6中任意一项所述的数据库读多副本一致性的方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如权利要求1至6中任意一项所述的数据库读多副本一致性的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011406787.3A CN112527900B (zh) | 2020-12-04 | 2020-12-04 | 一种数据库读多副本一致性的方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011406787.3A CN112527900B (zh) | 2020-12-04 | 2020-12-04 | 一种数据库读多副本一致性的方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112527900A CN112527900A (zh) | 2021-03-19 |
CN112527900B true CN112527900B (zh) | 2023-08-01 |
Family
ID=74997232
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011406787.3A Active CN112527900B (zh) | 2020-12-04 | 2020-12-04 | 一种数据库读多副本一致性的方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112527900B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113239013B (zh) * | 2021-05-17 | 2024-04-09 | 北京青云科技股份有限公司 | 分布式系统及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102882943A (zh) * | 2012-09-12 | 2013-01-16 | 北京航空航天大学 | 服务副本读写方法及系统 |
US9507843B1 (en) * | 2013-09-20 | 2016-11-29 | Amazon Technologies, Inc. | Efficient replication of distributed storage changes for read-only nodes of a distributed database |
CN109739935A (zh) * | 2019-01-09 | 2019-05-10 | 腾讯科技(深圳)有限公司 | 数据读取方法、装置、电子设备以及存储介质 |
CN110309334A (zh) * | 2018-04-20 | 2019-10-08 | 腾讯科技(深圳)有限公司 | 图数据库的查询方法、系统、计算机设备和可读存储介质 |
-
2020
- 2020-12-04 CN CN202011406787.3A patent/CN112527900B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102882943A (zh) * | 2012-09-12 | 2013-01-16 | 北京航空航天大学 | 服务副本读写方法及系统 |
US9507843B1 (en) * | 2013-09-20 | 2016-11-29 | Amazon Technologies, Inc. | Efficient replication of distributed storage changes for read-only nodes of a distributed database |
CN110309334A (zh) * | 2018-04-20 | 2019-10-08 | 腾讯科技(深圳)有限公司 | 图数据库的查询方法、系统、计算机设备和可读存储介质 |
CN109739935A (zh) * | 2019-01-09 | 2019-05-10 | 腾讯科技(深圳)有限公司 | 数据读取方法、装置、电子设备以及存储介质 |
Non-Patent Citations (1)
Title |
---|
数据网格中的快照管理及其在电子政务中的应用;刘若冰;张雪峰;罗洪霞;;科技资讯(06);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112527900A (zh) | 2021-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109547512B (zh) | 一种基于NoSQL的分布式Session管理的方法及装置 | |
EP3702932A1 (en) | Method, apparatus, device and medium for storing and querying data | |
CN111177161B (zh) | 数据处理方法、装置、计算设备和存储介质 | |
US10474185B2 (en) | Timestamp alignment across a plurality of computing devices | |
US20180276267A1 (en) | Methods and system for efficiently performing eventual and transactional edits on distributed metadata in an object storage system | |
CN112307119A (zh) | 数据同步方法、装置、设备及存储介质 | |
WO2018153033A1 (zh) | 一种信息处理方法及装置 | |
CN112667601B (zh) | 区块链标识的管理方法、终端设备及计算机可读存储介质 | |
CN111651424B (zh) | 一种数据处理方法、装置、数据节点及存储介质 | |
CN110083307A (zh) | 数据存储方法、存储器和服务器 | |
CN111858760A (zh) | 一种异构数据库的数据处理方法及装置 | |
CN112527900B (zh) | 一种数据库读多副本一致性的方法、装置、设备及介质 | |
CN116467275A (zh) | 共享远程存储方法、装置、系统、电子设备及存储介质 | |
CN111008220A (zh) | 数据源的动态识别方法及装置、存储介质和电子装置 | |
CN113132356A (zh) | Udp报文的分发方法、设备及存储介质 | |
CN111081258B (zh) | 一种声纹模型管理方法、系统、存储介质及装置 | |
US10185735B2 (en) | Distributed database system and a non-transitory computer readable medium | |
CN116775712A (zh) | 联表查询方法、装置、电子设备、分布式系统和存储介质 | |
CN110597808A (zh) | 分布式数据库表连接方法、装置、系统、服务器及介质 | |
CN115510161A (zh) | 数据同步方法、装置、设备及存储介质 | |
WO2018108010A1 (en) | System, device and method for data update notification | |
CN112764897B (zh) | 任务请求的处理方法、装置、系统及计算机可读存储介质 | |
CN113268483A (zh) | 请求处理方法和装置、电子设备和存储介质 | |
CN113377714A (zh) | 基于分布式存储系统的目标器重命名方法及装置 | |
CN112463786A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |