上述讲到的水平扩展的分布式数据库架构,我们把数据分配多个分片,然后通过强大的SQL引擎来做相应的分发,并且做基层的下推,将数据下推到各个节点去做相应的数据运算,最后汇聚数据,来为用户提供可平滑扩展的分布式数据库架构。
在计算存储分离的分布式数据库架构。我们认为,改变用户的已有使用习惯是很难的,但是培养一个新习惯也许还可行。因此,在某些传统的商业数据库模式下,改变用户使用Oracle的模式会有相应的阻力。但是,对于传统的Oracle它还是一种Share的模式,所以我们布局了这种分布式数据库的架构,将计算跟存储分离,区别在于它是一种日志级的数据库。
我们在上层、在交换机的三个节点是纯计算节点,这些计算节点可以完全兼容MySQL或者Postgre的协议,然后数据的日志通过网络交换机下发到底层的DB节点,让底层的存储节点来感知日志,再把日志逐步的回放。
这种架构的优势是存储层面可以水平扩展,当用户拉起一个读取节点的时候,可以瞬间启动一个读取节点,不用做相应的数据重放。另一个优势是它不像Oracle模式整页刷新,也不依赖于IP交换机的模式,而是只在交换机层面去传输日志,所以基本上一个传统的万众交换机就能满足这种业务场景。因此,在整体的成本或性能上都是一种非常有性价比的技术架构。
除了技术架构的优势,再来分享一下腾讯云数据库在用户功能层面(产品化层面)的一些设计理念。我们认为一款优秀的数据库应该