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

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

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

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

原文发布于微信公众号 - 杨建荣的学习笔记(jianrong-notes)

原文发表时间:2015-06-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java架构沉思录

CDN为什么这么快

CDN全称:Content Delivery Network或Content Ddistribute Network,即内容分发网络。

44920
来自专栏开源项目

九张图读懂大型网站架构演化

最初始的网站架构 就像我们在自己电脑上搭建了一个论坛的网站,应用程序(例如Apache服务器)、数据库等都部署在我们自己的电脑上的。就可以正常运行了。 应用服务...

38290
来自专栏Rainbond开源「容器云平台」

云帮每周更新日志(2017.01.02~2017.01.15)

17740
来自专栏哲学驱动设计

Rafy 框架 - 插件级别的扩展点

本章说明如何使用额外的插件(如客户化插件)对另一插件(如产品插件)进行扩展。 使用场景 在 产品线工程 中,项目的研发分为领域工程和应用工程。这个过程中会需要对...

21270
来自专栏IT技术精选文摘

分布式系统关键技术之全栈监控

容量管理 提供一个全局的系统运行时数据展示,可以让其它工程师知道是否需要加机器或资源

17820
来自专栏携程技术中心

开源 | 携程Redis多数据中心解决方案-XPipe

作者简介 孟文超,携程技术中心框架研发部高级经理。2016年加入携程,目前主要负责Redis多数据中心项目XPipe。此前曾在大众点评工作,任基础架构部门通信团...

613100
来自专栏极客猴

Django学习之旅(一)

大家还在坚持自己新年指定的计划吗?我按部就班地继续自己的计划。我近来准备学习python web方面的知识,主要是从Django框架开始学起。这一系列的文章是我...

8520
来自专栏企鹅号快讯

周集:好用的工具和网站

上次提到的软件下载的页面已经写完了,接下来就是往页面中丰富内容,我会放一些自己用过的比较好用的软件工具,下载地址,有官方网站的我会放上官方网站的地址,没有的话,...

23290
来自专栏哲学驱动设计

Rafy 领域实体框架简介

按照最新的功能,更新了最新版的《Rafy 领域实体框架的介绍》,内容如下: 本文包含以下章节: 简介 特点 优势 简介 Rafy 领域实体框架是一个轻量级 OR...

21370
来自专栏杨建荣的学习笔记

运维系统重构的设计思路

最近要对已有的运维平台做重构工作,为什么要做重构,主要还是因为各种各样的原因,需要对已有的问题改进,修复历史遗留包袱。这个时间迟早都会来到,还不如自己自觉一点,...

16820

扫码关注云+社区

领取腾讯云代金券