Tair数据迁移三步走

简介: image.png迁移的三个阶段在多机房数据迁移中,整个过程分为三个阶段:历史数据迁移阶段、redolog迁移阶段、实时复制阶段。1 历史数据迁移历史数据的迁移使用一个队列完成,这个队列由多个线程消费。
img_9d33a5722e4ff9e256dedd5202479224.png
image.png

迁移的三个阶段

在多机房数据迁移中,整个过程分为三个阶段:历史数据迁移阶段、redolog迁移阶段、实时复制阶段。

1 历史数据迁移

历史数据的迁移使用一个队列完成,这个队列由多个线程消费。迁移模块保存一个本dataserver的主桶有序序列,存储引擎顺序按桶扫描所有数据(对ldb引擎来讲,是扫描memtable、immutable memtable和所有的SSTable),并将扫描到的数据放到队列里。主线程会同步等待每个桶的数据同步完成,然后在从机房上打上标签,每次同步前都会判断这个标签,避免重启后历史数据重迁。

2 redolog迁移

由于在历史数据同步时,client又会有新的写入,新写入的key可能已经被扫描过,所以如果不记录这些操作,这部分数据可能会被丢失。

对历史数据迁移来讲,桶有三种状态:已迁移、正在迁移、未迁移

redolog只记录“正在迁移”的桶的新写入请求。对于已迁移的桶的新写入请求,把它放到实时迁移队列,对于未迁移的桶的新写入请求,不做特殊处理,因为等到迁移这些桶时,数据已经落到ldb上。

img_e26221db34cb3a4113dca3bc64810ea1.png
image.png

当一个桶的ldb数据迁移完成时,立即开始迁移新产生的log。迁移log时,也可能会有新的写入,当剩余log很大时,新的写入会追加到log;当剩余log小于一定阈值后,会锁定log,新的写入会被阻塞,直到log迁移完毕后,再将被阻塞的请求放到实时复制队列里。
redolog的迁移使用多个队列,根据请求key的hash值放到不同的队列里,每个队列只有一个消费线程,这样来保证相同key的时序性。

3 实时复制

实时复制也使用多个队列,根据请求key的hash值放到不同的队列里,每个队列只有一个消费线程,来保证相同key的时序性。

如上所述,当一个桶的历史数据、redolog迁移完毕后,新的请求就会放到实时队列里。


个人介绍:

高广超:多年一线互联网研发与架构设计经验,擅长设计与落地高可用、高性能互联网架构。

本文首发在 高广超的简书博客 转载请注明!

img_7015b3c64a6b1e4a95d4739adf2bbaa0.png
image.png
目录
相关文章
|
存储 运维 NoSQL
阿里云内存数据库Tair新一代集群无感数据迁移
本文将阐述社区开源版本集群数据迁移的技术,阿里云Tair for Redis集群早期对社区迁移数据的增强改进以及演进到新一代基于Slot复制的无感数据迁移原理。
1085 0
|
2月前
|
NoSQL Cloud Native Linux
通过 RIOT 将 AWS ElastiCache 迁移到阿里云 Tair
通过 RIOT 将 AWS ElastiCache 迁移到阿里云 Tair
|
存储 弹性计算 缓存
轻松学习阿里云原生内存数据库Tair
云原生数据库指的是基于云架构的云数据库,是一种云原生数据基础设施;是一种完全利用公有云优势的数据库服务;其本身匹配云环境和分布式事务,一般提供计算存储分离和日志即数据能力,其核心是存储与计算分离。具有弹性伸缩能力、无服务器(Serverless)、高性能、高可扩展、一致性、容错、易于管理和多云支持等特性。云原生数据库(Cloud-NativeDatabase)概念源于国外,随之受到国内厂商的关注,适用于软件工程、计算机、云计算等领域。
轻松学习阿里云原生内存数据库Tair
|
弹性计算 NoSQL 算法
阿里云Redis与Tair压力测评
无意中发现阿里云开发社区的训练营活动,其中有一个7天玩转Redis、tair训练营计划,里面可以免费领取三个月的试用礼包,因为是参营任务,不领取都不行的那种,领取之后放着也是放着,不如跑跑数据看看Redis和Tair的性能有什么区别,简单的压力测试下,本次测试并不精确,也不具有太多参考意义,真的就是为了测试而测试。
282 0
|
Cloud Native NoSQL 数据库
《阿里云产品手册2022-2023 版》——云原生内存数据库 Tair
《阿里云产品手册2022-2023 版》——云原生内存数据库 Tair
145 0
|
缓存 NoSQL Cloud Native
喜报 | 阿里云「云原生内存数据库Tair」「数据库备份DBS」双双斩获“2022技术卓越奖”
日前,国内知名IT垂直媒体&技术社区IT168公布2022年“技术卓越奖”评选结果,经由行业CIO/CTO大咖、技术专家及IT媒体三方的联合严格评审,阿里云云原生内存数据库Tair和数据库备份DBS凭借出众的产品实力斩获“2022年度技术卓越奖”。
喜报 | 阿里云「云原生内存数据库Tair」「数据库备份DBS」双双斩获“2022技术卓越奖”
|
存储 弹性计算 缓存
全面剖析,阿里云原生内存数据库Tair训练营来袭!
7天时间带你全面剖析Tair,参营还有价值250元定制背包、价值150元睡眠套装、价值80元无线充电器等你来拿!
全面剖析,阿里云原生内存数据库Tair训练营来袭!
|
存储 NoSQL Redis
《阿里云Redis企业版Tair持久存储系列技术解读》电子版地址
阿里云Redis企业版Tair持久存储系列技术解读
151 0
《阿里云Redis企业版Tair持久存储系列技术解读》电子版地址
|
存储 NoSQL Redis
《阿里云Redis企业版Tair持久存储系列产品详解》电子版地址
阿里云Redis企业版Tair持久存储系列产品详解
125 0
《阿里云Redis企业版Tair持久存储系列产品详解》电子版地址
下一篇
DataWorks