SequoiaDB巨杉数据库_SequoiaDB
SequoiaDB巨杉数据库_下载

文档

安装

基本操作

数据模型

系统架构

数据库管理

连接器

驱动

参考手册

版本信息

帮助

  • 内容
  • 评论
  • 修订记录

读写分离

写请求处理

所有写请求都只会发往主节点,如果没有主节点则当前复制组不可处理写请求。

读请求处理

读请求会按照会话(连接)随机选择组内任意一个节点(对外透明),或按照当前会话(连接)配置的优先实例策略选取相应复制组的数据节点。在一次会话中如果上一次查询(包括 query 和 fetch)返回成功,则下一次查询不会重选节点;如果上一次查询发生失败,则下一次查询将重选节点。如果没有可用节点则返回失败。一次查询中不会重选节点。

最终一致性策略

为了提升数据的可靠性和实现数据的读写分离,SequoiaDB中,对于复制组间的数据采用“最终一致性”策略,在读写分离时读取的数据某一个时期内可能不是最新的,但最终是一致的。

名词解释

W:副本写入个数

R:副本读取个数

N:副本个数

在 SequoiaDB 中,设置 R 的值为1,且不可配置。

默认情况下,复制组中的主节点在处理完一个写请求后会立即返回,即 W =1。数据同步会在后台异步完成(同步日志并达到最终一致。此时外部的读请求获得的数据可能不是最新的。在对数据一致性要求不高的场景中,这种方式可以提供最优的写入性能。

当我们创建集合时,可以通过ReplSize 属性指定集合的 W 值。

  • 默认情况下 W = 1。
  • 当 ReplSize 等于0时,W 的个数会根据当前复制组的 N变化而变化。即,如果开始组内有三个节点,则 W 等于3。当新增加一个入节点时,W 会自动变为4。
  • 当手动指定 W 的个数时,不能超出当前复制组内节点个数。

增大 W 可以有效提高数据的一致性和可靠性。当 W = N并且写请求处理成功后,后续读到的数据一定是当前组内最新的。但是这样会降低复制组的写入性能。值得注意的是,虽然我们可以将W 设为 N,但这并不代表 SequoiaDB中的数据拥有强一致性。当某个副本写入失败(如磁盘满)时,复制组内可能存在多个版本的数据。此时既可能读到新的数据,也可能读到旧的数据。当失败副本恢复正常后,会继续从主节点上同步最新的数据并达到最终一致。

请登陆后再发表评论
最新评论
更新日志
  • 2016-10-11

回到顶部
公司简介
广州巨杉软件开发有限公司(SequoiaDB巨杉数据库),专注新一代大数据基础架构研发,是国内领先的新一代分布式数据库厂商。公司获评硅谷最具影响力创新商业媒体《红鲱鱼》评选的“全球创新企业100强”,并连续两年入选美国知名科技媒体《快公司》评选的“中国50大创新公司”榜单。目前已拥有客户包括多家世界500强企业以及著名IT互联网公司。
官方微信

官方微信

SequoiaDB

商务与技术支持

sales_support@sequoiadb.com

联系邮箱

contact@sequoiadb.com

400-8038-339

粤ICP备16118040号     广州巨杉软件开发有限公司(巨杉数据库) 版权所有