高可用与一致性:构建强一致性分布式数据库 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 年前3
 2022年美团技术年货 合辑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 年前3
 从百度文件系统看大型分布式系统设计中的定式与创新数据与计算的分片 • 分区故障容忍 • 数据一致性 • 系统扩展性 • 延迟与吞吐 • 成本与资源利用率 • … 数据与计算的分片 • 哈希分片 - 简单、均衡 - 扩容复杂、易用性差 - 一致性哈希、虚拟节点 • 按范围、数据量分 - 使用简单 - 需要管理元数据 - 中心化与去中心化 元数据管理 • 去中心化 - P2P技术 - 潜在的一致性问题 - 能管理的元数据有限 • 中心化 几十台机器突然消失 - 磁盘、单机故障 • 通过冗余应对故障 一个典型的数据处理场景 数据处理模块 数据接收模块 存储 主 从 从 1. 写入 2. 通知 3. 读取 多副本冗余 一致性问题 • 怎么定义写成功 - 3副本成功, 影响可用性 • 可以读从节点 - 刚写入的读不到 - 不一致 • 只允许读主节点 - 扩展性受限 数据处理模块 数据接收模块 存储 主 从 从 1. CAP三选二 - Consistency 一致性 - Availability 可用性 - Partition Tolerance 分区 容忍性 • 分布式系统 - 容忍网络隔离是必须的 - CP、AP Quorum机制 • Quorum写(NWR) - Write 写成功W副本 - Read 读R副本 - W+R>N,就不会丢失更新 • 一致性协议 - Paxos - Raft CAP到CAD的演变0 码力 | 24 页 | 937.45 KB | 1 年前3
 新一代分布式高性能图数据库的构建 - 沈游人海致图平台产品服务于金融、政府行业有大量业务经验积累(接近客户需求) • 现有开源产品无法满足要求(受限于基础架构设计,优化性能有限) 新一代分布式图数据库需具备的特性 特性 信 雅 达 • 高可用 • 一致性(事 务) • 高性能 • 低资源消耗 • 易用 • 功能丰富 AtlasGraph 关键特性 云原生 Cloud-Native Graph Database 支持弹性伸缩,有 效利用硬件资源,高可用,高 架构概览 存储层 副本管理 CRAQ 图原生存储 索引 LSM-Tree 容灾保障 ( BR ) 元数据层 事务管理 MVOCC 计算层 Cypher AST 优化器 图计算 内存加速引 擎 服务接口 HTTP/RPC Spark 连接器 Python UDF 执行器 索引管理 一致性存储 RAFT 分片管理 元数据 针对大规模图优化的存算引擎 - 配合 Atlas 图平台,实现无代码图分析 - Query 性能分析模块,启发式提示优化 - 内置多种分析函数,面向分析师友好 -MVOCC 保证事务一致性 - 多副本管理保证数据服务高可用 - 在线备份提供容灾保障 高速 易用 可靠 Why Rust ? Performance • Blazingly fast and memory-efficient0 码力 | 38 页 | 24.68 MB | 1 年前3
 分布式 KV 存储系统 Cellar 演进之路可扩展性: 路由查询能力 可线性扩展 • 隔离性: 客户端与中心节点 完全隔离 Cellar—中心节点架构演进 一致性 • 主备脑裂 • observer与config • Zookeeper选主 • 元数据Zookeeper存储 Cellar—中心节点架构演进 一致性: • 主备强一致 • observer同步强一致 • Cellar起源 • 中心节点架构演进 • 节点高可用和异地容灾 服务可用性提升 • Cellar规划 目录 存储节点Failover,越快越好? • 数据补全对业务影响 • 机器宕机五分钟,数据补全两小时 节点升级,先切走流量再操作? • 节点流量只能切到有其他副本的节点 • 升级后的节点缺少升级期间的写入 Cellar—节点高可用 Cellar—节点高可用 • 秒级容灾 无数据迁移 • 节点静默升级 中心节点 A节点 1分片主 2分片备 B节点 GC、CPU繁忙··· • 网络问题 • 服务器端问题 磁盘IO、慢请求··· • 客户端 backup request • 服务器端 快慢队列 Cellar—backup request 副本1 副本2 副本3 req3 • 什么时间 等待超过 超时时间一半 • 发几次 最多两次 • 重试比例 最大20% 读请求超时降低90+% 客户端 req6 req5 req9 req90 码力 | 34 页 | 1.66 MB | 1 年前3
 Python 标准库参考指南 3.10.15 中的对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1187 20.6.3 一致性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1194 20 simple_server -- 一个简单的 WSGI HTTP 服务器 . . . . . . . . . . . . . 1229 21.2.4 wsgiref.validate --- WSGI 一致性检查器 . . . . . . . . . . . . . . . . . . . . . . . 1230 21.2.5 wsgiref.handlers -- 服务器/网关基类 . . . . dir(s) ['area', 'location', 'perimeter'] 注解: 因为dir() 主要是为了便于在交互式时使用,所以它会试图返回人们感兴趣的名字集合,而不 是试图保证结果的严格性或一致性,它具体的行为也可能在不同版本之间改变。例如,当实参是一个 10 Chapter 2. 内置函数 The Python Library Reference, 发布 3.10.15 类时,metaclass0 码力 | 2207 页 | 10.45 MB | 9 月前3
 Python 标准库参考指南 3.11.10 中的对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1271 20.6.3 一致性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1279 20 simple_server -- 一个简单的 WSGI HTTP 服务器 . . . . . . . . . . . . . 1315 21.2.4 wsgiref.validate --- WSGI 一致性检查器 . . . . . . . . . . . . . . . . . . . . . . . 1316 21.2.5 wsgiref.handlers -- 服务器/网关基类 . . . . dir(s) ['area', 'location', 'perimeter'] 备注: 因为dir() 主要是为了便于在交互式时使用,所以它会试图返回人们感兴趣的名字集合,而不 是试图保证结果的严格性或一致性,它具体的行为也可能在不同版本之间改变。例如,当实参是一个 类时,metaclass 的属性不包含在结果列表中。 divmod(a, b) 以两个(非复数)数字为参数,在作整数除法时,返回商和余数。若操作数为混合类型,则适用二进0 码力 | 2399 页 | 11.19 MB | 9 月前3
 Python 标准库参考指南 3.13 DOM 中的对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1245 20.6.3 一致性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1252 20.7 xml simple_server -- 一个简单的 WSGI HTTP 服务器 . . . . . . . . . . . . 1285 21.2.4 wsgiref.validate --- WSGI 一致性检查器 . . . . . . . . . . . . . . . . . . . . . . 1286 21.2.5 wsgiref.handlers -- 服务器/网关基类 . . . . . ['area', 'location', 'perimeter'] � 备注 因为dir() 主要是为了便于在交互式时使用,所以它会试图返回人们感兴趣的名字集合,而不 是试图保证结果的严格性或一致性,它具体的行为也可能在不同版本之间改变。例如,当实参 是一个类时,metaclass 的属性不包含在结果列表中。 divmod(a, b) 接受两个(非复数)数字作为参数并返回由当对其使用整数除法时的商和余数组成的数字对。在混0 码力 | 2246 页 | 11.74 MB | 9 月前3
 Python 标准库参考指南 3.13 DOM 中的对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1241 20.6.3 一致性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1248 20.7 xml simple_server -- 一个简单的 WSGI HTTP 服务器 . . . . . . . . . . . . 1281 21.2.4 wsgiref.validate --- WSGI 一致性检查器 . . . . . . . . . . . . . . . . . . . . . . 1282 21.2.5 wsgiref.handlers -- 服务器/网关基类 . . . . . ['area', 'location', 'perimeter'] � 备注 因为dir() 主要是为了便于在交互式时使用,所以它会试图返回人们感兴趣的名字集合,而不 是试图保证结果的严格性或一致性,它具体的行为也可能在不同版本之间改变。例如,当实参 是一个类时,metaclass 的属性不包含在结果列表中。 divmod(a, b) 接受两个(非复数)数字作为参数并返回由当对其使用整数除法时的商和余数组成的数字对。在混0 码力 | 2242 页 | 11.73 MB | 9 月前3
共 171 条
- 1
 - 2
 - 3
 - 4
 - 5
 - 6
 - 18
 













