首先,巨杉的副本是用来实现数据冗余的,从而提供高可用。相同的一份数据同时存储在多个副本中(一般为3副本,一主两从)。副本与上层的计算实例(Mysql实例,SPARKSQL实例)没有必然联系。
其次,无论是mysql,pgsql,sparksql实例在巨杉数据库的架构中只是计算引擎,其后端都是使用的相同的存储。这些计算引擎可以看做是一个sql的解析器。负责把sql语句转换成SDB能“读懂”的语言。
最后,所有计算层实例的写入过程都是一样的,会把数据先写入数据主节点上的副本,然后由主节点同步至从节点的副本。
而读的时候就有两种模式(通过数据库配置实现),①从主节上的副本读取数据 ②从节点读取数据
一般来说,OLTP系统(使用Mysql或PGSQL实例)必须从主节点获取数据,从而始终保持数据的一致性。
OLAP系统(使用SPARKSQL实例)可以从从节点读取数据,这样不会影像主节点上的数据写入操作。实现读写分离。