您当前的位置:首页 > 互联网百科 > 大数据

数倍数据平滑扩容迁移方案

时间:2023-11-14 13:36:35  来源:微信公众号  作者:二进制跳动
两个相互同步的主库使用相同的虚拟IP,当主库挂掉的时候,虚拟IP自动漂移到另外一台主库,整个过程用户是无感知的。使用双主同步+keepalived+虚ip的方式进行。

首先我们先来看下数据库的高可用一般都是怎么实现的。我们还是借用图来说明。真想手绘。

数倍数据平滑扩容迁移方案图片

如上图所示,两个相互同步的主库使用相同的虚拟IP,当主库挂掉的时候,虚拟IP自动漂移到另外一台主库,整个过程用户是无感知的。使用双主同步+keepalived+虚ip的方式进行。

 

如果遇到数据暴增,我们怎么办?

我们可以通过水平切分。

数倍数据平滑扩容迁移方案图片

上图所示,用户库user分布在两台服务器上,ip0和ip1。通过用户取模得方式,模2余0到ip0的机器上,反之到ip1的机器上,同时ip0和ip1并行做了双主同步,这样做到了水平切分和高可用。

 

新的问题来了,分成n库以后,随着数据量的不断增加,要增加到2*n库的时候,数据如何扩容,数据如何平滑迁移,如何对外提供服务,保证数据的可用性?(一连串的灵魂拷问)

1.停服升级(暂时跳过)2.假设上面每个库ip0和ip1每个库都有1亿数据,如何平滑扩容,增加实例数,降低单库数据量呢?

第一步:

数倍数据平滑扩容迁移方案图片

这样能保证原来的数据不变,还可以路由到原来的机器上。

 

第二步:

数倍数据平滑扩容迁移方案图片

 

这里需要服务层重新reload,高级一点可以通过配置中心向服务层发信息,重新读取配置文件,重新初始化连接数据库。完成之后,数据库实例从2变成4个,过程在秒级完成。

整个过程可以逐步重启,对服务的正确性和可用性完全没有影响:

(a)即使%2寻库和%4寻库同时存在,也不影响数据的正确性,因为此时仍然是双主数据同步的;

(b)即使%4=0与%4=2的寻库落到同一个数据库实例上,也不影响数据的正确性,因为此时仍然是双主数据同步的;

 

上面对数据库实例进行了扩展,但是数据的数量并没有降低,我们还需要再做一步。

数倍数据平滑扩容迁移方案图片

 

 

有这些一些收尾工作:

(a)把双虚拟ip修改回单虚拟ip;

(b)解除旧的双主同步,让成对库的数据不再同步增加;

(c)增加新的双主同步,保证高可用;

(d)删除掉冗余数据,例如:ip0里%4=2的数据全部删除,只为%4=0的数据提供服务;

这一步,数据库单实例数据量减半了。

 

 

InnoDB引擎为什么高效?

技术上怎么控制并发操作?

-锁

-数据多版本

 

-简单暴力,任务执行过程的本质是串行的

-出现了共享锁和排它锁

 --共享锁(S锁),读取数据加S锁

 --排他锁(X锁) 修改时加X锁

共享锁和排他锁的区别?

-共享锁,读可以并行

-排他锁跟任何锁互斥,读和写都不可以并行

总结下:一但写数据没有完成,数据是不能被其他任务读取的,这对并发有着比较大的影响。

有没有可能,进一步提高并发呢?

 

数据多版本

数倍数据平滑扩容迁移方案图片

-核心原理

 (1)写任务发生的时候,将数据克隆一份,以版本号区分

 (2)写任务操作克隆的数据,直至提交

 (3)读取数据还是旧版本上,不阻塞

所以并发提高演进的思路

1.普通锁,串行执行

2.读写锁,读读可以并发

3.数据多版本,读写都可以并发

 

对应到innodb,是怎么处理的呢?

先了解三个概念:redo、undo、回滚段

redo:数据库事务提交之后,必须将更新后的数据刷新到硬盘上,保证ACID原则。这里是随机读写的,如果来个事务就写一次,相当影响吞吐量。

优化:将修改的行写到redo日志中,再定期刷新到硬盘中。这里的写日志是顺序写,可以提高性能。如果有一刻数据奔溃,可以读取redo日志恢复数据。

undo:事务未提交时,可以将修改前的数据存在undo日志里,当崩溃或者事务回滚时,利用undo日志撤销修改。

 

举例说明:

-insert操作,undo日志存储的是PK(rowid),回滚时直接删除

