CN116418817A - 分布式数据库的元数据管理方法、装置、设备和存储介质 - Google Patents
分布式数据库的元数据管理方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN116418817A CN116418817A CN202310098236.2A CN202310098236A CN116418817A CN 116418817 A CN116418817 A CN 116418817A CN 202310098236 A CN202310098236 A CN 202310098236A CN 116418817 A CN116418817 A CN 116418817A
- Authority
- CN
- China
- Prior art keywords
- node
- metadata
- propagation
- newly added
- protocol
- 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
- 238000007726 management method Methods 0.000 title claims abstract description 37
- 238000000034 method Methods 0.000 claims abstract description 58
- 238000004891 communication Methods 0.000 claims description 16
- 230000004044 response Effects 0.000 claims description 5
- 238000013508 migration Methods 0.000 abstract description 5
- 230000005012 migration Effects 0.000 abstract description 5
- 238000004590 computer program Methods 0.000 description 14
- 230000005540 biological transmission Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 230000009471 action Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000000644 propagated effect Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 3
- 230000000737 periodic effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 239000013307 optical fiber Substances 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
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/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/164—File meta data generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- 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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
- H04L67/1065—Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT]
-
- 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/14—Session management
- H04L67/141—Setup of application sessions
-
- 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
Abstract
本公开实施例提供了一种分布式数据库的元数据管理方法、装置、设备和存储介质。分布式数据库的元数据管理方法包括:基于所述第一节点中的第一新增元数据生成第一交换消息;按照预先配置的传播协议,将所述第一交换消息向第二节点发送,其中所述第二节点为在所有已经与所述第一节点建立P2P连接的对等节点中随机选择的节点,所述传播协议包括如下中的至少一种:推送协议、拉取协议。因为本公开实施例中分布式数据库中的每个管理元数据的节点均是P2P网络中的对等节点,并且可以进行元数据的交换,所以采用本公开实施例提供的方法,分布式数据库中每个管理元数据的节点退出、加入均无需元数据迁移,降低了管理和控制成本。
Description
技术领域
本发明涉及分布式数据库技术领域,尤其涉及一种分布式数据库的元数据管理方法、装置、设备和存储介质。
背景技术
随着互联网技术和信息技术在全球范围内的飞速发展,信息的数据量呈现一种爆炸式增涨的态势,很多数据库系统需要处理高并发、大数据等多种场景。为应对前述需求,行业提出了采用分布式数据库的解决方案。
分布式数据的设计和使用过程中,重要的一环是数据寻址,即确定是如何通过元数据确定数据的存储地址。目前分布式数据库系统的元数据管理方法是将元数据分片并使用分布式节点进行存储,解决了数据性能和容量扩展上限的问题。
但是,前述分布式数据库系统的元数据管理方法,需要在存储元数据的节点退出分布式系统时进行元数据迁移,管理和控制成本过高。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开实施例提供了一种分布式数据库的元数据管理方法、装置、设备和存储介质。
第一方面,本公开实施例提供一种分布式数据库的元数据管理方法,应用于分布式数据库的第一节点,所述方法包括:
基于所述第一节点中的第一新增元数据生成第一交换消息;
按照预先配置的传播协议,将所述第一交换消息向第二节点发送,其中所述第二节点为在所有已经与所述第一节点建立P2P连接的对等节点中随机选择的节点,所述传播协议包括如下中的至少一种:推送协议、拉取协议。
可选的,在基于所述第一新增元数据生成第一交换消息之前,所述方法还包括:
获取针对所述待第一新增元数据的传播配置参数,所述传播配置参数包括如下中的至少一种:消息传送节点数、消息有效时间;
所述基于所述第一新增元数据生成第一交换消息,包括:基于所述第一新增元数据的数据类型和对应的传播配置参数,生成所述第一交换消息。
可选的,在基于所述第一新增元数据的数据类型和对应的传播配置参数,生成所述第一交换消息之前,所述方法还包括:
为所述第一新增元数据分配第一序列号,所述第一序列号为全局唯一序列号;
所述基于所述第一新增元数据的数据类型和对应的传播配置参数,生成所述第一交换消息包括:
基于所述第一新增元数据、所述传播配置参数和所述第一序列号生产所述第一交换信息。
可选的,在所述传播协议为所述拉取协议的情况下,所述按照预先配置的传播协议,将所述第一交换消息向第二节点发送包括:
响应于获取到所述第二节点发送的拉取请求,将所述第一交换信息向所述第二节点发送。
可选的,所述方法还包括:响应于接收到其他对等节点发送的第二交换消息,解析所述第二交换消息得到第二新增元数据以及对应的实际传播配置参数;
根据所述实际传播配置参数确定是否转发所述第二新增元数据;
若是,根据所述实际传播配置参数生成更新传播配置参数;
根据所述更新传播配置参数和所述第二新增元数据,生成第三交换消息;
按照预先配置的传播协议,将所述第三交换信息向第三节点发送,所述第三节点是所有已经与所述第一节点建立P2P连接的对等节点中随机选择的节点。
可选的,所述方法还包括:
判断本地是否已经存储所述第二新增元数据;
若否,将所述第二新增数据写入到本地存储器中。
可选的,所述方法还包括:
周期性的判断是否与随机选择的哨兵节点是否正常通信;
若否,初始化所述第一节点的P2P配置信息。
第二方面,本公开实施例提供一种分布式数据库的元数据管理装置,应用于分布式数据库的第一节点,所述方法包括:
消息生成单元,用于基于所述第一节点中的第一新增元数据生成第一交换消息;
消息发送单元,用于按照预先配置的传播协议,将所述第一交换消息向第二节点发送,其中所述第二节点为在所有已经与所述第一节点建立P2P连接的对等节点中随机选择的节点,所述传播协议包括如下中的至少一种:推送协议、拉取协议。
第三方面,本公开实施例还提供一种计算设备,包括:处理器;以及存储程序的存储器,其中,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行如前所述的分布式数据库的元数据管理方法。
第四方面,本公开实施例提供一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行如前所述的分布式数据库的元数据管理方法。
本公开实施例提供的技术方案与现有技术相比具有如下优点:
采用本公开实施例提供的方案,在基于所述第一节点中的第一新增元数据生成第一交换消息后,按照预先配置的传播协议,将所述第一交换消息向第二节点发送,并使得第二节点按照预先配置的传播协议继续传播第一新增元数据。采用本公开实施例提供的方法,分布式数据库中大多数节点均可以获取整个网络中的元数据,继而为终端进行数据查询提供服务。因为本公开实施例中分布式数据库中的每个管理元数据的节点均是P2P网络中的对等节点,并且可以进行元数据的交换,所以采用本公开实施例提供的方法,分布式数据库中每个管理元数据的节点退出、加入均无需元数据迁移,降低了管理和控制成本。
附图说明
在下面结合附图对于示例性实施例的描述中,本公开的更多细节、特征和优点被公开,在附图中:
图1是本公开实施例提供的分布式数据库的元数据管理方法流程图;
图2是本公开实施例中分布式数据库的元数据管理方法流程图;
图3是本公开实施例提供的分布式数据库的元数据管理装置的结构示意图;
图4是本公开一些实施例提供的计算设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
为了解决现有的分布式数据库系统元数据管理方法在节点退出或者加入时需要进行元数据迁移,管理和控制成本过高的问题,本公开实施例提供一种新的分布式数据库的元数据管理方法。
图1是本公开实施例提供的分布式数据库的元数据管理方法流程图。如图1所示,本公开实施例提供的元数据管理方法包括S110-S120。
应当注意的是,本公开实施例提供的元数据管理方法应用于分布式数据库中的第一节点。前述第一节点可以是分布式数据库系统中专门用于元数据处理的节点,也可以是同时处理元数据和实际存储数据的节点。
S110:基于第一节点中的第一新增元数据生成第一交换消息。
第一新增元数据是第一节点中新增的元数据。应当注意的是,前述新增元数据并不是其他节点交换给第一节点的元数据,而是第一节点从存储实际存储数据的节点获取到的元数据。当然,在第一节点为实际存储数据的节点的情况下,第一节点存储的元数据也可以是自身处理实际存储数据过程中形成的元数据。
在本公开的一些实施例中,第一新增元数据也可以是历史存储,但是因为刷新时间等原因而被作为新数据看待的元数据。通过仅对新增元数据进行交换,可以避免冗余消息的转发,同时确保消息的充分启动传播。
在具体实施中,第一新增元数据可以是如下类型的元数据:服务状态,outgoing节点列表,存储信息,节点通信锁信息,系统配置信息,集群部分网络拓扑信息,节点描述,存储maps(存储和节点的键值对),集群信息,模式信息,模式与存储地图。
具体实施中,第一节点可以将这些元数据按照主题进行划分,例如可以划分为负载特性主题元数据、存储统计主题元数据、网络拓扑主题元数据。
负载特性主题元数据是用于决定节点如何进行分派,避免出现计算集中在某几个热点节点上的元数据,可以包括磁盘的容量、CPU负载、状态。
存储统计主题元数据是用于对分布式查询服务,在指定计划期间决定获取数据路由、基于成本的计划指定、避免去存在丢失副本或无效副本上做无效的数据获取操作的元数据。存储统计主题可以包括存储的读写负载、丢失副本、无效的存储分片等。
网络拓扑元数据是用于决定如何做分片的拆分或合并、数据的压缩,副本的恢复,以及负载的均衡的元数据。网路拓扑主题元数据可以包括带宽、延迟、故障等。
此外,本公开实施例中的新增元数据还可以是其他类型的元数据,本公开实施例不再做举例说明。
本公开实施例中,在第一节点获取到第一新增元数据之后,按照预先设定规则基于第一新增元数据生成第一交换信息。第一交换信息是用于发送给P2P网络中其他节点的信息。
在本公开的一些实施例中,在执行前述的S110之前,计算设备会获取针对第一新增元数据的传播配置参数。传播配置参数包括如下中的至少一种:消息传送节点数、消息有效时间。消息传送节点数是相关消息可以在P2P网络中被传播的次数,消息有效时间是相关消息可以在P2P网络中存在的时间。例如,在一些实施例中,消息传送节点数可以设置为3,消息有效时间可以被设置为2s。
可选的,在本公开的一些实施例中,传播配置参数还可以包括节点描述更新时间、节点描述信息TTL时间、磁盘描述更新时间和磁盘描述TTL时间。例如,节点描述更新时间可以为1小时,节点描述信息TTL时间为2小时,磁盘描述更新时间为40秒,磁盘描述TTL时间为2分钟等。
传播配置参数中的一些参数(主要是消息传送节点数、消息有效时间)是用于防止消息在P2P网络中的无限制传播。
传输配置参数中的另外一些参数(节点描述更新时间、节点描述信息TTL时间、磁盘描述更新时间和磁盘描述TTL时间)是用于使得不常变动的信息采取定时更新的方式被更新。例如,分布式数据库的节点在使用后不会经常添加或删除的信息。
在具体实施例中,每个节点可以配置的对等节点数和消息传送节点数具有相关关系。例如如果对等节点数为3,集群中有27个节点,则消息传送节点数为3;如果对等节点数为4,集群中有64个节点,则消息传送节点数为3;如果对等节点数为5,集群中有125个节点,则消息传送节点数为3。采用伪代码表述为:Variables
nodeCount:分布式集群中节点数
maxHops:集群定义的最大跳数
minPeers:集群允许的最小对等节点数
functionMaxPeers(nodeCount)
maxPeers<-[e^log(nodeCount/(maxHops-2))]
if maxPeers<minPeers
maxPeers<-minPeers。
对应的,基于第一新增元数据生成第一交换消息,包括:基于第一新增元数据的数据类型和对应的传播配置参数,生成第一交换消息。
可选的,在本公开的一些实施例中,第一节点在获取到第一新增元数据之后,还会为第一新增元数据分配第一序列号,第一序列号为全局唯一序列号。具体实施中,第一序列号可以是通用唯一识别码(Universally Unique Identifier,UUID)。对应的,前述基于第一新增元数据的数据类型和对应的传播配置参数,生成第一交换消息具体为:基于第一新增元数据、传播配置参数和第一序列号生产第一交换信息。
S120:按照预先配置的传播协议,将第一交换消息向第二节点发送。
本公开实施例中,第二节点是分布式数据库中与第一节点建立P2P连接的对等节点中随机选择的节点。
为了实现将第一交换信息向第二节点的发送,本公开实施例中的计算设备需要在第一节点加入到P2P网络中。
第二节点加入到P2P网路的步骤包括如下内容:在分布式数据库各节点启动时,每个节点均启动P2P服务,并接受P2P请求,加入P2P网络。在加入到P2P网络的过程中,初始化并配置传播配置参数,具体为初始化前述的消息传送节点数、消息有效时间、节点描述更新时间、节点描述信息TTL时间、磁盘描述更新时间和磁盘描述TTL时间。
随后,加载完后启动节点的RPC服务,完成P2P服务的启动。具体在完成P2P服务启动过程的涉及的RPC、序列化、Metrics等步骤,具体可以参见相关技术文献,此处不再复述。
再后,第一节点在启动节点列表中随机选取节点,并启动RPC客户端、
最后,第一节点向对等节点请求P2P连接,请求和响应包含从节点到网络其他节点信息映射。
本公开实施例中,第一节点会在分布式数据库中大于第一节点建立的P2P连接的对等节点中,随机地选择节点作为第二节点。第二节点的数量可以根据P2P网络的节点数量以及前述传播配置参数中的消息传送节点数确定,以使得第一新增元数据通过多次传播后能够基本传播至P2P网络中的所有对等节点。
可选的,预先配置的传播协议可以包括推送协议和拉取协议中的至少一种。
推送协议是节点主动发送新增元数据对应的消息的协议。推送协议基于对等节点之间消息的递归转发。在节点的元数据发生改变后,节点将新增元数据主动传递到几个随机选择的节点,这些节点递归地重复这一过程,直到达到前述的消息传送节点数或者消息的存在时间达到了前述的消息有效时间。
在采用推送协议作为传播协议的情况下,新增元数据在前几次传输中,可以在P2P网络中呈指数级传播。但在后续传播速率会降低,到达其他节点的成本也会急剧上升。
拉取协议是节点定期探测网络中的随机对等节点,希望从已到达的对等节点可用时检测到新消息。也就是,只有在对等节点向目标节点发送拉取请求的情况下,目标节点才会向对应对等节点发送包括新增元数据的消息。
与推送协议相反,不知情节点接收消息的概率随着消息的当前覆盖范围而线性增加。对于拉取协议,需要几轮传播,新增元数据同步的传播才会开始起飞,并迅速传播到所有剩余节点,并且有用消息的比例只在消息传播高峰期正常。
为了较少没有意义的拉取,在本公开的一些实施例中,P2P网络中的节点可以调整拉取周期。具体实施中,周期如果设置过短,尤其在消息更新较少的时候,会产生不必要的探测消息负载,也就是说定期拉取可能造成资源浪费。在此情况下,如果多次定期拉取均没有获取到拉取的新增元数据,则可以。此外,在当消息以一个较高的速度更新时,说明当前分布式系统存在了很大的负载,拉取还会出去无响应。这是还可能增大拉取周期。
具体实施中,在前述预先配置的传播协议为拉取协议的情况下。前述的按照预先配置的传播协议,将第一交换消息向第二节点发送包括:响应于获取到第二节点发送的拉取请求,将第一交换信息向第二节点发送。
由于推送协议会以较低的延迟传递消息,在具体实施中预先配置的传播协议优选为推送协议。
当然,在一些实施例中,传播协议也可以同时使用推送协议或者拉取协议,本公开实施例并不做限定。同时使用推送协议或者拉取协议可以被认为是配置了混合协议。混合协议采用对等采样服务,对等采样服务是在某一时刻系统中任意一个节点通过此服务获取一个系统中的随机选择节点。混合协议以完全分散的方式,以微小的带宽成本,为每个节点提供定期刷新的指向随机其他选择节点的链接列表。
应当注意的是,在P2P网络中,节点可以随时加入或离开网络,离开和崩溃、失败得到同等对待,所有行动都完全分散,没有中央节点来控制元数据,节点之间的消息交换是异步的。
本公开实施例中,P2P网路中的每个节点均维护有一个节点信息列表,其中包括少数指向其他节点的链接。每个节点定期但异步地从节点信息列表中与对等节点联系,并交换节点信息列表的一些链接,实现节点信息列表的刷新,有指向随机的其他对等节点的新链接。当循序正确的策略时,此方法生成的随机网络拓扑将非常相似的叠加,即在任何给定时刻,每个节点的视图都包含从整个网络中均匀随机选择的节点的链接。这个过程可以收敛到几十个周期之内,无论初始拓扑是哪种,由于具有自我修复性质,即使面对节点改动,也可将新增元数据同步到整个网络。
本公开实施例提供的元数据管理方法,在基于第一节点中的第一新增元数据生成第一交换消息后,按照预先配置的传播协议,将第一交换消息向第二节点发送,并使得第二节点按照预先配置的传播协议继续传播第一新增元数据。采用本公开实施例提供的方法,分布式数据库中大多数节点均可以获取整个网络中的元数据,继而为终端进行数据查询提供服务。因为本公开实施例中分布式数据库中的每个管理元数据的节点均是P2P网络中的对等节点,并且可以进行元数据的交换,所以采用本公开实施例提供的方法,分布式数据库中每个管理元数据的节点退出、加入均无需元数据迁移,降低了管理和控制成本。
本公开实施例中,第一节点除了向其他节点发送自身的第一新增元数据外,还需要获取到其他节点发送的新增元数据,以及确定是否继续转发其他节点发送的新增元数据。
图2是本公开实施例中分布式数据库的元数据管理方法流程图。如图2所示,第一节点还会执行如下的S210-S250。
S210:响应于接收到其他对等节点发送的第二交换消息,解析第二交换消息得到第二新增元数据以及对应的实际传播配置参数。
在第一节点接收到其他对等节点发送的第二交换消息之后,第一节点按照预先配置的解析规则对第二交换消息进行解析,确定第二新增元数据和对应的当前配置参数。
前述的当前配置参数包括已传送节点数和发送时间戳。例如,如果第二新增元数据已经被传播了5次,则已传送节点数为5。
S220:根据实际传播配置参数确定是否转发第二新增元数据;若是,执行S230;若否,执行S260。丢弃第二交换消息。
本公开实施例中,各个节点对新增元数据配置的传播配置参数均相同。在获取到当前传播配置传输中的已传送节点数之后,第一节点根据已传送节点数和消息传送节点数进行比较,可以确定是否转发第二新增元数据。如果已传送节点数已经达到了消息传送节点数,则不再转发第二新增元数据。
本公开实施例中,在第一节点可以根据发送时间戳和当前时间戳确定第二新增元数据的传播时间,并将前述传播时间和消息有效时间进行比较,确定是否继续转发第二新增元数据。如果确定传播时间已经大于或等于消息有效时间,则不再转发第二新增元数据。
S230:根据实际传播配置参数生成更新传播配置参数。
如果可以传播第二新增元数据,第一节点根据实际传播配置参数生成更新传播配置参数。例如,第一节点可以将已传送节点数加一,得到最新的已传动节点数。例如,第一节点还可以将发送时间戳作为更新传播配置参数中的时间戳。
S240:根据更新传播配置参数和第二新增元数据,生成第三交换消息。
在得到前述更新传播配置参数之后,随后第节点可以采用更新传播配置参数和第二新增元数据生成第三交换消息。
在一些实施例中,在第二新增元数据包括对应的全局唯一序列号的情况下,第一节点还会将前述全局唯一序列号写入到第三交换消息中。
S250:按照预先配置的传播协议,将第三交换信息向第三节点发送。
S260:丢弃第二交换消息。
前述第三节点是所有已经与第一节点建立P2P连接的对等节点中随机选择的节点。
采用前述的S210-S250,第一节点在接收到其他节点发送的新增元数据之后,通过转发新增元数据,实现新增元数据在P2P网络中的传播,继而使得P2P网络中的所有节点均可以快速地获取到新增元数据。
另外,在本公开的一些实施例中,在第一节点获取到第二新增元数据之后,还可以判断在前已经获取到第二新增元数据。如果在前未获取到过第二新增元数据,则可以将将第二新增数据写入到本地存储器中。具体实施例中,第一节点可以通过第二新增元数据的全局唯一序列号和以获取到的新增元数据的全局唯一序列号进行比较,确定是否已经获取到过第二新增元数据。
本公开实施例中,为了避免第一节点处在分区的子网络中,第一节点还可以执行如下的S310-S320。
S310:周期性的判断是否与随机选择的哨兵节点是否正常通信;若否,执行S320。
S320:初始化第一节点的P2P配置信息。
哨兵节点是为了解决拜占庭问题和故障转移确定的节点,由P2P网络中节点记性投票确定的节点。如果哨兵节点key丢失或者已到期,将认为第一节点位于P2P网络中的分区网络中,需要初始化第一节点的P2P配置信息。
在本公开一些实施例中,哨兵有三个定时任务,通过这些任务,来发现新增节点和节点的状态,以及确定是否出现分区问题。三个任务分别是;按照第一设定周期与其他节点进行信息交换;按照第二设定周期与其他节点进行握手;按照第三设定周期与其他节点执行ping操作。
本公开实施例中,分布式数据库采用无共享存储方式,并且每个节点权利相同,组成非结构化网络,即并不具备严格的控制拓扑和消息路由。
应当注意的是,只有元数据采用前述方法进行管理,实际存储数据并不需要采用前述方法处理。
采用传播协议,将元数据的更新在节点之间传播,保持节点故障时的健壮性。节点之间需要交换它们的节点信息列表,以反映自己视图的网络变化。元数据信息在节点之间传播,每个节点维护部分视图,即包含自身的全局视图和它感兴趣的部分元数据信息。这些元数据包括,集群信息、节点信息、存储信息、通信地址、读写负载信息、部分网络拓扑信息等。
采用本公开实施例提供的方法,通过P2P通信确定一个指定节点是否有空闲能力,每个节点通过P2P通信交换元数据信息,包括读写负载信息,从而在整个集群中以超出平均速度迅速发现具有充裕能力的节点。这样避免了负载都堆积一起,可以从高能力节点组成低负载网络来分配负载。
采用本公开实施例提供的方法,每个节点通过持续地刷新它们的节点信息列表,节点可以自组织成随机化的覆盖网,在分布式索引情况下,底层数据采用多副本,待加入的节点通过向它的邻居通告和接受信息,以确定它在系统中所附加的节点位置信息,节点从分布式系统中加入或离开在元数据层面都不需要做特别操作,只需要从节点消失即可,并且非结构化网络可以进行自我调整,实现节点的故障转移。或者说,节点的加入、离开亦或者出现故障,元数据层面都不会有影响。
采用本公开实施例提供的方法,每次P2P通信使用单增序列号维护新增元数据信息,并不会对整个资源造成很大的影响,扩展节点并不需要优化参数等动作。
采用本公开实施例提供的方法,点维护元数据信息,并通过P2P网络进行同步,在分布式数据库对外提供服务时可有效地定位存储位置,并通过元数据信息。除了提供前述的分布式数据库的元数据管理方法外,本公开实施例还提供一种分布式数据库的元数据管理装置300。图3是本公开实施例提供的分布式数据库的元数据管理装置300的结构示意图。如图3所示,本公开实施例提供的分布式数据库的元数据管理装置300包括消息生成单元301和消息发送单元302。
消息生成单元301用于基于第一节点中的第一新增元数据生成第一交换消息。
消息发送单元302用于按照预先配置的传播协议,将第一交换消息向第二节点发送,其中第二节点为在所有已经与第一节点建立P2P连接的对等节点中随机选择的节点,传播协议包括如下中的至少一种:推送协议、拉取协议。
在一些实施例中,分布式数据库的元数据管理装置300还包括参数获取单元。参数获取单元用于获取针对待第一新增元数据的传播配置参数,传播配置参数包括如下中的至少一种:消息传送节点数、消息有效时间。对应的,消息生成单元301基于第一新增元数据的数据类型和对应的传播配置参数,生成第一交换消息。
在本公开的一些实施例中,分布式数据库的元数据管理装置300还包括序号分配获取单元。序号分配单元为第一新增元数据分配第一序列号,第一序列号为全局唯一序列号。对应的,消息生成单元301基于第一新增元数据、传播配置参数和第一序列号生产第一交换信息。
在本公开的一些实施例中,在传播协议为拉取协议的情况下,消息发送单元302响应于获取到第二节点发送的拉取请求,将第一交换信息向第二节点发送。
在本公开的一些实施例中,分布式数据库的元数据管理装置300还包括消息接收单元、判断单元、配置参数更改单元。消息接收单元用于响应于接收到其他对等节点发送的第二交换消息,解析第二交换消息得到第二新增元数据以及对应的实际传播配置参数;判断单元用于根据实际传播配置参数确定是否转发第二新增元数据;配置参数更改单元用于在判断单元判定转发第二新增元数据时,根据实际传播配置参数生成更新传播配置参数。前述消息生成单元301根据更新传播配置参数、第二新增元数据和第二新增参数对应的全局唯一序列号,生成第三交换消息;消息发送单元302还用于按照预先配置的传播协议,将第三交换信息向第三节点发送,第三节点是所有已经与第一节点建立P2P连接的对等节点中随机选择的节点。
在本公开的一些实例中,在判断本地未存储第二新增元数据的情况下,分布式数据库的元数据管理装置300将第二新增数据写入到本地存储器中。
在本公开实施例中,判断单元还用于周期性的判断是否与随机选择的哨兵节点是否正常通信。在判断单元判定不能与随机选择的哨兵节点是否正常通信的情况下,触发参数配置单元重新初始化第一节点的P2P配置信息。
本公开示例性实施例还提供一种存储有计算机程序的非瞬时计算机可读存储介质,其中,计算机程序在被计算机的处理器执行时用于使计算机执行根据本公开实施例的方法。
本公开示例性实施例还提供一种计算机程序产品,包括计算机程序,其中,计算机程序在被计算机的处理器执行时用于使计算机执行根据本公开实施例的方法。
图4是本公开一些实施例提供的计算设备的结构示意图。下面具体参考图4,其示出了适于用来实现本公开实施例中的计算设备的结构示意图。图4示出的计算设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图4所示,计算设备400可以包括处理装置401(例如中央处理器、图形处理器等),其可以根据存储在只读存储器ROM402中的程序或者从存储装置408加载到随机访问存储器RAM403中的程序而执行各种适当的动作和处理。在RAM 403中,还存储有计算设备400操作所需的各种程序和数据。处理装置401、ROM 402以及RAM 403通过总线404彼此相连。输入/输出I/O接口405也连接至总线404。
通常,以下装置可以连接至I/O接口405:包括加速度计、陀螺仪等的输入装置406;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置407;包括例如磁带、硬盘等的存储装置408;以及通信装置409。通信装置409可以允许计算设备400与其他设备进行无线或有线通信以交换数据。虽然图4示出了具有各种装置的计算设备400,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置409从网络上被下载和安装,或者从存储装置408被安装,或者从ROM 402被安装。在该计算机程序被处理装置401执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如HTTP(HyperText TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述计算设备中所包含的;也可以是单独存在,而未装配入该计算设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该计算设备执行时,使得该计算设备:基于所述第一节点中的第一新增元数据生成第一交换消息;按照预先配置的传播协议,将所述第一交换消息向第二节点发送,其中所述第二节点为在所有已经与所述第一节点建立P2P连接的对等节点中随机选择的节点,所述传播协议包括如下中的至少一种:推送协议、拉取协议。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的根据硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括根据一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
本公开实施例还提供一种计算机可读存储介质,存储介质中存储有计算机程序,当计算机程序被处理器执行时可以实现上述任一方法实施例的方法,其执行方式和有益效果类似,在这里不再赘述。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种分布式数据库的元数据管理方法,应用于分布式数据库的第一节点;其特征在于,所述方法包括:
基于所述第一节点中的第一新增元数据生成第一交换消息;
按照预先配置的传播协议,将所述第一交换消息向第二节点发送,其中所述第二节点为在所有已经与所述第一节点建立P2P连接的对等节点中随机选择的节点,所述传播协议包括如下中的至少一种:推送协议、拉取协议。
2.根据权利要求1所述的方法,其特征在于,在基于所述第一新增元数据生成第一交换消息之前,所述方法还包括:
获取针对所述待第一新增元数据的传播配置参数,所述传播配置参数包括如下中的至少一种:消息传送节点数、消息有效时间;
所述基于所述第一新增元数据生成第一交换消息,包括:基于所述第一新增元数据的数据类型和对应的传播配置参数,生成所述第一交换消息。
3.根据权利要求2所述的方法,其特征在于,在基于所述第一新增元数据的数据类型和对应的传播配置参数,生成所述第一交换消息之前,所述方法还包括:
为所述第一新增元数据分配第一序列号,所述第一序列号为全局唯一序列号;
所述基于所述第一新增元数据的数据类型和对应的传播配置参数,生成所述第一交换消息包括:
基于所述第一新增元数据、所述传播配置参数和所述第一序列号生产所述第一交换信息。
4.根据权利要求1所述的方法,其特征在于,在所述传播协议为所述拉取协议的情况下,所述按照预先配置的传播协议,将所述第一交换消息向第二节点发送包括:
响应于获取到所述第二节点发送的拉取请求,将所述第一交换信息向所述第二节点发送。
5.根据权利要求1所述的方法,其特征在于,还包括:
响应于接收到其他对等节点发送的第二交换消息,解析所述第二交换消息得到第二新增元数据以及对应的实际传播配置参数;
根据所述实际传播配置参数确定是否转发所述第二新增元数据;
若是,根据所述实际传播配置参数生成更新传播配置参数;
根据所述更新传播配置参数和所述第二新增元数据,生成第三交换消息;
按照预先配置的传播协议,将所述第三交换信息向第三节点发送,所述第三节点是所有已经与所述第一节点建立P2P连接的对等节点中随机选择的节点。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
判断本地是否已经存储所述第二新增元数据;
若否,将所述第二新增数据写入到本地存储器中。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述方法还包括:
周期性的判断是否与随机选择的哨兵节点是否正常通信;
若否,重新初始化所述第一节点的P2P配置信息。
8.一种分布式数据库的元数据管理装置,应用于分布式数据库的第一节点;其特征在于,所述方法包括:
消息生成单元,用于基于所述第一节点中的第一新增元数据生成第一交换消息;
消息发送单元,用于按照预先配置的传播协议,将所述第一交换消息向第二节点发送,其中所述第二节点为在所有已经与所述第一节点建立P2P连接的对等节点中随机选择的节点,所述传播协议包括如下中的至少一种:推送协议、拉取协议。
9.一种计算设备,包括:处理器;以及
存储程序的存储器,
其中,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行根据权利要求1-8中任一项所述的方法。
10.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310098236.2A CN116418817A (zh) | 2023-01-20 | 2023-01-20 | 分布式数据库的元数据管理方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310098236.2A CN116418817A (zh) | 2023-01-20 | 2023-01-20 | 分布式数据库的元数据管理方法、装置、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116418817A true CN116418817A (zh) | 2023-07-11 |
Family
ID=87058778
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310098236.2A Pending CN116418817A (zh) | 2023-01-20 | 2023-01-20 | 分布式数据库的元数据管理方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116418817A (zh) |
-
2023
- 2023-01-20 CN CN202310098236.2A patent/CN116418817A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111935315B (zh) | 区块同步方法及装置 | |
CN108696374B (zh) | 更新客户端配置的方法和装置 | |
JP5567683B2 (ja) | ピアツーピア・ネットワーク内でサービスを突き止める方法および装置 | |
US10749954B2 (en) | Cross-data center hierarchical consensus scheme with geo-aware leader election | |
CN112118315A (zh) | 数据处理系统、方法、装置、电子设备和存储介质 | |
CN114070733B (zh) | 一种基于区块链网络的共识方法、装置及系统 | |
CN114328618A (zh) | 一种缓存数据同步方法、装置、设备及存储介质 | |
US20170357682A1 (en) | Method and apparatus for information management | |
US8725856B2 (en) | Discovery of network services | |
CN114938395A (zh) | 服务响应方法、装置、设备及存储介质 | |
CN109542981B (zh) | 一种数据同步的系统及方法、电子设备、存储介质 | |
CN111309366B (zh) | 一种管理注册核心的方法、装置、介质和电子设备 | |
CN116996376A (zh) | 对固网终端更新配置的方法、装置、设备及其存储介质 | |
CN116418817A (zh) | 分布式数据库的元数据管理方法、装置、设备和存储介质 | |
CN114760198B (zh) | 一种基于区块链网络的共识方法、装置及系统 | |
CN114880717A (zh) | 数据归档方法及装置 | |
CN114785770A (zh) | 镜像层文件发送方法、装置、电子设备和计算机可读介质 | |
CN114827171A (zh) | 信息同步方法、装置、计算机设备和存储介质 | |
CN113760927A (zh) | 数据处理方法、装置、电子设备和计算机可读介质 | |
CN113296968A (zh) | 地址列表更新方法、装置、介质及电子设备 | |
CN114338692B (zh) | 一种基于分片集群扩容的数据平衡方法与设备 | |
CN114666324B (zh) | 监控视频的下载方法、服务器、客户端及可读存储介质 | |
CN113703866B (zh) | 配置中心信息同步方法及系统 | |
CN112118118B (zh) | 基于反熵算法的指令通知消息广播方法及装置 | |
CN111541733B (zh) | 在p2p网络中测试消息存储的方法、计算机可读存储介质和p2p网络 |
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 |