分布式图数据库 Nebula Graph 中的集群快照实践

  • 时间:
  • 浏览:1
  • 来源:uu快3官网pk10_uu快3官方邀请码_官网ios版

以下为另4个 小示例:

可能性 snapshot 的名称是由系统的 timestamp 自动生成,好多好多 暂且担心 snapshot 的重名大现象。可能性创建了暂且要的 snapshot,都能能 通过 drop snapshot 命令删除已创建的 snapshot。

以下为笔者创建 3 个 snapshot 的例子:

在创建过程中可能性会创建失败,当前版本不支持创建失败的垃圾回收的自动功能,后续将计划在 metaServer 中开发 cluster checker 的功能,将通过异步应用多多线程 检查集群具体情况,并自动回收 snapshot 创建失败的垃圾文件。

最后,附上 Nebula Graph GitHub 地址:https://github.com/vesoft-inc/nebula 可能性你在使用 Nebula Graph 过程中遇到任何大现象,欢迎 GitHub 联系亲戚让他们可能性加入微信交流群,请联系微信号:NebulaGraphbot 

亲戚让他们用 5.3 提及的 SHOW SNAPSHOTS 命令看下现在有的快照

当前版本可能性 snapshot 创建失败,时需通过 DROP SNAPSHOT 命令清除无效的 snapshot。

图数据库 Nebula Graph 在生产环境中将拥有庞大的数据量和高频率的业务处置,在实际的运行中将不可处置的趋于稳定人为的、硬件或业务处置错误的大现象,有时候 严重错误将原因集群无法正常运行或集群中的数据失效。当集群趋于稳定无法启动或数据失效的具体情况时,重新搭建集群并重新放进去数据都将是另4个 繁琐并耗时的工程。针对此大现象,Nebula Graph 提供了集群 snapshot 的创建功能。

CREATE SNAPSHOT  即对整个集群创建当前时间点的快照,snapshot 名称由 meta server 的 timestamp 组成

笔者删除了 5.1 成功创建的 snapshot SNAPSHOT_2019_12_04_10_54_36 ,并用SHOW SNAPSHOTS 命令查看现有的 snapshot。

SHOW SNAPSHOTS 可查看集群中所有的 snapshot,都能能 通过 SHOW SNAPSHOTS 命令查看其具体情况(VALID 或 INVALID)、名称、和创建 snapshot 时所有 storage Server 的 ip 地址。

语法:

DROP SNAPSHOT 即删除指定名称的 snapshot,都能能 通过 SHOW SNAPSHOTS 命令获取 snapshot 的名称,DROP SNAPSHOT 既都能能 删除有效的 snapshot,也都能能 删除创建失败的 snapshot。

Snapshot 功能时需预先提供集群在某个时间点 snapshot 的创建功能,以备趋于稳定灾难性大现象时用历史 snapshot 便捷地将集群恢复到另4个 可用具体情况。

Create snapshot  由 client api  或 console  触发, graph server  对 create snapshot  的 AST 进行解析,有时候通过 meta client  将创建请求发送到 meta server 。 meta server  接到请求后,首先会获取所有的 active host ,并创建 adminClient  所需的 request 。通过 adminClient  将创建请求发送到每个 StorageEngine ,StorageEngine 收到 create 请求后,会遍历指定 space 的全版 StorageEngine,并创建 checkpoint ,之后 对 StorageEngine 中的全版 partition  的 wal 做 hardlink。在创建 checkpoint 和 wal hardlink 时,可能性可能性提前向所有 leader partition 发送了 write blocking 请求,好多好多 此时数据库是只读具体情况的。

从上 SNAPSHOT_2019_12_04_10_54_36  可见 snapshot 名同 timestamp 有关。

语法:

当前版本不支持对指定的 space 做 snapshot,当执行 CREATE SNAPSHOT 后,将对集群中的所有 space 创建快照。

CREATE SNAPSHOT 语法:

本文主要会用到以下术语: