当前位置: 首页 > news >正文

2023-04-27 polardbx-LSM-tree的Parallel Recovery性能优化

背景

数据库的Crash Recovery时长关系到数据库的可用性SLA、故障止损时间、升级效率等多个方面。本文描述了针对X-Engine数据库存储引擎的一种Crash Recovery优化手段,在典型场景下可以显著缩短数据库实例的故障恢复时间,提升用户使用感受。

当前面临的问题

X-Engine是阿里自研的基于LSM-tree架构的数据库存储引擎,对X-Engine的数据更新是将变更数据并行插入无锁内存表(MemTable),同时为了防止MemTable过大影响数据查找和数据恢复的效率,系统会不定期将MemTable转换成不可修改的内存表(ImmutableMemTables),并将ImmutableMemTables整体Flush落盘;对无锁内存表的持久化通过WAL机制保证。关于LSM-tree结构和X-Engine的数据分层存储机制,可以阅读文章:X-Engine 一条数据的漫游


X-Engine存储引擎的故障恢复需要读取所有WAL文件并重新生成所有ImmutableMemTables 和MemTables。当前X-Engine的Crash Recovery流程分为以下两步:

  1. X-Engine存储引擎元信息回放,恢复系统元信息数据到shutdown前状态

  2. wal文件回放,逐条读取record,进行crc校验后,恢复所有的ImmutableMemTables和MemTables到shutdown前状态


当前MySQL(XEngine)线上实例有宕机重启缓慢的现象,通过对相关现场分析和线下试验,WAL的回放占据了X-Engine宕机重启的绝大部分时间。结合现有实现分析࿰

http://www.lryc.cn/news/63454.html

相关文章:

  • 创作纪念日让 AI 与我共同记录下今天 — 【第五周年、1460天】
  • 枚举法计算24点游戏
  • @Cacheable注解
  • CentOS分区挂载 fdisk、parted方式解析
  • BuildKit
  • c++ 11标准模板(STL) std::vector (二)
  • Python 循环技巧
  • 【Java笔试强训 7】
  • 工作7年的程序员,明白了如何正确的“卷“
  • 数学建模——查数据
  • PAT A1019 General Palindromic Number
  • ChatGPT会颠覆SEO内容创作吗
  • Maven私服搭建
  • Ajax和Json综合案例
  • 【genius_platform软件平台开发】第九十四讲:int64_t的格式化问题(lld和PRId64)
  • 多模态之clip
  • Lombok常用注解
  • 加拿大各省接受公立教育的初始年龄汇总 — 供携子女赴加的访学、博后参考
  • 数字化工厂:虹科Vuzix AR眼镜在工业制造中的革新应用
  • 配置出接口方式的单服务器智能DNS
  • 数据结构初阶(栈和队列)
  • IDEA实用设置
  • 关联爆破-RSA分解
  • Netty内存管理--内存池PoolArena
  • RabbitMQ 发布订阅模式,routing路由模式,topic模式
  • 又一款可视化神器,开源了!
  • 干货 | 中科院心理所考研复试经验分享
  • Redis基础知识概述
  • 开心档之C++ 引用
  • 后台优化主要分为哪些?工作内容及流程是什么?