搜索

pdf文档 The Vitess 8.0 Documentation

1.35 MB 331 页 0 下载 279 浏览 0 评论 0 收藏
所属分类: 数据库 / Vitess
语言 格式 评分
英语
.pdf
3
摘要
文档介绍了Vitess 8.0的核心功能与架构。Vitess是一个用于MySQL水平扩展的数据库集群系统,支持连接池、查询重写、分片、主节点故障转移和数据备份。它通过vttablet提供表生命周期管理(包括hold、purge、evac、drop阶段)和节流服务以维持低复制延迟。文档对比了Vitess与原生MySQL及NoSQL的优势:Vitess支持复杂SQL查询、事务和索引,而NoSQL通常不支持。此外,文档说明了升级策略(自下而上、金丝雀测试、滚动升级)以及基于Kubernetes的云原生部署方式。
AI总结
Vitess 8.0 文档主要涵盖数据库表生命周期管理、节流(Throttler)控制、架构概述与部署方案。 **1. 表生命周期管理** - **核心目的**:安全、自动地删除大表,减少对数据库性能的影响。 - **生命周期阶段(按顺序执行)**: 1. **Hold(保持)**:表处于非活动状态。 2. **Purge(清理)**:逐步删除表数据,在副本上执行此操作对性能影响较小。 3. **Evac(缓冲)**:等待72小时(硬编码),让缓冲池中的表页面自然被逐出。 4. **Drop(删除)**:执行 `DROP TABLE`,释放 `.ibd` 文件占用的磁盘空间。 - **配置灵活性**:通过 `-table_gc_lifecycle` 标志可配置生命周期子集(例如 `"drop"` 或 `"hold,purge,drop"`),但流程顺序固定为 hold -> purge -> evac -> drop,且最终都会执行删除。 - **自动化应用**:在线DDL工具(gh-ost、pt-osc)产生的临时表会被 Vitess 自动收集并进入 Purge 状态。 - **用户接口**:此功能尚未直接开放给应用用户,未来会引入特殊语法。 **2. 节流(Throttler)服务** - **功能**:VTTablet 运行一个合作节流服务,通过探测 MySQL 拓扑并观察复制延迟(基于 freno 项目)。 - **目的**:维持低复制延迟。 - **重要性**: - **主从切换**:低延迟可避免切换时的数据丢失。 - **服务读取**:低延迟确保只读查询能访问实时数据。 - **应用场景**:在备份、表生命周期管理(Purge阶段)等操作中,节流器会进行协调,防止操作导致副本负载过高而出现严重滞后。 **3. 架构与组件** - **组件**:包括多种服务器进程、命令行工具和基于Web的实用程序,由一致的元数据存储(如 etcd 或 ZooKeeper)支持。 - **核心优势**: - **轻量级连接**:利用连接池和 Go 并发,能轻松处理成千上万的连接。 - **查询保护**:通过 SQL 解析器重写可能影响性能的查询(如缺少 LIMIT),并提供黑名单和超时终止功能。 - **分片支持**:支持垂直和水平分片,并能动态调整分片数量。 - **自动化管理**:自动处理主服务器故障切换和数据备份。 **4. 版本升级指南** - **兼容性**:遵循语义化版本,升级到更高补丁或次版本时保证兼容性。升级主版本可能需要手动配置。 - **升级顺序**:推荐自下而上,按 `vttablet` -> `vtctld` -> `vtgate` -> `应用代码` 的顺序进行升级。 - **金丝雀测试**:建议先升级单个实例进行验证。 - **滚动升级**:推荐在分片内逐个升级 Tablet,以保证服务不中断。 - **主表升级**:每个分片的主Tablet应最后升级:先升级所有副本,然后进行主从切换,最后升级旧的主Tablet。 **5. 历史与对比** - **起源**:2010年由YouTube为解决MySQL扩展性挑战而创建,现已成为CNCF项目。 - **与原生MySQL对比**:Vitess 相比原生 MySQL 具有更轻量的连接管理、更智能的查询保护、原生分片支持和自动故障切换管理。 - **与NoSQL对比**:相比NoSQL,Vitess 支持复杂SQL(如JOIN、聚合)、完整事务和 MySQL 索引功能。
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余 324 页请下载阅读 -
文档评分
请文明评论,理性发言.