Sequoiadb系统架构简介
Sequoiadb是一个分布式数据库,采用的是分布式架构,下图提供了对Sequoiadb系统架构的统一认识。
在客户机端(或应用程序端),本地或/和远程应用程序都与SequoiaDB客户机链接。本地与远程客户机使用TCP/IP协议与协调节点进行通讯。
协调节点不保存任何用户数据,仅作为请求分发节点将用户请求分发至相应的数据节点。并且它会缓存部分编目节点信息,也会通过版本号来保证缓存信息的更新。
编目节点保存系统的元数据信息,协调节点通过与编目节点通讯从而了解数据在数据节点中的实际分布。一个或多个编目节点可组成复制组集群。其中每个编目节点都保存了整个系统的元数据信息,不过这里的所有元数据信息小的单位是类似于传统关系型数据库中的表,所以不会由于元数据信息过大而造成性能瓶颈。而由于系统中有一个编目节点组,这个组中有一个是Primary编目节点,所有的协调节点访问都会去访问它,而当它挂掉的时候,其他的编目节点中的一个会马上顶上,因为为系统提供了高可用的编目信息。而且可以通过db.list(7)查询编目信息。
数据节点保存用户的数据信息。一个或多个数据节点可以构成一个复制组(又称副本组)。数据复制组又叫做数据分片(Shard)。分片中每个数据节点都保存了相同的数据;分片中的数据节点之间采用终一致性来同步数据,不同的分片中保存的数据无重复。当分片中存在多个数据节点时,节点间数据进行异步复制。分片中可以存在多一个主节点与若干从节点。其中主节点可以进行读写操作,从节点进行只读操作。当主节点离线后会在从节点中自动选出新的主节点处理写请求。当离线节点恢复后,或新的节点加入分片,都会自行同步,保障数据在同步完成时与主节点保持一致。
相关文章