System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 用于控制数据库集群中的节点的数据管理设备和方法技术_技高网

用于控制数据库集群中的节点的数据管理设备和方法技术

技术编号:42126597 阅读:4 留言:0更新日期:2024-07-25 00:42
一种在数据库集群(416)中进行数据管理的方法,包括:(i)在被指定为主节点(410B)的节点(410A)的重写器(402A)中,响应于从客户端设备(408A)或另一节点(410C‑N)接收到数据定义语言DDL命令:(a)为DDL命令分配顺序命令ID;(b)将DDL命令复制到数据库集群(416)中的每个其他节点;以及(c)将DDL命令发送到数据库引擎(404B);(ii)在未被指定为主节点(410B)的节点(410A)的重写器(402A)中:(a)响应于从客户端设备(408A)接收到DDL命令,将DDL命令传输到被指定为主节点(410B)的节点;以及(b)响应于从主节点(410B)接收到DDL命令,将DDL命令发送到数据库引擎(404A)。

【技术实现步骤摘要】
【国外来华专利技术】

本公开内容涉及一种用于控制数据库集群中的节点的数据管理设备,更具体地,本公开内容涉及一种在数据库集群中进行数据管理的方法。


技术介绍

1、结构化查询语言(structured query language,sql)是数据库使用的一种语言。sql用于在数据库中存储、操作和检索用户数据。sql包括四组命令。这四组命令包括数据定义语言(data definition language,ddl)、数据查询语言(data query language,dql)、数据操作语言(data manipulation language,dml)和数据控制语言(data controllanguage,dcl)。ddl包括create(创建)、drop(删除)、alter(更改)、truncate(截断)、comment(注释)和rename(重命名)命令。dql包括select(选择)命令。dml包括insert(插入)、update(更新)和delete(删除)命令。dcl包括grant(授权)和revoke(撤销)命令。当用户数据以表的形式组织时,需要元数据(metadata,md)来管理用户数据的访问和定义。每次访问用户数据都需要访问md。md保存有关现有表、事务、检查点、索引等的信息,并由ddl命令操作。在高层级上,需要在数据库集群中同步md。

2、数据库集群分为三组:(i)通过诸如oracle rac的设计实现的集群;(ii)诸如amazon aurora、microsoft socrates等的云数据库;以及(iii)最初设计为单个节点的数据库,但是存在将它们制成集群数据库的方案。对于前两组,md管理和访问是设计的一部分,并嵌入到执行流中。诸如mysql的数据库被设计为单个整体过程,其中md在随机存取存储器(random access memory,ram)内部和本地维护。md的持久过程也是在内部完成的,而不暴露。在将如这些的数据库制成集群时,问题在于如何在节点之间协调和同步md,同时保持节点之间的并发性、一致性和持久性。

3、一种称为ndb的现有方法是使用innodb的mysql的同步多主机复制插件。该插件构建在三个层上。第一层是准备写集并检查它们是否可以应用的认证层;第二层是管理复制协议并提供总排序能力的复制层,以及第三层是实现允许其他系统通过公共后端架构进行连接的插件架构的组通信框架。当启动事务时,会涉及该节点本地的数据库资源。在提交时,事务的操作作为写集的一部分进行广播。由于所有节点具有相同的状态,因此写集要么在所有节点上成功,要么在所有节点上失败。当在集群层级发生中止时,集群会给出死锁错误。当客户端发出commit(提交)命令时,但是在实际提交发生之前,事务对数据库做出的所有更改和已更改行的主键都将收集到写集中。然后,数据库将该写集发送到所有其他节点。每个节点使用主键在写集上运行确定性认证测试(包括发起节点)。在认证测试之后,确定该节点是否可以应用写集。

4、每个节点具有其完整的数据副本,因此整个数据集的副本在所有节点上都可用。每个节点通过应用基于仲裁的协议来保存整个数据库。每个节点具有其本地存储装置和缓冲区。复制是基于认证的复制,其由一系列操作而不是数据块组成。md同步依赖于复制和提交机制。因此,同步多主机复制插件不能与共享存储引擎一起使用。其需要在每个节点中都有数据库的完整副本。在高负载下,提交阶段会成为瓶颈。提交非常慢。长事务更有可能回滚或导致性能急剧下降。基于认证的复制只能由事务性存储引擎支持,因为它需要回滚机制。因此,只支持innodb。为了使用插件,许多db功能都受到限制,例如表必须有主键,不支持查询缓存,仅支持行层级锁定等。

5、因此,需要解决在管理数据集群中的数据的已知技能或技术方面的上述技术缺陷。


技术实现思路

1、本公开内容的目的在于提供一种用于控制数据库集群中的节点同时避免现有技术方法的一个或更多个缺点的数据管理设备和方法。

2、该目的通过独立权利要求的特征来实现。此外,实现方式形式根据从属权利要求、说明书和附图是明显的。

3、本公开内容提供了一种在包括多个节点的数据库集群中进行数据管理的数据管理设备和方法。

