《苏宁citus架构演进之路-内核 + 分布式数据库(35页).pdf》由会员分享,可在线阅读,更多相关《苏宁citus架构演进之路-内核 + 分布式数据库(35页).pdf(35页珍藏版)》请在三个皮匠报告上搜索。
1、苏宁citus架构演进之路姓名:顾颀邮箱:公司:苏宁易购目录l Citus的架构演进l Citus扩容的方案演进l 痛点分享如今的Citus在苏宁支撑了哪些业务uTP业务物流订单的定价、结算业务数据库的性能监控数据uAP业务大数据分析平台金融,物流,商户等的BI分析业务缘起为了支撑某业务的10倍扩容u性能要求高u负载类型多样Spark任务分析平台明细表报表维表报表计算200+聚合/min业务系统1业务系统2抽取明细更新 5w/s(400+字段 2.5KB/row)90%UPDATE+10%INSERTn 扩容前的数据库(DB2)硬件:24C/256GB/4800GB SSD 平时:45%CPU
2、利用率 大促:80%+CPU利用率(不堪重负不堪重负!)DB2分布式数据库选型(2017年)方案方案优点优点缺点缺点结论结论Greenplum支持列存支持压缩SQL兼容好更新慢并发低不符合明细更新的性能要求postgres_fdw+pg_pathmanSQL兼容好不支持聚合下推(PG10以后支持)不支持并行查询分片表管理不便不符合明细表查询性能要求PG-XLSQL兼容好GTM对性能的影响?稳定性,维护成本?社区不活跃版本更新慢未深入评估citusJust a extension分片表管理方便成功案例较多部分SQL不支持不支持全局一致性读基本匹配业务场景基本匹配业务场景最初为了应对业务系统的复杂
3、负载需求,做了如下的一些比较,最终选择了citus初期的部署架构(含连接池)CoordinatorPostgreSQLPostgreSQLApp(普通)App(普通)Appworker1worker2Citus插件Citus插件PostgreSQLCitus插件pgbouncer(wk1)pgbouncer(wk2)系统表(元数据)说明pg_dist_nodeWorker node tablepg_dist_partitionPartition tablepg_dist_shardShard tablepg_dist_placementShard placement tablepg_dist_
4、colocationCo-location group table架构的变更史2017/51CN+4Worker(PG9.6+Citus6.1)1CN+4Worker(PG9.6+Citus7.1)升级1CN+8Worker+2只读CN(PG9.6+Citus7.1)扩容升级1CN+8Worker+2只读CN(PG10.2+Citus7.2)1CN+16Worker+4只读CN(PG10.2+Citus7.2)扩容2018/10(双11前)该系统上线以来成功实施了多次升级和扩容第一套系统已上线数十个系统约1500实例2018年上半年试点阶段开始普及痛点CoordinatorPostgreSQL
5、PostgreSQLApp(普通)App(普通)Appworker1worker2Citus插件Citus插件PostgreSQLCitus插件pgbouncer(wk1)pgbouncer(wk2)PostgreSQLworkerNCitus插件不断扩容出现单CN瓶颈Pgbouncer部署在CN上阻碍分片间通信(分片修复和分片迁移)多CN部署架构PostgreSQLPostgreSQLApp(普通)App(普通)App参考:https:/ node)扩展worker(MX node)PostgreSQLpgbouncerPostgreSQLpgbouncermetadatatb1Postgr
6、eSQLPostgreSQLworker3worker4pgbouncerpgbouncermetadatatb1metadatatb1tb1_1tb1_2tb1_3tb1_4 支持部分DML 应用通过JDBC多主机URL访问扩展worker jdbc:postgresql:/$扩展worker1,$扩展worker2,./$dbname?targetServerType=any&loadBalanceHosts=true&支持DDL&DMLPgbouncer在WK节点Citus插件Citus插件Citus插件Citus插件Citus版本升级到7.4追加了新的节点身份:扩展WK多CN架构的现状