知方号

知方号

PostgreSQL/lightdb通用分布式数据库架构<分布式数据库节点数性能>

PostgreSQL/lightdb通用分布式数据库架构

注:如果能够接受使用mysql-proxy,sharding-jdbc/sphere,mycat等分库分表方案,那么基于citus的分布式postgresql一定是更好的方案,更稳定、强大的数据库,更稳定的半内核原生实现,不二的选择。为什么需要分布式数据库

有很多原因数据库需要扩展性。1、请求需要访问的数据量过大(单纯的数据量大不是理由,例如从不访问,归档即可);2、服务器CPU、内存、网络、IO到了瓶颈,响应时间大大下降;3、MPP中,集中式数据库在设计时通常为了开发人员使用更加顺畅和丝滑,尽可能的让数据库设计和SQL非常简单,比如不需要指定某些表实际上是存在主外键关系,从而导致并行执行效果打折;或者并行执行在一开始并不包含,后面逐渐增强,导致并行执行有天然的缺陷,分区亦如此。这三通常是根本原因。

当下有三类分布式数据库实现方式:1、一定程度上可以认为基于中间件的分布式数据库,如相对通用的mycat/shardingsphere/presto/citus;2、带全局事务管理节点的原生分布式数据库,如postgresql-xl、postgresql-xc、tidb;3、不带全局事务管理节点的分布式数据库,如greenplum、CockroachDB。从目前的来看,xc基本已经输给了citus;xl输给了gp。原生分布式数据库如CockroachDB等性能和时延上明显不如基于中间件架构的citus。要想掌握分布式数据库的实现,这三种实现逻辑都需要理解,他们代表了三种实现,除了第二种外,1、3都在商业上取得了成功,2目前来看并不成功。

这三种模式在内核的可优化空间上也有较大差异:原生按照分布式数据库的架构通常具有最大优化空间、SQL无限制,但是受限于硬件、在ms甚至更低级别的时延上表现较差;中间件架构受限于侵入能力,在事务能力上比较弱、在物理优化策略上比较弱、SQL限制多、尤其是管理特性、系统函数和序列等、唯一约束、分析函数等限制

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。

上一篇 没有了

下一篇没有了