金融企业应用分布式数据库全局强一致性与性能取舍,这方面问题如何考虑?

提供全局强一致性校验的分布式数据库,能够达到集中式数据库那样的强一致性需求,但是相应也会带来性能的损失,而有的业务系统为了确保性能,通过业务改造和数据库设计,弱化强一致性要求,即使全局最终一致性也能满足业务需求。那么,坚持开启全局强一致,还是关闭全局强一致,通过改造规...显示全部

提供全局强一致性校验的分布式数据库,能够达到集中式数据库那样的强一致性需求,但是相应也会带来性能的损失,而有的业务系统为了确保性能,通过业务改造和数据库设计,弱化强一致性要求,即使全局最终一致性也能满足业务需求。那么,坚持开启全局强一致,还是关闭全局强一致,通过改造规避影响?结合银行核心、信用卡、互联网金融系统等关键业务系统改造案例,介绍该方面的问题是如何考虑的?

收起
参与18

查看其它 3 个回答lulihuan1987的回答

lulihuan1987lulihuan1987课题专家组数据库管理员张家港行

从分布式数据库的角度看,全局强一致性开启后会由专门的组件负责全局事务的管理,在数据查询时也需要判断数据的提交状态,对于存在大量分布式事务两阶段提交场景的应用,会有一定的查询性能的下降,大概会下降10%左右。从分布式数据库的发展来看,全局强一致性是必要的功能,起码把开启和关闭的权限交由客户决定,通过提高全局事务管理组件的性能和高可用,可以缓解性能下降的问题,对于事务较小的交易,例如单事务的平均SQL数量在100以内的交易,开启强一致性查询带来的性能损耗是完全可以接受的,而对于单事务的平均SQL数量在300以上的交易,那么开启后带来的性能损耗客户是有一点感知的,一个交易应用和数据库进行300次以上的交互,其中网络、数据库的耗时加起来,交易耗时可能达到500ms以上。当然这个问题也可以通过将事务改造成小事务来解决问题,当然也会给应用的改造带来一定负担。现阶段的情况来看,建议业务迁移分布式数据库时原则上是开启全局强一致性,通过优化抵消开启的损耗。

银行 · 2022-07-20
浏览1030

回答者

lulihuan1987
数据库管理员张家港行
擅长领域: 数据库服务器分布式系统

lulihuan1987 最近回答过的问题

回答状态

  • 发布时间:2022-07-20
  • 关注会员:5 人
  • 回答浏览:1030
  • X社区推广