复制

OrientDB 支持 Multi Master replication. 这意味着在集群中所有节点都是Master,并且都可以完成对数据库的读取和写入.并能够像其他NoSQL那样水平拓展,并不会遇到传统关系型数据库的瓶颈问题.

复制只能工作在 分布式环境.

数据库分片

在分布式体系结构中,复制数据库必须拥有同样的名字.在一个集群中,当一个OrientDB服务器正在启动.它会传输当前节点下数据库目录(存放在 $ORIENTDB_HOME/databases 目录下)至所有节点.如果其他节点存在相同名字的数据库,则会自动设置复制。

image

NOTE: 在分布式体系结构中,要尽量避免数据库名字的冲突,否则,2个不同的数据库可以执行复制,并可能会导致损坏.

如果 数据库配置 设置了 "autoDeploy" : true,在加入一个新节点后,数据库会自动部署到集群中新增节点上.

image

服务器故障

假如一个节点挂掉了, 通过数据库配置删除该节点,除非设置了 "hotAlignment" : true. 在这种情况下,所有同步过来的消息都会暂存到一个分布式队列当中.

image

当挂掉的节点再次上线时, 它便开始了同步的阶段 (status=SYNCHRONIZING),轮询的向节点同步队列中的消息.

image

一旦同步完成,完成校准,节点变为在线状态 (status=ONLINE) 同时复制开始运行.

image

延伸阅读

Continue with: