高可用与一致性:构建强一致性分布式数据库 TiDB-沈泰宁
构建强⼀一致性分布式数据库 TiDB 沈泰宁 R & D Engineer @ PingCAP ⾃自我介绍 ⾃自我介绍 • 沈泰宁 • R&D Engineer @ PingCAP • Maintainer • rust-prometheus • grpc-rs • … ⽬目录 • What is TiDB? • How to test? What is TiDB? Single0 码力 | 45 页 | 4.63 MB | 1 年前3微服务场景下的数据一致性解决方案 - 殷湘
和平统一 微服务场景下的数据一致性解决方案 殷湘 华为PaaS微服务架构师 开源能力中心 大纲 •离 数据一致性的起因 •合 数据一致性的解决方案 •断 方案选择建议 离 数据一致性的起因 单体应用 • 单体应用由于所有模块(A/B/C)使用同一个数据库 • 数据一致性通过数据库事务保证 A B C commit rollback 微服务场景 MySQL MongoDB MongoDB Cassandra 数据一致性无法完全通过数据库保证 离 独立进程 独立部署 独立技术 独立团队 合 数据一致性的解决方案 T1 T2 T3 C2 C1 • 1987年Hector & Kenneth 发表论文 Sagas • Saga = Long Live Transaction (LLT) • LLT = T1 + T2 + T3 + ... + Tn • 每个本地事务Tx 有对应的补偿 transact transact transact B C A Saga compensate compensate 和平统一 减少业务代码集成/运维难度 剥离业务与数据一致性复杂度 和平:低侵入 让运维监控更加简单 可视化事务、调用链 统一:集中式 无状态、可集群、可分片 Event Sourcing架构 高可用 系统架构 – 基于图形 requests0 码力 | 31 页 | 4.28 MB | 1 年前32019-2021 美团技术年货 前端篇
Swift 与 Objective-C 及混编机制 108 美团民宿跨端复用框架设计与实践 165 美团跨端一体化富文本管理技术实践 186 前端 | 2020 202 移动端 UI 一致性解决方案 202 美团外卖 Flutter 动态化实践 227 美团开源 Logan Web:前端日志在 Web 端的实现 255 外卖客户端容器化架构的演进 270 Flutter 过打造一套 合适的跨端框架,以相对低的成本移植应用到鸿蒙平台,并利用好该系统的特性能 力,就成为了一个非常重要的选项。 在现有的众多跨端框架当中,Flutter 以其自渲染能力带来的多端高度一致性,在新 系统的适配上有着突出的优势。虽然 Flutter 官方并没有适配鸿蒙的计划,但经过一 段时间的探索和实践,美团外卖 MTFlutter 团队成功实现了 Flutter 对于鸿蒙系统的 前端 上分别提供了交易履约、运营、 广告、营销等一系列功能,且经常有外投 H5 的场景(如外卖学院、商家社区、营销 活动等)。在这种多形态的业务场景下,如何保障多端体验的一致性,以及如何提升 多端迭代的效率,一直是商家端产研关注的重点。 1.1.1 保障多端体验一致性 由于端能力的不同,导致了业务在 App 和 Web 上存在较大的表现差异,例如:App 上自带动画转场,而在 Web 中的实现成本却较高,往往也就降级舍弃了这部分功能。0 码力 | 738 页 | 50.29 MB | 1 年前32022年美团技术年货 合辑
713 基于 AI 算法的数据库异常监测系统的设计与实现 775 目录 < v Replication(上):常见复制模型 & 分布式系统挑战 792 Replication(下):事务,一致性与共识 818 TensorFlow 在美团外卖推荐场景的 GPU 训练优化实践 855 CompletableFuture 原理与实践 - 外卖商家端 API 的异步化 879 工程效能 模、自动化建模。三个阶段具有逐渐深化,进一步补充的作用。 图 17 三阶段算法建模 探索性建模:比赛前期,首先进行问题理解,包括评估指标与数据表理解,然后进行 基础的模型搭建,并线上提交验证一致性。在一致性验证过程中往往需要多次提交, 找到同线上指标一致的评估方式。探索性建模的核心目标是要找到迭代思路与方法, 所以需要对问题做多方面探索,在探索中找到正确的方向。 一般在非时序问题,采用 N-fold M 等不同模型进行自动化模型融合。 4.2 同工业界方法联系 算法比赛相对于工业界实际情况而言,一个重要区别是工业界涉及线上系统,在工程 方面性能的挑战更大,在算法方面涉及更多的线上线下效果一致性问题。因此算法 比赛会在模型复杂度、模型精度更进一步,在算法比赛中也产出了 ResNet、Field- aware Factorization Machine(FFM)、XGBoost 等算法模型,广泛应用于工业界0 码力 | 1356 页 | 45.90 MB | 1 年前3Apache ShardingSphere 中文文档 5.1.1
情况下, 尽量使用本地事务,善于使用同库不同表可有效避免分布式事务带来的麻烦。在不能避免跨库事务的场 景,有些业务仍然需要保持事务的一致性。而基于 XA 的分布式事务由于在并发度高的场景中性能无法满 足需要,并未被互联网巨头大规模使用,他们大多采用最终一致性的柔性事务代替强一致事务。 4.3. 数据分片 26 Apache ShardingSphere document, v5.1.1 ORDER BY id LIMIT ? OFFSET ? 4.4 分布式事务 4.4.1 背景 数据库事务需要满足 ACID(原子性、一致性、隔离性、持久性)四个特性。 • 原子性(Atomicity)指事务作为整体来执行,要么全部执行,要么全不执行; • 一致性(Consistency)指事务应确保数据从一个一致的状态转变为另一个一致的状态; • 隔离性(Isolation)指多个事务并发执 在不开启任何分布式事务管理器的前提下,让每个数据节点各自管理自己的事务。它们之间没有协调以 及通信的能力,也并不互相知晓其他数据节点事务的成功与否。本地事务在性能方面无任何损耗,但在 强一致性以及最终一致性方面则力不从心。 两阶段提交 XA 协议最早的分布式事务模型是由 X/Open 国际联盟提出的 X/Open Distributed Transaction Processing (DTP)0 码力 | 409 页 | 4.47 MB | 1 年前3Apache ShardingSphere 中文文档 5.1.0
情况下, 尽量使用本地事务,善于使用同库不同表可有效避免分布式事务带来的麻烦。在不能避免跨库事务的场 景,有些业务仍然需要保持事务的一致性。而基于 XA 的分布式事务由于在并发度高的场景中性能无法满 足需要,并未被互联网巨头大规模使用,他们大多采用最终一致性的柔性事务代替强一致事务。 4.3. 数据分片 26 Apache ShardingSphere document, v5.1.0 ORDER BY id LIMIT ? OFFSET ? 4.4 分布式事务 4.4.1 背景 数据库事务需要满足 ACID(原子性、一致性、隔离性、持久性)四个特性。 • 原子性(Atomicity)指事务作为整体来执行,要么全部执行,要么全不执行; • 一致性(Consistency)指事务应确保数据从一个一致的状态转变为另一个一致的状态; • 隔离性(Isolation)指多个事务并发执 在不开启任何分布式事务管理器的前提下,让每个数据节点各自管理自己的事务。它们之间没有协调以 及通信的能力,也并不互相知晓其他数据节点事务的成功与否。本地事务在性能方面无任何损耗,但在 强一致性以及最终一致性方面则力不从心。 两阶段提交 XA 协议最早的分布式事务模型是由 X/Open 国际联盟提出的 X/Open Distributed Transaction Processing (DTP)0 码力 | 406 页 | 4.40 MB | 1 年前3新一代云原生分布式存储
无中心节点/中心节点 均 衡 地址空间的每段数据会分布在不同机器的磁盘上,如 何找到这些数据? 可靠性 & 可用性 —— 多副本/EC 服务不可用时 间 数据一致性 —— 一致性协议 如何保证数据不丢?如何保证各种硬件故障的时候读 写都正常? 可扩展性 —— 和数据分布的方式相关 所用容量都用完后,可以新增机器扩展容量分布式存储的要素 — 数据分布 无中心节点:哈希算法 KEY (Offset, Len) VALUE (DiskID) (0, 4MB) 70 (4MB, 8MB) 60 (8MB, 16MB) 50分布式存储的要素 — 一致性协议 多副本: 写三次? 一致性协议 一致性:WARO(Write-all-read-one)、Quorum WARO • 所有副本写成功 • 读可用性高:可以读任一副本 • 写可用性较低,任一副本异常写失败 rbd\udata.6855c174a277a30.000000000005c2架构简介 — 多副本一致性协议 复制策略 • 主动拷贝、链式复制、splay复制 异常处理 • PG有23种状态:Peering,Degraded等 • 强一致性协议对异常的容忍较差 使用WARO一致性协议 • 所有副本写完成返回客户端 • 延迟取决于所有副本中最慢的那一个块存储场景 为云主机提供云0 码力 | 29 页 | 2.46 MB | 5 月前3Apache ShardingSphere 中文文档 5.1.2
情况下, 尽量使用本地事务,善于使用同库不同表可有效避免分布式事务带来的麻烦。在不能避免跨库事务的场 景,有些业务仍然需要保持事务的一致性。而基于 XA 的分布式事务由于在并发度高的场景中性能无法满 足需要,并未被互联网巨头大规模使用,他们大多采用最终一致性的柔性事务代替强一致事务。 4.3. 数据分片 26 Apache ShardingSphere document, v5.1.2 ORDER BY id LIMIT ? OFFSET ? 4.4 分布式事务 4.4.1 背景 数据库事务需要满足 ACID(原子性、一致性、隔离性、持久性)四个特性。 • 原子性(Atomicity)指事务作为整体来执行,要么全部执行,要么全不执行; • 一致性(Consistency)指事务应确保数据从一个一致的状态转变为另一个一致的状态; • 隔离性(Isolation)指多个事务并发执 在不开启任何分布式事务管理器的前提下,让每个数据节点各自管理自己的事务。它们之间没有协调以 及通信的能力,也并不互相知晓其他数据节点事务的成功与否。本地事务在性能方面无任何损耗,但在 强一致性以及最终一致性方面则力不从心。 两阶段提交 XA 协议最早的分布式事务模型是由 X/Open 国际联盟提出的 X/Open Distributed Transaction Processing (DTP)0 码力 | 446 页 | 4.67 MB | 1 年前3Apache ShardingSphere 中文文档 5.0.0
情况下, 尽量使用本地事务,善于使用同库不同表可有效避免分布式事务带来的麻烦。在不能避免跨库事务的场 景,有些业务仍然需要保持事务的一致性。而基于 XA 的分布式事务由于在并发度高的场景中性能无法满 足需要,并未被互联网巨头大规模使用,他们大多采用最终一致性的柔性事务代替强一致事务。 4.2. 数据分片 21 Apache ShardingSphere document, v5.0.0 ORDER BY id LIMIT ? OFFSET ? 4.3 分布式事务 4.3.1 背景 数据库事务需要满足 ACID(原子性、一致性、隔离性、持久性)四个特性。 • 原子性(Atomicity)指事务作为整体来执行,要么全部执行,要么全不执行; • 一致性(Consistency)指事务应确保数据从一个一致的状态转变为另一个一致的状态; • 隔离性(Isolation)指多个事务并发执 在不开启任何分布式事务管理器的前提下,让每个数据节点各自管理自己的事务。它们之间没有协调以 及通信的能力,也并不互相知晓其他数据节点事务的成功与否。本地事务在性能方面无任何损耗,但在 强一致性以及最终一致性方面则力不从心。 4.3. 分布式事务 37 Apache ShardingSphere document, v5.0.0 两阶段提交 XA 协议最早的分布式事务模型是由 X/Open0 码力 | 385 页 | 4.26 MB | 1 年前3Apache ShardingSphere 中文文档 5.2.0
情况下, 尽量使用本地事务,善于使用同库不同表可有效避免分布式事务带来的麻烦。在不能避免跨库事务的场 景,有些业务仍然需要保持事务的一致性。而基于 XA 的分布式事务由于在并发度高的场景中性能无法满 足需要,并未被互联网巨头大规模使用,他们大多采用最终一致性的柔性事务代替强一致事务。 3.1. 数据分片 16 Apache ShardingSphere document, v5.2.0 tbl_name(查询列是函数表达式时,查询列前不能使用表名, 可以使用表别名) 3.2 分布式事务 3.2.1 背景 数据库事务需要满足 ACID(原子性、一致性、隔离性、持久性)四个特性。 • 原子性(Atomicity)指事务作为整体来执行,要么全部执行,要么全不执行; • 一致性(Consistency)指事务应确保数据从一个一致的状态转变为另一个一致的状态; • 隔离性(Isolation)指多个事务并发执 及通信的能力,也 并不互相知晓其他数据节点事务的成功与否。在性能方面无任何损耗,但在强一致性以及最终一致性方 面不能够保证。 XA 事务 XA 事务采用的是 X/OPEN 组织所定义的 DTP 模型 所抽象的 AP(应用程序), TM(事务管理器)和 RM (资源管理器)概念来保证分布式事务的强一致性。其中 TM 与 RM 间采用 XA 的协议进行双向通信,通 过两阶段提交实现。与传统的本地事务相比,XA0 码力 | 449 页 | 5.85 MB | 1 年前3
共 443 条
- 1
- 2
- 3
- 4
- 5
- 6
- 45