-update/delete操作,undo日志记录旧数据的row,回滚时直接恢复。

回滚段:存储undo日志的地方,就是回滚段。

 

Innodb是基于版本并发控制的存储引擎。

MVCC就是通过“读取旧版本数据”来降低并发事务的锁冲突,提高任务的并发度。

innodb为何能做到这么高的并发?

回滚段的数据,也就是历史数据的快照,这些数不会被改变,select操作可以为所欲为的并发读取

 

总结

(1)常见并发控制保证数据一致性的方法有锁,数据多版本;

(2)普通锁串行,读写锁读读并行,数据多版本读写并行;

(3)redo日志保证已提交事务的ACID特性,设计思路是,通过顺序写替代随机写,提高并发;

(4)undo日志用来回滚未提交的事务,它存储在回滚段里;

(5)InnoDB是基于MVCC的存储引擎,它利用了存储在回滚段里的undo日志,即数据的旧版本,提高并发;

(6)InnoDB之所以并发高,快照读不加锁;

(7)InnoDB所有普通select都是快照读;



Tags:数据   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
为训练AI,OpenAI等科技巨头花式淘数据
[环球时报特约记者 甄翔]《纽约时报》6日披露了科技公司训练人工智能的秘密——利用语音识别工具转录视频网站YouTube上的视频,形成对话文本数据,供其最新的AI学习...【详细内容】
2024-04-08  Search: 数据  点击:(6)  评论:(0)  加入收藏
国家数据局首次召开全国性工作会议 释放哪些信号?
数据工作不仅事关经济社会发展、人们生产生活,也关乎国家发展与安全大局,其重要性不言而喻。我国是数据生产和应用大国,也是世界上首个提出数据要素理论的国家。正因为此,全国数...【详细内容】
2024-04-07  Search: 数据  点击:(3)  评论:(0)  加入收藏
向量数据库落地实践
本文基于京东内部向量数据库vearch进行实践。Vearch 是对大规模深度学习向量进行高性能相似搜索的弹性分布式系统。详见: https://github.com/vearch/zh_docs/blob/v3.3.X/do...【详细内容】
2024-04-03  Search: 数据  点击:(4)  评论:(0)  加入收藏
谷歌为了结集体诉讼,同意删除 Chrome 无痕模式下收集的用户数据
IT之家 4 月 2 日消息,根据华尔街日报报道,谷歌为了结追溯到 2020 年的集体诉讼案,近日同意删除通过 Chrome 浏览器“无痕(Incognito)模式”下收集的用户数据。这起诉讼原告认为,...【详细内容】
2024-04-02  Search: 数据  点击:(7)  评论:(0)  加入收藏
数据可视化在网络安全中的关键作用
在当今数字化时代,网络安全已成为各大企业乃至国家安全的重要组成部分。随着网络攻击的日益复杂和隐蔽,传统的网络安全防护措施已难以满足需求,急需新型的解决方案以增强网络防...【详细内容】
2024-03-29  Search: 数据  点击:(19)  评论:(0)  加入收藏
如何正确选择NoSQL数据库
译者 | 陈峻审校 | 重楼Allied Market Research最近发布的一份报告指出,业界对于NoSQL数据库的需求正在持续上升。2022年,全球NoSQL市场的销售额已达73亿美元,预计到2032年将达...【详细内容】
2024-03-28  Search: 数据  点击:(13)  评论:(0)  加入收藏
京东小程序数据中心架构设计与最佳实践
一、京东小程序是什么京东小程序平台能够提供开放、安全的产品,成为品牌开发者链接京东内部核心产品的桥梁,致力于服务每一个信任我们的外部开发者,为不同开发能力的品牌商家提...【详细内容】
2024-03-27  Search: 数据  点击:(9)  评论:(0)  加入收藏
为什么数据库连接池不采用 IO 多路复用?
这是一个非常好的问题。IO多路复用被视为是非常好的性能助力器。但是一般我们在使用DB时,还是经常性采用c3p0,tomcat connection pool等技术来与DB连接,哪怕整个程序已经变成以...【详细内容】
2024-03-27  Search: 数据  点击:(12)  评论:(0)  加入收藏
Google搜索引擎索引的网页数量有多少?谷歌官方提供数据进行参考
Google搜索引擎索引的网页数量有多少?二十世纪九十年代,网页的索引数量成了一个各大搜索引擎相互对比的指标。小编记得2000年谷歌搜索引擎的首页搜索框上方,还标记着谷歌索引的...【详细内容】
2024-03-27  Search: 数据  点击:(12)  评论:(0)  加入收藏
八个常见的数据可视化错误以及如何避免它们
在当今以数据驱动为主导的世界里,清晰且具有洞察力的数据可视化至关重要。然而,在创建数据可视化时很容易犯错误,这可能导致对数据的错误解读。本文将探讨一些常见的糟糕数据可...【详细内容】
2024-03-26  Search: 数据  点击:(6)  评论:(0)  加入收藏
▌简易百科推荐
大数据杀熟何时告别“人人喊打却无可奈何”?
2月7日郑州飞往珠海的航班,不同手机、不同账号搜索该航班显示出不同价格。图源网络有网友近日分享在某平台的购票经历,引发社会广泛关注——用3个账号买同一航班同...【详细内容】
2024-01-30    中国青年网  Tags:大数据杀熟   点击:(32)  评论:(0)  加入收藏
简易百科:到底什么是大数据?
随着互联网的快速发展,大数据已经成为了当今社会最热门的话题之一。那么,到底什么是大数据呢?首先,我们需要明确大数据的定义。大数据是指数据量极大、类型繁多、处理难度高的数...【详细内容】
2024-01-30    简易百科  Tags:大数据   点击:(40)  评论:(0)  加入收藏
数据采集新篇章:AI与大模型的融合应用
开篇在AIGC(人工智能与通用计算)应用中,大型语言模型(LLM)占据着举足轻重的地位。这些模型,如GPT和BERT系列,通过处理和分析庞大的数据集,已经极大地推动了自然语言理解和生成的边界...【详细内容】
2024-01-17  崔皓  51CTO  Tags:数据采集   点击:(50)  评论:(0)  加入收藏
挑战 Spark 和 Flink?大数据技术栈的突围和战争
十年的轮回,正如大数据的发展一般,它既是一个轮回的结束,也是崭新的起点。大数据在过去的二十年中蓬勃发展,从无到有,崛起为最具爆炸性的技术领域之一,逐渐演变成为每个企业不可或...【详细内容】
2024-01-17  InfoQ    Tags:大数据   点击:(40)  评论:(0)  加入收藏
分布式存储系统在大数据处理中扮演着怎样的角色?
如果存储节点本身可以定制,则通常会让其支持部分计算能力,以利用数据的亲和性,将部分计算下推到相关的存储节点上。如果存储是云上的 S3 等对象存储,无法定制,则通常会将数据在计...【详细内容】
2023-12-19  木鸟杂记  微信公众号  Tags:大数据   点击:(48)  评论:(0)  加入收藏
大数据如何实时拯救生命:车联网的数据分析有助预防交通事故
译者 | 李睿审校 | 重楼车联网(IoV)是汽车行业与物联网相结合的产物。预计车联网数据规模将越来越大,尤其是当电动汽车成为汽车市场新的增长引擎。问题是:用户的数据平台准备...【详细内容】
2023-12-19    51CTO  Tags:大数据   点击:(41)  评论:(0)  加入收藏
利用生成对抗网络进行匿名化数据处理
在互联网时代,数据日益成为人们的生产资料。然而,在某些情况下,我们需要分享数据,但又需要保护个人隐私。这时,匿名化技术就显得尤为重要。本文将介绍利用生成对抗网络进行匿名化...【详细内容】
2023-12-18  技巧达人小影    Tags:数据处理   点击:(56)  评论:(0)  加入收藏
盘点那些常见的数据中心类型,你知道几个?
在数字化潮流的浪潮下,数据中心如同企业的神经系统,关系到业务的稳健运转。而在这个巨大的网络中,各种数据中心类型如雨后春笋般崭露头角。从企业级的个性至云数据中心的虚拟化...【详细内容】
2023-12-07  数据中心之家  微信公众号  Tags:数据中心   点击:(65)  评论:(0)  加入收藏
数据中心的七个关键特征
随着信息技术的不断演进,数据中心的可靠性、可扩展性、高效性、安全性、灵活性、管理性和可持续性成为业界探讨的焦点。下面让我们一同深入剖析这些关键特征,了解它们是如何影...【详细内容】
2023-12-06  数据中心之家  微信公众号  Tags:数据   点击:(63)  评论:(0)  加入收藏
什么是数据解析?将数据转化为更好的决策
什么是数据解析?数据解析是一门专注于从数据中获取洞察力的学科。它包含数据分析(data analysis)和管理的流程、工具和技术,包括数据的收集、组织和存储。数据解析的主要目的是...【详细内容】
2023-12-06  计算机世界    Tags:数据解析   点击:(62)  评论:(0)  加入收藏
站内最新
站内热门
站内头条