4、根据第一方面,提供了一种用于控制数据库集群中的节点的数据管理设备。数据库集群包括一个或更多个节点。数据管理设备包括重写器和数据库引擎。如果节点被指定为主节点,则响应于从客户端设备或另一节点接收到数据定义语言ddl(data definitionlanguage)命令,重写器被配置成:(i)为ddl命令分配顺序命令id;(ii)将ddl命令复制到数据库集群中的每个其他节点;以及(iii)将ddl命令发送到数据库引擎。如果节点未被指定为主节点,则重写器被配置成:(i)响应于从客户端设备接收到ddl命令,将ddl命令传输到被指定为主节点的节点;以及(ii)响应于从主节点接收到ddl命令,将ddl命令发送到数据库引擎。数据库引擎被配置成基于顺序命令id的顺序执行从重写器接收到的ddl命令,并更新节点的元数据记录。

5、数据管理设备是唯一的,因为它不需要更改现有db架构。数据管理设备在不引入dml查询的额外性能下降的情况下执行这些操作。数据管理设备保存本地元数据注册表副本。数据管理设备可以在对db产生零代码更改的情况下嵌入,所述db暴露插件api并且对于底层存储引擎是不可知的。在md同步方面,数据管理设备提供了一种用于创建单个db服务器集群的通用方案。每个节点保存相同的md,从而加快恢复,因为可以从远程节点存储器进行恢复。数据管理设备使得能够防止多个失败,因为许多副本是完全同步的。除了md同步之外,数据管理设备还与其他机制、sql语句并发控制和错误处理一起保持序列化,而无需进行额外更改。由于在数据管理设备中实现了共享存储引擎,因此任何独立的数据库都可以成为集群。

6、可选地,数据管理设备还包括存储引擎se(storage engine)驱动程序,其与数据库集群的se集群连接。数据库引擎被配置成使用se驱动程序来执行ddl命令。如果节点未被指定为主节点,则se驱动程序被配置成向主节点的se驱动程序发送api请求。如果节点被指定为主节点,则se驱动程序被配置成在从每个其他节点接收到api请求之后向se集群发送ddl命令以供执行。

7、可选地,ddl命令包括多个步骤,并且存储引擎驱动程序被配置成针对每个步骤发送api请求。

8、可选地,se驱动程序还被配置成:(i)如果节点被指定为主节点,则将执行结果提供给db引擎以更新元数据,并将执行结果分发给每个其他节点的se驱动程序;以及(ii)如果节点未被指定为主节点,则响应于接收到执行结果,将执行结果提供给db引擎以更新元数据。

9、可选地,数据库引擎还被配置成在ddl命令的执行完成时通知重写器。(i)如果节点未被指定为主节点,则重写器被配置成向主节点的重写器发送确认;以及(ii)如果节点被指定为主节点,本文档来自技高网...

【技术保护点】

1.一种用于控制包括多个节点(410A-N)的数据库集群(416)中的节点的数据管理设备(400),包括:

2.根据权利要求1所述的数据管理设备(400),还包括:存储引擎SE驱动程序(406A-N),其与所述数据库集群(416)的存储引擎SE集群(414)连接,其中所述数据库引擎(404A-N)被配置成使用SE驱动程序(406A-N)来执行所述DDL命令;

3.根据权利要求2所述的数据管理设备(400),其中,所述DDL命令包括多个步骤,并且所述存储引擎驱动程序(406A-N)被配置成针对每个步骤发送API请求。

4.根据权利要求2或3所述的数据管理设备(400),其中,所述SE驱动程序(406A-N)还被配置成:

5.根据任一前述权利要求所述的数据管理设备(400),其中,所述数据库引擎(404A-N)还被配置成在所述DDL命令的执行完成时通知所述重写器(402A-N);

6.一种数据库集群(416),包括根据任一前述权利要求所述的数据管理设备(400)。

7.一种在包括多个节点(410A-N)的数据库集群(416)中进行数据管理的方法,包括:

8.根据权利要求7所述的方法,其中,执行所述DDL命令包括使用存储引擎SE驱动程序(406A-N),

9.根据权利要求8所述的方法,其中,所述DDL命令包括多个步骤,并且发送所述API请求包括针对每个步骤发送API请求。

10.根据权利要求8或9所述的方法,还包括:

11.根据权利要求7至10中任一项所述的方法,还包括:由所述数据库引擎(404A-N)在所述DDL命令的执行完成时通知所述重写器(402A-N);

12.一种计算机可读介质,所述计算机可读介质包括指令,所述指令在由处理器执行时,使所述处理器执行根据权利要求7至11中任一项所述的方法。

...

【技术特征摘要】
【国外来华专利技术】

1.一种用于控制包括多个节点(410a-n)的数据库集群(416)中的节点的数据管理设备(400),包括:

2.根据权利要求1所述的数据管理设备(400),还包括:存储引擎se驱动程序(406a-n),其与所述数据库集群(416)的存储引擎se集群(414)连接,其中所述数据库引擎(404a-n)被配置成使用se驱动程序(406a-n)来执行所述ddl命令;

3.根据权利要求2所述的数据管理设备(400),其中,所述ddl命令包括多个步骤,并且所述存储引擎驱动程序(406a-n)被配置成针对每个步骤发送api请求。

4.根据权利要求2或3所述的数据管理设备(400),其中,所述se驱动程序(406a-n)还被配置成:

5.根据任一前述权利要求所述的数据管理设备(400),其中,所述数据库引擎(404a-n)还被配置成在所述ddl命令的执行完成时通知所述重写器(402...

【专利技术属性】
技术研发人员:利奥尔·齐尔帕
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1