巨杉数据库如何主从分离呢???
复制组中如果包含多个副本。则写操作必须由主节点执行。读操作可以由任意节点执行。
读操作默认选择非主节点。可以通过db.setSessionAttr()修改。
此方法可以修改本连接的读操作优先顺序。
具体方法在sdb shell中执行help('setSessionAttr')。
其他驱动见相关接口。
读写操作需不需要自己判断是主从节点,还是数据库就给我们处理好了?
mysql的主从分离还需要自己去判断读写
sdb自己会处理。对外几乎是透明的。
这种主从是及时的吗?比如我在主中间写入了一个数据,然后在从库能立即读到吗?我记得论坛里好像有人讨论过这个问题,还比较复杂呢,不过忘了在哪里讨论了。
sdb是最终一致的,主的写不会“立即”在备上生效。
这里有两个办法解决,一个是建表的时候指定ReplSize,选择写操作同步多少个备节点才返回。比如三副本情况下ReplSize设为3,这样每个操作都会写满三份才返回。缺点是写性能会下降。
还有一个是读的将session的属性设置成优先读主,这样所有读都会优先读主节点。缺点是这里仅仅是“优先”读主,当某些场景下主不可读的时候会读备节点,但是这种切换对外是不感知的。
请问如何添加数据库节点。。我现在已经有一台机器已经布置了数据库,我现在想再增加一个节点,请问该怎么做呢?并且这个节点是读的。
这些对用户来说都是透明的吧!只需要设置一下就可以是吧!!
是加一个新的组还是在当前组加一个副本。操作方式和加第一个节点是一样的,都是用createXX命令。