Citus在苏宁大规模应用:支撑业务10倍扩容
需积分: 12 71 浏览量
更新于2024-07-17
收藏 1.6MB PDF 举报
本次演讲是陈华军在2018年PostgreSQL中国技术大会上分享的关于Citus在苏宁大规模应用的案例。陈华军来自苏宁易购,他在演讲中探讨了如何应对苏宁某一业务的10倍扩容需求,以及在不同数据库方案之间做出选择的过程,最终选择了Citus作为解决方案。
在苏宁的业务挑战中,面临的主要问题是性能需求高、负载类型多样,包括Spark任务、分析平台、明细表、报表和维表等。业务系统需要处理大量的明细更新,平均达到5万条/秒,且90%为UPDATE操作,这对原有基于DB2的数据库系统造成了巨大的压力,尤其是在大促期间,CPU利用率高达80%以上,无法有效应对。
在分布式数据库的选型过程中,考虑了Greenplum、postgres_fdw+pg_pathman以及PG-XL。Greenplum虽然SQL兼容性好,但更新速度慢,并发处理能力低,不适合苏宁的业务需求。postgres_fdw+pg_pathman虽然SQL兼容性好,但不支持并行查询和聚合下推,且分片表管理复杂。PG-XL则因GTM可能对性能的影响、社区活跃度低、版本更新慢等因素未进行深入评估。最后,Citus因其作为PostgreSQL的扩展,分片表管理简便、有较多成功案例,尽管存在部分SQL不支持和不支持全局一致性读的问题,但总体上与苏宁的业务场景匹配度较高。
基于Citus的技术方案,苏宁构建了一个由协调器和多个工作节点组成的分布式架构。分析平台通过Spark作业处理明细表的更新和插入。查询时,首先确定记录所在的分片位置,然后通过批量操作进行更新。报表作为本地表以提高查询速度,回避了Citus对某些SQL操作的限制。同时,为了解决维表同步问题,采取了每个工作节点都存储维表的副本,并通过触发器保持与参考维表的一致性。
通过这样的架构,Citus帮助苏宁解决了明细表更新性能问题,提升了查询效率,有效支撑了业务的10倍扩容需求,展示了其在大数据环境下的高性能和灵活性。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2022-04-15 上传
2022-07-25 上传
2021-02-04 上传
2021-02-05 上传
2022-08-02 上传
2022-08-18 上传
qq_34106330
- 粉丝: 0
- 资源: 14
最新资源
- Employee_Tracker
- 8-coming-soon
- raffaello:将照片发送到您当地的照片零售商-开源
- todoredux:使用React,Redux和Scss的todo应用程序
- crud_app:一个在React中编辑用户记录的CRUD应用程序
- PV-Battery:该项目的目标是为弗拉芒语参考家庭设计光伏和电池系统,其中要考虑由电费以及屋顶类型和方向决定的不同情况。 光伏和电池系统的设计涉及输入数据的使用,组件的选择,功率流的计算等,以从财务角度提供针对具体案例的最佳解决方案。 当然,设计还应考虑相关的实践,操作和法规方面
- BayesianEstimatorSelfing:一种用于估计自我受精率和其他交配系统参数的贝叶斯方法
- ruah44.github.io:得益于https,结构清晰
- torch-scatter和torch-sparse用于处理图形数据和稀疏张量·「下載地址」
- accessibility:媒体可访问性的提示,资源和提示的集合
- react-todolistt:在线React Editor和IDE:编译,运行和托管React应用
- Practise_Makes_Perfect
- a-stream:用于管理异步事件的库
- kb:知识库说明
- 愤怒的小鸟java程序源码-BallBattle:小鱼成长游戏
- fast bev修改版最终板端测试结果,由之前的9提升至25FPS