前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据刷新中的并行改进(r5笔记第72天)

数据刷新中的并行改进(r5笔记第72天)

作者头像
jeanron100
发布2018-03-16 11:01:10
7140
发布2018-03-16 11:01:10
举报
文章被收录于专栏:杨建荣的学习笔记

昨天按照计划进行了系统升级,多多少少还是碰到了一些问题。 有一个问题不算紧急,但是也在计划之中需要进行调优和改进。是关于数据的复制刷新的使用。为了更加清楚的描述问题,自己画了下面的一个简单的示意图来说明。 其实真实环境要远远比这个复杂,这是简单说明问题点到为止即可。 这是一个数据字典数据型数据,也算是静态数据,配置数据等的刷新示意图,数据的源头只有一个,数据都在active的一个schema上,其他几个类似的节点都在维护这样一套类似的结构,但是因为节点都是分布式的,所以都分散在不同的机器上,数据的刷新目前是采用物化视图来做的。远程的刷新是通过db link+物化视图来完成的。 对于下层应用来说,还是根据业务规则连接到不同的节点中。

大体的情况就是如此,在生产中进行数据刷新的时候,如果进行并行复制,其实对于主节点还是有很大的压力的。而且目前的刷新情况也是一个串行的方式。 比如我们存在表a,b,c 则在不同的节点中进行刷新的时候,是先刷新a,在各个节点一次刷新,然后刷新b,然后继续刷新c,依次类推。在最后的时候,只需要切换对应的快照schema即可。即上图中红色和蓝色的部分,最后把schema进行切换即可,对于应用来说是透明的,如果数据出现问题进行undo也是很轻松的事情。 所以在采用刷新的时候,也是考虑了主节点中的负载和压力,采用了串行的方式进行刷新,但是一方面保证了压力,但是刷新时间就是一个比较明显的问题了。时间会随着节点的增多而进行指数级增长。 在尽可能不改动逻辑,少改动逻辑的情况进行的调研情况,得知这种数据的刷新频率还是不高的,可能几周才会进行这样的一次刷新,而且在刷新的过程中,对于应用app1来说优先级是比较高的,app1中的刷新完成之后,会有一些业务的预处理,对于app2,app3的数据刷新速度就没有很严格的要求了。慢一些还是可以接受的。 所以的改进思路就是分成两部分来处理,两条腿走路。对于app1优先刷新,而且对于app1中的表进行并行切分。 比如里面有15张表,就可以分成多个并行刷新session来处理。一方面刷新的都是不同的表,不会有之前热点快的争用的情况,而且这个过程完成了就对后续的处理优先级就会大大降低。依赖性就大大降低了。

当然了这个过程还有很多的细节需要考虑,主要的一个思路就是对于近上千张静态数据表进行快速的刷新,有几个要点需要考虑。 一个就是并行切分的把握,因为数据字典表的数据量相对来说不算很大,总体来说分区表还是很少存在的,所以进行并行切分的时候可能直接根据segment的情况就能够得到一个大体的数据分布情况了。 优先刷新app1需要的节点之后,对于后续的节点可以还是保留原有的方式进行刷新即可。 看起来思路还是比较简单的,但是能够使得方案落地还是需要做不少的工作,后续对切分的细节进行分享。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2015-06-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 杨建荣的学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档