#114. 分布式数据库——正在进行的迟来革命
30 Mar 2023 · 77 min
在本期牛油果烤面包播客中,主持人斯特亚特(SPEAKER A)与 PinCap 创始人兼 CTO 东旭进行了一场围绕分布式数据库的深度对话。对话从最基础的分布式事务难点展开,讨论了数据不丢失、冲突解决以及跨机器转账的可靠性问题,随后引入了两阶段提交(2PC)作为事务模型,并指出在分布式环境下实现一致性所需的共识算法(Raft、Paxos)。随后,双方比较了 shared‑disk 与 shared‑nothing 两大架构思路,阐述了云原生存储(如 S3)如何让 shared‑disk 重新成为可行方案。东旭进一步介绍了自研的 Tidybee 数据库的“细胞”切分与动态再平衡机制,用字典、细胞分裂等生活化比喻解释了键空间映射、分片、自动迁移以及小块(约 96 MiB)在系统中的平滑移动。随后讨论了分布式数据库在性能(延迟、网络开销)和成本(多副本、机器规模)上的挑战,并将其类比为从燃油车向电动车的迁移。对话最后转向行业趋势,指出云原生、Serverless、Pay‑as‑you‑go 让分布式数据库更易部署,同时提醒听众在进入该领域时应先阅读关键论文、动手实现简化版共识/事务模型,并利用大语言模型(ChatGPT)快速原型化。整场访谈以技术细节、历史演进、实际案例和未来展望交织,呈现了分布式数据库从概念到落地的全景图。
Chapters
现在 是 一个 信息 爆炸 的 时代 当 一个 数据库 的 数据 无法 存在 一台 计算机 里 的 时候 我们 该 怎么办 呢 这 就是 分布式 数据库 爱上 用场 的 地方 了 本期 节目 我们 请 到 了 PinCap 的 CTO 和 创始人 东旭来 和 我们 聊一聊 分布式 数据库 是 怎么回事 这里 是 牛油果 烤面包 大家 好, 我 是 斯特 亚特 今天 我们 有幸 请 到 了 pincap 公司 的 创始人 并且 是 现在 的 CTO 东旭 来到 我们 的 节目 和 我们 聊一聊
分布式 数据库 大家 好, 我 是 东旭
pincap 的 创始人 能 不能 跟 大家 分享 一下 当时 为什么 选择 了 创业
有 很多 小伙伴 可能 听到 pincap 稍微 有点 陌生 但是 如果 我 相信 这 节目 有 很多 都 是 程序员 或者说 engineer 背景 的 听众 可能 有 很多 同学 听说 过 一个 开源 项目 叫 TIDB 本身 是 一个 很 流行 的 开源 软件 因为 其实 这个 软件 其实 就是 PinCap 这个 公司 叫 我 的 这个 startup 就 从零开始 去 做 的 到 后来 发现 其实 好像 Tidybee 的 这个 作为 开源 项目 或者说 这个 软件 的 知名度 其实 比 我们 这个 公司 要 大 好多 这 是 好 事情
啊 就 好像 Wish 比 那 什么 什么 ContactLogic 有名 是 吧 对 其实
刚才 斯德 加特 聊到 为什么 要 去 做 这个 确实 还 挺 有意思 的 因为 我 本人 是 一个 engineer 就是
工程师 软件 工程师 写 代码 的 我们
其实 三个 创始人 其实 全都 是 软件 工程师 八年 前 其实 我们 在 当时 是 在 中国 在 国内 一家 创业 公司 也 是 一个 创业 公司 就是 豌豆 甲 可能 很多 朋友 知道 是 一个 互联网 公司 当时 做安卓 应用 商店 的 但 我们 其实 负责 的 这个 模块 其实 并 不是 APP 这块 我们 其实 是 去 做 分布式 存储 或者说 底下 这个 数据库 或者说 这些 大家 平时 看不见 的 东西 反正 本身 也 是 这个 本职工作 然后 其实 数据库 这 东西 挺 有意思 的 因为 每 一个 公司 不管 他 是 做 什么 业务 你 最后 会 发现 他 其实 都 都 离不开 一些 很 基础 的 软件 比如说 数据库 比如 操作系统 像 这些 东西 比如说 每 一个 公司 尤其 像 这种 互联网 公司 他 经常 可能 要 服务 成百上千 甚至 成千上万 甚至 可能 在 中国 经常 动不动 就 上百万 或者 上 亿 这样 的 级别 的 用户 大家 可能 就是 如果 是 一个 普通 的 用户 来说 我 不 知道 会 不会 思考 一个 问题 就 比如说 我们 平时 用 微信 或者 平时 用 一些 社交 网络 大家 拿到 手机 这个 每天 这么 一看 就 发现自己 的 这些 数据 data 或者说 一些 每天 pose 的 东西 都 在 那 即使 换 了 一个 手机 登录 你 的 账号 你 会 发现 你 的 数据 还 在 那 我 的 数据
都 没 了 我 的 聊天记录 都
没 了 比如说 像 推特 是 吧 你 换个 手机 用 这个 一样 这个 推特上 你 发 的 推 他 都
不会 丢 微博是 吧 微博 就 还
在 对 所以 大家 有没有 想过 一个 问题 这 数据 到底 存储 在 什么 地方 就 有 很多 朋友 可能 说 这个 东西 不是 就 在 云端 或者说 就 在 这个 数据中心 里面 其实 这个 回答 也 大致 没有 问题 但是 再 往前 一步 就是 这些 数据 存储 的 软件 大家 有没有 想过 是 什么 样子 的 软件 所以 其实 对于 我们 来说 我们 就是 去 做 刚才 说 到 这些 在 可能 你 的 数据 在 这些 互联网 公司 或者说 这些 需要 去 存储 数据 的 这些 服务 背后 去 帮 他们 去 存储 这样 海量 的 大规模 的 数据 的 这样 的 软件 所以 数据库 是 一个 其实 在 我们 这个 领域 叫 基础设施 叫 infrastructure 听 起来 虽然 非常 的 离 日常生活 都 特别 远 但是 可以 这么 说 我们 现在 如果 是 在 每天 大家 用 手机 或者 在 这种 数字化 的 时代 这样 的 软件 就 像 我 经常 用 的 一个 比喻 就 像 下水道 一样 我们 虽然 可能 天天 看不见 它 但是 其实 是 构建 我们 这个 现代 生活 非常 重要 的 一部分 啊 所以 你 可以 认为 我们 就是 这个 数字 时代 这个 做 这种 基础设施 修 下水道 的 这个 公司 然后 其实 分布式 数据库 其实 是 有 两个 部分 啊 一个 是 数据库 我们 先说 数据库 好 数据库
哎 我们 说起 数据库 这 东西 大家 可能 很多 人 都 会 听 过 但是 我 不 知道 大家 提起 一个 词会 是 什么 一个 反应 有 的 人 可能 反应 是 有 数据库 就是 论文 查询数据库 是 吧 什么 之类 的 这个 什么 什么 数据 对 对 对
对 对 对 是 的 是 的
但是 可能 业内人士 知道 或者说 懂 计算机 的 人 知道 数据库 要 更 广泛 的 多 是不是 就 像 刚才 东西 刚才 说 过 的 就是 我们 看到 很多 的 网络 的 应用 是 吧 我们 手机 的 应用 的 后面 最终 是 一个 数据库 在 帮助 管理 很多 这些 应用 背后 的 那些 的 云端
的 数据 对 其实 可能 有个 更 简单 的 例子 就是 excel 是 吧 大家 都 用 过 微软 的 电子表格 对 吧 你 可以 把 它 想象 成为 其实 也 是 一种 在 桌面上 运行 的 一个 数据库 软件 啊 只是 我们 做 的 这个 引号 excel 是 在 这种 云端 或者 是 服务器 这边 去 运行 的 嗯 我 觉得 这 可能 会 大家 好 理解 一点 对
嗯 就是 要 数据库 啊 就是 excel 一样 就是 比如说 我 我 是 个 阿里 我 阿里 我 这个 商家 有 很多 的 卖 商品 哪个 商品 还有 多少 件 定价 多少 他 就 好像 是 一个 表格 是 吧 这 是 一个 表格 这个 商品 名 商品 ID 价格 还 剩 多少 货 他 就 放出 一个 表格 这个 表格 就 存在 某 一个 计算机 里面 服务器 里面 你 卖出 一个 他 就 给 你 减个 1 你 调 了 价格 就 给 你 变 一下 是 吧 就 这个 大概 就 这么 一个 功能 是 吧
没错 没错 刚才 我们 说 这部分 可能 是 今天 这个 播客 里面 最最 浅显易懂 的 之后 可能 就会变 hardcore 了 对
我们 知道 我 之前 有 微集 我 聊过 数据仓库 嘛 就是说 过去 数据库 可能 会 分成 两个 类型 的 现在 更 多 了 嘛 可能 分成 两个 类型 主要 一个 是 叫 数据仓库 分析 型 数据库 另外 一个 是 运营 数据库, 其实 这个 词汇 有 很多 不同 的 说法 刚才 东旭 说 过 可能 更 多 的 是 一种 就是 运营 数据库 的 这种 这种 感觉 就是说 你 的 应用 背后 是 一种 运营 的 数据库 当然 数据库 可能 有 更 多 的 类型 了 那 这个 可能 是 跟 大家 关系 最 紧密 的 一个 就 像
大家 这种 支付 或者说 在 网上 买买 买 是 吧 这些 交易 的 数据 其实 都 是 存储 在 刚才 说 这种 运营 的 数据库 上 对 对 其实 刚才 我 说 到 这 是 数据库 我 想 大家 应该 已经 差不多 理解 当然 大家 可能 会 好奇 这个 东西 已经 存在 了 好多年 好几十年 是 吧 计算机 一 出现 就 有 数据库 这种 软件 了 你 为什么 现在 还要 出来 做 一个 这个 数据库 那 就 说 到 另外 一个 定语 就是 分布式 分布式 对 分布式 其实 这个 也 特别
有意思 就是 英语 叫 distributeddistributed 就是 分发
的 意思 是 的 其实 刚才 用到 一个 比喻 就是 那个 excel 的 那个 比喻 大家 有没有 想过 你 本地 假设 有 一个 电子表格 这个 电子表格 巨长 巨大 可能 有 10 一条 你 发现 你 的 一台 电脑 的 这个 内存 或者说 这个 磁盘 存 不下 了 但是 呢 你 确实 又 有 这么 多 数据 不断 的 在 网里 要 添加 那 接下来 那 你 一台 电脑 不够 用 了 怎么办 呢 对 吧 一个 很 自然 的 想法 我 觉得 再 拿 另外 一台 电脑 跟 他 接 在 一起 把 存 不下 的 那 部分 放到 另外 一台 电脑 上面 我 还
以为 最 自然 的 想法 就是 我 在 买 一个 更大 的 对 这个
其实 也 是 一个 以前 的 这个 想法 但是 加快 硬盘 对 加快 硬盘 但 最近 这 20 年 吧 大家 渐渐 发现 好像 数据量 增长 的 速度 比 你 那个 升级 电脑 的 这个 速度 要 快得多 就是 你 已经 等不及 这个 电脑 出 更 高端 的 或者说 你 的 磁盘 插槽 不够 用 了
那 我 买 两台 怎么 能 解决问题
呢 买 两台 的话 就 通过 网线 把 它 连接 在 一起 然后 就 像 我 刚才 说 的 可能 另外 在 一台 机器 上 存储 不够 的 这 一部分 我 把 它 挪到 另外 一台 机器 上去 但 这 里面 就 会 有 一个 问题 再 想象 一下 你 一 两台 机器 按照 这种 方式 去 连 还好 但是 你 想象 一下 这个 数据量 其实 特别 特别 大 你 10 亿 10 亿 甚至 1 万亿 的 时候 你 可能 底下 需要 几百台 这样 的 机器 连在一起 这时候 你 怎么 组织 这个 数据 怎么 去 使用 这张 表格 其实 都 会 变得 特别 的 麻烦 和 困难 是 吧 你 可能 你 想要 去 查询 一下 某 一条 记录 你 可能 还 得 去 翻 一下 这 条 记录 到底 在 哪 所以 我们 的 做 的 分布式 的 数据库 其实 解决 的 一个 问题 就是 当 你 有 这么 成百上千 台 服务器 按照 刚才 那个 方式 把 这个 电子表格 分散 在 几百台 或者说 更 多 的 或者说 就是 一个 分布式 的 一个 集群 上 的 时候 我 怎么 让 我 的 用户 去 检索 和 去 使用 这个 数据 或者说 这 张大 的 电子表格 就 像 你 在 单机 上 这个 使用 Excel 一样 就 像 你 看起来 可能 还是 一个 跟 你 原来 使用 传统 数据库 的 方式 差不多 但是 它 在 底层 却是 无数 台 计算机 连接 在 一起 组成 的 一个 巨型 的 一个 超级 庞大 的 数据库 软件 所以 这个 是 我们 的 一个 特点 也 是 说 为什么 要 在 现在 当下 这个 时代 重新 要 去 做 一遍 这个 数据库 软件 的 一个 核心 的 原因 大家 已经 习惯 了 原来 怎么 去 使用 这个 数据库 但是 原来 的 方式 又 没有 办法 去 存储 这么 大量 的 数据 于是 我们 就 做 了 一个 这样 看起来 像 这种 传统 的 数据库 的 这种 访问 接口 但是 底层 又 是 一个 分布式 的 东西
这 听 上去 确实 是 一个 比较 困难 的 问题 站 在 我们 不太熟悉 的 观众 角度 来讲 如果 我 买 两台 计算机 我 自己 肯定 不 可能 把 同一个 表格 放在 两个 上面 我 只能 说 我 前面 一半 放在 这台, 另外 一半 这台 是 吧, 我 访问 的 时候 我选 一下 选 哪个 啊, 但是 就是 按照 东旭 说法 就是 你 买 很多 台 机器, 并且 用户 还 像 使用 一个 数据库 一样 好, 还是 一个 大 excel 表格 一样 啊, 那 这个 听 上去 并 不是 一个 特别 特别 容易 的 一件 事情 啊, 所以 说 东旭 刚才 说 的 是 最近 20 年 的话 时候 开始 大概 会 有 这样 一种 变化 啊 不是 使用 这种 更大 更 计算能力 更强 更 大 的 机器 而是 越来越 多 的 往里面 堆 机器 然后 用 这种 分布式 数据库 的 方法 能够 把 它 做成 像 一个 数据库 一样 是 这么 一种 感觉
其实 这个 东西 就 说 到 一些 好玩 的 历史 了 其实 最早 像 刚才 我 说 的 这个 数据库 或者 数据 存储 其实 是 一个 很 古老 的 一个 软件 的 类型 大家 可能 做 IT 的 朋友 经常 都 知道 像 甲骨文 是 吧 甲骨 人 就是 在 这个 领域 里边 去 做 这种 传统 数据库 软件 最强 的 公司 可能 几千 亿美金 反正 现在 也 是 全球 软件 的 巨头 但是 就 像 我 刚才 说 的 像 以 甲骨文 或者说 这些 传统 数据 的 数据库 软件 为 代表 的 这种 数据库 它 其实 都 是 针对 单机 的 架构 去 做 设计 过去 首先 比如说 90 年代 80 年代 反正 就是 上个世纪 反正 也 没有 这么 多 数字化 的 时候 大家 数据量 总量 也 不大 所以 就 像 刚才 斯维亚 特说 的 如果 一个 企业 的 数据 超过 了 一定 的 容量 怎么办 过去 大家 思路 确实 就是 我 再 买 一台 更大 的 机器 好 了 买不到 更大 的 机器 就 去 说 我 去 定制 一台 那种 小型机 或者说 更 厉害 的 更 powerful 的 这种 大型 计算机 所以 这 为什么 像 IBM 或者说 包括 Oracle 自己 也 去 会 去 做 一些 这种 这种 mayframe 相关 的 这种 软件 因为 在 过去 其实 这个 scale 不算 一个 特别 特别 大 的 问题 但是 呢 大概 在 20 年 前后 大家 可能 知道 这个 互联网 泡沫 吧 就 那个 时候 突然 这个. com 一下 就 火 了 我们 现在 很多 耳熟能详 的 互联网 公司 比如 google 啊 什么 这个 这个 雅虎 吧 包括 facebook 可能 都 是 在 20 年 前后 吧 这个 时候 起来 的 啊 这些 互联网 公司 就 有 一个 特点 就是 他们 数据量 特别 特别 大是 吧 就 他 不 像 以前 过去 比如说 oracle 甲骨文 经常 卖 给 的 客户 都 是 什么 银行 是 吧 那 就是 银行 虽然 看起来 这个 很 厉害 但是 其实 它 的 实际上 的 这种 如果 在 过去 啊 他 的 交易 数据 也 不算 太 大 反正 是 吧 就 买 一台 这个 大型 计算机 方 啊 就 基本上 搞定 这个 问题 了 但 互联网 不 一样 就是 互联网 公司 的话 就是 每个 人 都 可以 产生 很多很多 的 数据 大家 想象 一下 这个 facebook 是 吧 呃 有 多少 人 在 用 对 不 对 而且 另外 一点 在 那个 时候 这个 数据库 软件 啊 90 年代 末 20 年代 初 尤其 是 一些 商用 的 这种 数据库 软件 它 都 是 要 付费 的 就 像 甲骨文 为什么 这么 值钱 是 吧 这个 呃 因为 它 很 贵 一般 能 买 的 其他 的 都 是 一些 这个 银行 啊 什么 的 政府 啊 什么 的 而且 它 提供 的 这个 查询语言 叫 sql 啊 有 很多 学 计算机 的 朋友 肯定 知道 具体来说 就 相当于 操作 数据库 其实 是 有 一套 标准 的 查询语言 这 就是 刚刚 我 说 的 sql 就 像 我们 平时 去 比如说 我 在 美国 平时 要 跟 别人 说话 标准 的 语言 是 英语 对 吧 SQL 就 相当于 数据库 的 标准 的 语言 这个 语言 的 特点 就是 很 灵活 你 能 去 写 很多 很 复杂 的 查询 的 逻辑 所以 正好 也 符合 了 像 这种 金融 数据库 金融 行业 其实 就 会 有些 很 复杂 的 逻辑 但是 我们 想想 20 年 前后 第一波 互联网 的 浪潮 里边 这些 公司 它 其实 它 的 特点 是 数据量 特大 但是 它 的 业务 逻辑 就 非常简单 我 举个 例子 推特 刚才 不是 也 提到 推特 其实 特别 简单 其实 每 一条 记录 就是 一个 140 个 字 的 一条 小 message 对 不 对 现在 可能 不是 了 但是 其实 它 的 这个 数据 或者说 这个 业务 模式 很 简单 所以 这 互联网 公司 就 发现 他们 其实 想要 理想 中 的 数据库 最 重要 的 特点 就是 要 能够 就是 无限 的 拓展 无限 的 水平 拓展 他们 想 清楚 了 反正 我 再 有钱 也 买 不了 能 把 他们 所有 想要 的 数据 存储 下来 的 这个 计算机 了 只好 另辟蹊径 去 说 我 能 不能 把 这个 无数 台 这个 计算机 连接 在 一起 然后 把 它 装作 像 一个 超级计算机 一样 另外 一方面 就是 他们 也 不 需要 像 我 刚才 说 的 像 银行 啊 这么 复杂 的 业务 逻辑 传统 数据库 这些 可能 90% 的 功能 他们 都 不 需要 所以 那 更 简单 了 那 就 相当于 因为 为什么 当时 传统 的 数据库 他 没有 办法 很 好 的 去 适应 这个 分布式 就是 因为 查询 这个 sql 的 这个 语言 其实 特别 特别 复杂 而且 很多 东西 在 分布式 的 场景 之下 性能 不是 那么 太好 所以 这些 互联网 公司 就 想 那 我 干脆 这些 功能 我 就 不要 了 反正 我 也 用不上 我 就 提供 一些 最 简单 的 查询 数据 的 能力 但是 我 换来 的 是 我 的 分布式 和 无线 的 这种 拓展 性 这种 思路 的 核心 代表 就是 谷歌 就 在 谷歌 之前 其实 虽然 也 有 这种 分布式系统 分布式 存储 分布式 数据库 但 大多数 还是 在 这种 学校 或者 研究 机构 里边 去 研究 的 一个 课题 谷歌 我 是 觉得 它 是 第一个 去 真正 在 工业界 或者说 在 这些 公司 里边 去 践行 这个 理念 就是 我 把 一大堆 非常 弱小 的 机器 把 它 拼在一起 然后 用 网线 连 起来 然后 组成 一个 这种 超大规模 的 这个 分布式 的 集群 来 去 做 存储 去 做 计算 所以 我 觉得 这个 算是 一个 从 数据 存储 或者 数据库 这个 领域 里边 的 一个 分水岭 稍微 总结 一下 就 在 谷歌 之前 其实 这个 世界 都 是 比如 像 一些 商业 数据库 用 sql 很 复杂 很漂亮 各种 能力 看起来 都 很 好 但是 它 拓展 性不强 但是 从谷歌 开始 这些 互联网 公司 就 开始 有 一个 大力 出 奇迹 的 一个 思路 就是说 我 不 需要 这么 多功能 但是 我 就要 疯狂 的 拓展 性 对 这 一点点 小小的 历史 我们 之前 很多
期 节目 都 提到 了 大概 是 谷歌 这波 带来 的 一个 很大 的 变化 就 是从 这种 过去 的 大型机 上 一代 不 无论是 存储 数据库 分析 数据库 还是 运营 数据库 都 从 一个 过去 这种 大型机 向 这种 这个 比较 便宜 的 小 机器 用 这个 叫 什么 以太网 大力 出 奇迹 吧 对 联系 的 这种 这种 方式 我们 很多 集都 提到 了 这么 一个 变化 今天下午 我 想 做 节目 时 我 突然 意识 到 这个 分处 式 数据库 我 这个 我 对 这个 东西 还是 有 一些 特殊 的 感情 因为 我 第一份 工作 就是 我 在 微软 嘛 就是 做 的 是 一个 分处 式 数据库 我们 在 前面 正好 在 前面 几集 讲 分处 设备 时 我 提到 了 那个 时候 那个 我们 那个 组叫 cloudDB 啊, 做 的 是 用 他们 那 时候 他们 叫 commoditycommodityhardware 就是 那种 简单 的 那种 小 的 小 的 机器 把 那个 数据 分成 小 部分, 这 肯定 东旭待 会会 说 了 就是 做 一个 很多 的 数据 放在 那个 云 里面 叫 cloudDB 嘛 然后 我们 当时 的 对手 大 boss 那期 我 说 的 大 boss 是 就是 Sun 就是 那种 存储设备 一个 大 存储设备 当时 最 开始 我们 的 第一个 用户 是 当时 就是 MSNSpaceWindowsLiveSpace 不 知道 你 怎么 说 他们 那些 博客 那么 那些 WindowsLiveSpace 的 博客 MSN 的 博客 都 是 存在 SAN 里面 的 那个 时候 还是 存在 大型 存储设备 里面 的 我们 就 说 这个 玩意儿 是 不行 的 那个 组是 206 年 左右 开始 就 说 你们 这个 东西 已经 是 过时 了 我们 这个 是 未来, 你们 要 把 你们 的 这个 博客 这些 数据 从 你们 这些 存储设备 里面 挪到 我们 这个 数据库 里面, 然后 搞 了 搞 了 搞 了 很多年, 后来 他们 就 把 我们 甩掉 了, 说 我们 不要 了, 我们 就 我们 就 用 伞, 你们 就
不要 了 啊 是 吧 我 还 以为 这是 一个 反过来 的 故事 最后
我 估计 在 MSNSpaceLiveSpace 这个 项目 取消 掉 之前 这个 项目 关门 之前 他们 都 还是 自己 在 用 SUM 的 还 没有 用 这个 分布 器 数据库
有 可能 就是 因为 他们 一直 用 SUM 所以 才关 了 应该 及时 拥抱 这个 分布式 技术 可能 就活 了 呃,
对, 所以 我 对 这个 项目 还是 有 非常 特殊 的 感情 的 啊, 这个 差 一则 啊, 就是 这 大概 在 那个 时候 是 一个 大家 的 观念 啊, 有 一个 很大 的 分水岭 啊, 因为 那个 时候 有 一个 有 一个 词 啊, 叫做 他们 对于 这种 这种 大型 的 这种 叫 分布式 吗? 反正 就 大 数据库, 他们 有 两派 一派 叫 shareddisk 就是 共享 硬盘 大家 一些 分布式 下面 存 的 是 一个 一堆 硬盘 放在 一起 的 像 甲骨文 他们 基本上 是 走 这个 路线 的 另外 一派 叫做 sharenothing 就是 什么 都 不 共享 每台 机器 有 它 自己 的 存储 有 它 自己 的 计算 然后 通过 以太网 相连 然后 大家 就 完全 通过 以太网 联系 完全 没有 其他
的 联系 就 像 我 刚才 说 的 那个 excel 那个 表格 的 那个 例子 一样 我 给 你 翻译 一下 shareddisk 的 思路 就是 我 可能 有 一个 巨大 的 硬盘 然后 那个 硬盘 可能 横跨 了 这个 n 多台 机器 但 呢 我 上面 跑 的 大家 看起来 的 还是 一个 大 文件 一个 excel 的 一个 大 文件 sharenothing 就是 什么 是 什么 意思 呢 sharenothing 就是 我 现在 没有 一个 大 文件 了 我 把 那个 excel 的 那个 巨大 的 表格 我 拆成 10 万份 每台 机器 存储 一份 就 sharenothing 嘛 就 互相 之间 没有 share 就 其实 已经 这个 化整为零 了 嗯 对 这 玩意儿
有点 难 理解 啊 但是 就 总的来说 呢 天下 大师 分 就 必 和 何久 必分 嘛 因为 大概 在 205 年 左右 但是 业界 普遍认为 就是 sharenothing 是 未来 啊 就 sharedisk 就是 已经 是 不行 了 那个 时候 我 在 微软 嘛 他们 就是 是 这个 想法 啊 但是 现在 可能 多少 年 之后
大家 又 开始 觉得 对 又 开始 回来 了 有 一点 又 开始 回来
认为 就是说 共享 硬盘 的 是 未来 这个 当然 这个 玩意 也 是 从来 就是 争议 比如说 谷歌 他们 一直 都 是 就是 所谓 的 shareddisk 他们 从来 就是 下面 是 一个 分式 的 文件系统 上面 一堆 这个 看 定义 了 对
那 确实 看 定义 你 看 其实 有 很多 人会 觉得 谷歌 是 sharenothing 就是 这个 技术 路线 的 创始 的 公司 比如 如果 去 看 其实 谷歌 在 20 年 的 头 几年 发表 了 几篇 论文 就 三 套件 还是 什么 之类 的 三 套件 对 一个 是 这个 bigtable 一个 是 googlefilesystem 另外 一个 mapreduce 你 去 看 这 三篇 论文 的 思路 都 是 在于 一个 我 把 一个 大 任务 我 把 它 拆散 成 很多 小 任务 其实 你 去 看 即使 是 googlefiresystem 用户 看起来 是 个 大 的 文件系统 但是 它 核心 的 思路 也 是 分 不同 的 datachunk 可能 在 不同 的 机器 上 然后 可能 有 一个 目录 的 server 然后 你 在 查询 的 时候 去 跑 去 目录 的 server 去 找到 具体 的 chunk 在 某台 机器 上 所以 就 很多 人 觉得 其实 Google 的 思路 启发 了 很多 后来 的 包括 其实 我 本身 是 谷歌 的 一个 思路 的 特别 大 的 粉丝 所以 我们 其实 在 做 的 东西 分布式 数据库 其实 底层 很多 的 思想 也 是 借鉴 了 刚才 谷歌 的 化整为零 的 思想 只不过 我们 其实 解决 了 一个 问题 刚才 我 不是 提到 比如 传统 的 数据库 像 Oracle 甲骨文 像 IBM 这些 数据库 它 有 一个 比较复杂 的 查询 接口 叫 SQL 对 吧 那个 过去 很多 互联网 公司 觉得 哎 那个 又 复杂 又 用不上 性能 还 不好 就 抛弃 掉 了 就 不想 去 支持 c 口 只 去 支持 一些 简单 的 这个 定制 化 的 一些 比如说 keyvalue 建制 对 啊 比如说 像 mongodb 是 吧 有 个 document 这样 的 这种 格式 但 我们 的 一个 特点 就是 因为 最近 几年 大家 随着 即使 是 互联网 公司 的 业务 也 变得 越来越 复杂 就 很多 银行 可能 都 推出 了 互联网 银行 的 服务 比如说 支付 或者说 而且 随着 这些 业务 越来越 复杂 了 以后 大家 发现 用 siko 来 去 表达 很多 业务 逻辑 仍然 是 程序员 们 最 喜欢 或者说 最 简单 的 大家 想象 一下 如果 你 有 个 特别 复杂 的 一个 应用 如果 你 现在 只有 keyvalue 的 api 你 可能 实现 起来 会 特别 麻烦 但是 很多 事情 你 用 sql 简单 的 关联 join 一下 可能 这个 结果 就 出来 了 所以 我们 的 一个 想法 就是说 我 还是 像 传统 的 数据库 一样 提供 SQL 但是 我 在 底层 去 借鉴 了 很多 刚才 说 的 像 谷歌 的 这 一派 的 这种 sharenothing 的 这个 思想 把 它 融合 起来 其实 这个 是 我们 的 一个 特别 大 的 一个 创新 对 也 是 新 的 新 的 变化 对 我们
刚才 这个 有点 发散 啊 我们 说 到 20 年前 谷歌 引领 了 这么 一种 变化 啊 那 后面 在 之后 有 什么 新 变化 吗 从 历史
上 来说 我 觉得 第一个 变化 就是 我 刚才 说 到 的 大家 突然 又 发现 SQL 又 特别 好 了 就是 中间 有 一段时间 大家 知道 这个 数据库 的 领域 里 有 一个 思想 叫 noSQL 就是 不要 SQL 但是 很多 人 觉得 是 不要 SQL 但 其实 官方 的 解释 是 notonlySQL 然后 这
我 还 真不知道 啊 所以 noSQL 是
notonlySQL 是 吗 notonlySQL 这是 标准 说法 非常 正确 的 说法 这 是 但 最近 大家 又 发现 可能 最近 这 五六年 七八年 又 发现 哦 sickleneverdie 或者 sickleisstillthebest 就是 大家 又 开始 怀念 sickle 其实 我 觉得 这个 这是 第一个 从 使用者 的 角度 来说 第一个 trend 第二个 trend 是 我 是 觉得 数据中心 的 这些 hardware 在 数据中心 本身 的 硬件 的 技术 有 一个 巨大 的 提升 以前 像 这种 分布式 的 数据库 最大 的 挑战 比如说 是 网络 的 带宽 大家 可能 如果 是 做 过 数据中心 的 朋友 可能 知道 过去 可能 10 年 20 年前 主流 的 网络设备 可能 是 一个 百兆 是 千兆 千兆 的 交换机 可能 就 比较 主流 了 但是 现在 如果 去 看 的话 这 10 年 像 这种 万兆 甚至 20 个 G 这样 的 这种 网络设备 其实 已经 都 开始 慢慢 去 普及 所以 数据中心 里边 的 网络 的 设备 网络 的 带宽 其实 是 基本上 这个 吞吐 能 做到 很大 很大 这是 第一个 点 就是 网络 本身 吞吐 的 瓶颈 是 基本 可以 被 解决 同个 数据中心 里边 第二个 硬件 上 的 我 觉得 特别 大 的 变化 就是 SSD 的 普及 就是 固态 硬盘 和 尤其 像 这种 flash 这种 闪存 的 这种 固态 硬盘 对 固态 硬盘 固态 硬盘 里面 都 是 闪存 是 的 是 的 然后 随着 它 的 价格 其实 现在 已经 越来越 便宜 而且 大家 都 去 使用 所以 本地 磁盘 的 写入 的 这个 吞吐 和 延迟 比 机械 磁盘 的 时代 进步 了 两个 数量级 可能 都 不止 所以 我 觉得 一个 是 磁盘 一个 是 网络 基本上 让 做 这种 可用 的 分布式 数据库 的 底层 的 硬件 的 环境 已经 成熟 了 我 觉得 这是 第二个 特别 大 的 一个 趋势 去 变化 可能 是 20 年前 没有 的 一个 东西 这个 其实 大概 都
是 在 10 年前 发生 的 事情 你 说 网络 突然 爆发式 的 增长 还有 固态 硬盘 的 普及 大概 都
是 在 10 年前 是 的 所以 相当于 底层 这些 硬件 环境 变化 了 以后 我们 可以 去 重新 思考 原来 那些 可能 在 比如 像 SICO 当时 没有 办法 在 一个 分布式系统 上 很 好 的 实现 特别 重要 的 一个 原因 就是 有些 思考 如果 你 写 不好 的话 它会 在 网络 里边 交换 数据交换 的 特别 多 比如说 你 要 写个 join 或者说 写 一个 两张 大表 交叉 的 去 查询 你 会 发现 如果 是 传统 的 网络 它 可能 就 卡死 了 但是 现在 可能 有 很多 原来 发现 没有 办法 忍 的 workload 在 新 的 这种 硬件 和 新 的 这种 现代 的 数据中心 上 基本上 可以 接近 本地 在 单机 上 运行 的 这种 体验 我 当时 其实 发现 了 这个 趋势 了 以后 就 开始 在 想 那 我 能 不能 直接 利用 这些 新 的 这些 硬件 新 的 这种 假设 去 从头 再 去 做 一遍 这个 relationaldatabase 就是 这种 SQL 的 database 但是 呢 是 用 这个 noSQL 这种 分布式 的 这个 思想 来 去 做 最后 发现 确实 能 做 出来 而且 有 很多 用户 用 了 以后 会 也 是 有 他 的 这个 很 好 的 一个 价值 对 所以 我 觉得 这是 一个 也 是 一个 变化 吧 前面 几集 说
过 一次 数据仓库 啊 数据仓库 其实 做 真正 分布式 的 数据仓库 是 更 早 的 一些 事情 我们 那集 提到 就 吐 槽 过 谷歌 的 MapReduce 这些 前 进一步 还是 后退 一步 的 事情 啊 但是 作为 运营 数据库 这边 啊 作为 我们 在线 你 的 你 的 应用 后面 的 数据库 这边 呢 这个 分布式 其实 是 一个 长期以来 是 一个 非常 少见 的 事情 比如说 就算 谷歌 来讲 谷歌 在 大概 10 年前 发表 了 他们 的 spanner 当然 他们 做 完 可能 比 那个 要 早 但是 他 发表 他们 的 spanner 的 paper 大家 都 是 眼前一亮 是 吧 就 觉得 我全 可以 做到 这样 但是 spanner 还 并 不能 算 完完全全 的 像 东旭 说 的 就 像 一台 机器 一样 他 还 并 不能 做到 这 一点 在 过去 几年 你 会 觉得 生产 系统 里 做 这样 的 事情 其实 并不多 是 吧 用 的 并不多 其实 是 一个 还是 一个 非常 非常 新 的 一个 课题 对 是 的
其实 比较 前沿 我 觉得 其实 斯 德拉 刚才 提 的 挺 好 就是 提到 spanner 是 201 年 发表 的 paper 到 现在 正好 10 年 多一点点 这 10 年 其实 还 发生 了 一个 变化 就是 比如说 像 包括 我们 在 做 的 东西 比如 TIDB 包括 可能 有 很多 其他 小伙伴 也 可能 或多或少 听说 过 其他 的 这种 distributedSQLdatabase 我 觉得 第一个 趋势 就是 比起 Spanner 因为 Spanner 是 第一个 主流 的 这种 系统 这 十几年 大家 会 发现 新一代 的 Spanner 的 后继者 们 开始 长得 越来越 像 刚才 我 说 的 传统 的 这些 SQL 的 数据库 就是 刚才 苏 亚瑟 说 的 Spanner 开 了 个头 但 它 其实 并 不是 一个 fullfeature 的 SQL 没错 它 其实 只能 提供 一些 比较简单 的 一些 能力 但 现在 随着 这 十几年 发展 大家 添砖加瓦 越来越 开始 向 传统 的 东西 也 就是 Spanner 我 觉得 它 原始 的 设计 目标 去 做 这 里面 其实 还有 一个 特别 有意思 的 一个点 为什么 大家 会 喜欢 去 用 但 用 SQL 其实 是 很 自然 的 事情 因为 就 像 编程语言 大家 可能 刚上 大学 开始 学 编程 的 时候 就学 Java 或者说 就学 CE 一样 很多 人 其实 第一 开始 接触 这个 计算机 要 去 学习 操作 数据 基本上 都 是从 这种 sql 这种 数据库 开始 所以 他 其实 这个 习惯 已经 摆在 那 了 就是说 如果 你 的 作为 一个 数据库 能长 得 越 像 这个 relationaldatabase 它 其实 又 越 容易 使用 嘛 但 这 里面 其实 我 觉得 有 几个 挑战 其实 回到 刚才 那个 问题 里边 为什么 去 阻碍 了 很多 用户 去 广泛 的 去 使用 这样 的 一个 database 我 觉得 第一个 本身 其实 你 有 这么 大量 的 这个 数据 的 场景 其实 现在 还 不算 太 多 基本上 还是 在 一些 这种 互联网 公司 的 一些 比较 极端 的 一些 应用 场景 里边 比如说 就 像 我 刚才 说 的 像 FacebookTwitter 这些 有 这么 海量 的 数据 所以 本身 它 应用 上 你 确实 会 比 普通 的 少 一些 第二个 就是 分布 数据库 刚才 其实 说 到 有 一个 思想 sharenothing 的 一个 思想 但 大家 有没有 想过 假设 有 一台 机器 比如说 存储 着 你 的 某 一部分 数据 的 机器 crash 了 或者说 这台 机器 可能 就 掉电 了 或者 网络 卡 了 然后 这个 时候 你 的 这个 数据 难道 比如说 可能 就 有 一部分 数据 丢掉 了 吗 是 吧 就是 这个 里边 其实 为什么 过去 这 十几年 看起来 不是 一个 特别 复杂 的 工作 但是 这个 花 了 很 长时间 去 做 出来 就是 因为 其实 在 一个 分布 仪 系统 里边 如何 保证 这个 数据库 就是 有 这种 selfhealing 或者说 autofailover 比如说 一台 机器 挂 了 我 我 的 数据
不能 丢 就是 容错 还是 叫容灾 是 吧 这 就是 专业 用词 对 其实
就 有点像 比如说 如果 你 把 这个 计算机 想象 成 一个 人 你 不能 说 我 的 手指 受 了 个 伤 结果 这个 人 就 死 了 是 吧 就 怎么 再 让 一个 这个 系统 拥有 自我 修复 自我 愈合 的 能力 其实 这个 理论 也 是 最近 这 10 年 才 渐渐 普及 起来 的 总体 来说 其实 这个 地方 的 一个 核心 的 思路 就是 我 一份 数据 我 不能 只存 一份 是 吧 这台 机上 的 这 一份 绝对 不能 是 独描 因为 这 里面 有个 假设 就是 任何 一台 机器 都 会 挂掉 是 吧 所以 每 一份 数据 你 可能 都 要 存 好几个 副本 好几个 copy 就 同样 的 数据 存
几份 三台 机器 一台 机器 存 一份 是 这个 意思 同样 的 都 是 一样 的 这样 一个 挂 了 我
还有 两个 对 一个 罐 还有 两个 其实 如果 大家 对 这个 web3blockchain 有点 熟悉 大家 听 这个 不 就是 区块 链 里面 这个 思想 没错 区块 链 用到 这个 底层 的 这种 共识 的 这个 算法 其实 在 区块 链 之前 第一个 在 计算机行业 广泛应用 的 就是 分布式
数据 现在 已经 用 区块 链来 解释
我 有点 震惊 啊 是 是 大家 可能 像 比较 有名 的 像 Paxos 或者 Raft 这种 比如说 刚才 我 说 到 其实 就是 一个 问题 你 在 一个 分布式 的 连在一起 的 几台 机器 里边 你 的 数据 存储 了 好几份 Copy 然后 你 怎么 保证 一台 机器 挂掉 或者说 两台 机器 挂掉 这种 不 健康 的 情况 下 你 的 数据 还是 一致 的 或者说 还是 不会 丢 的 而且 在 那台 挂掉 的 机器 比如说 不管 是因为 什么 原因 网络 抖动 什么 的 又 复活 了 这时候 他 可能 比 其他 两个 他 的 兄弟 可能 都 少 一部分 数据 但 在 这种 情况 下 怎么 去 自我 的 修复 所以 其实 刚才 我 说 到 了 一些 包括 像 刚才 我 说 的 一些 专有名词 什么 paxos 啊 rafter 这些 现代 的 数据 复制 算法 就是 来 干 这件 事情 的 就是 让 这个 系统 能够 拥有 自我 愈合 跟 自我 修复 的 这个 能力 这种 分布式 的 共识 算法 其实 不要 小看 这些 东西 听 起来 挺 简单 的 对 吧 听 起来 不 就是 一份 数据 考 三份 吗 对 嗯 哎 我
来 举个 例子 啊 比如说 我们 是 一个 卖鞋 的 啊 我们 的 数据库 就是 每个 鞋 还有 多少 多少 存货 对 吧 我 每次 卖 一双 鞋 我 就 减 一对 吧 那 我 卖 一双 鞋 我 存在 三台 机器 里面 他们 存 的 是 一样 的 吧 那么 我十双鞋 卖 了 一双 就 剩九双 了 对 吧 我 这 三台 机器 就 都 要 把 它 变成 九双 对 吧 那 我 肯定 是 要 一个 一个 写 吗 这个 我 给 他 写 一次 给 他 写给 他 给 他 写 完 一次 但 我 如果 要是 写 完 给 第一台 机器 写写 完 之后 那 他 挂
了 怎么办 呢 是 吧 刚才 斯 佩拉 用 了 一个 特别 好 的 例子 保证 强 一致 的 方法 假设 那 我 每 一次 我 跟 客户 返回 说 成功 我 一定 保证 三台 机器 全都 返回 成功 了 我 才能 跟 这个 客户 返回 成功 这是 一种 办法 对 不 对 因为 我 但凡 有 一台 机器 写 不 成功 那 我 就 完全 这个 就 抹掉 重来 对 吧 这个 你 永远 能 保证 只要 我 给 客户 返回 成功 那 一定 是 三台 都 是 一样 的 但 这种 情况 第一 他 大家 想想 写 成功 三台 其实 性能 太差 了 有点 冗余 另外 你 是 吧 你
另外 一台 它 卡 了 怎么办 呢 这 台卡 了 那 你 就 慢
了 对 吧 对 而且 经常 会 卡 所以 有没有 一些 办法 就是说 就 像 大家 举手表决 三个 人 或者 五个 人 只要 有 三个 保证 同意 或者 三个 人 里面 有 两个 保证 OK 另外 一个 就 不管 他 反正 少数 服从 多数 对 吧 这个 思路 其实 就是 现代 的 这种 刚才 说 的 分布式 的 这个 共识 算法 的 一个 核心 的 思路 就是 我 每次 只 写写 到 majority 就是 一个 比如说 3 的 majority 是 25 的 majority 是 3 对 吧 这样的话 它 就 能够 保证 在 这个 小 群体 里边 你 只要 不是 多数派 都 挂掉 你 如果 挂 比如 三个 副本 你 挂掉 一个 节点 没 问题 我 至少 保证 这 呃 两个 活着 的 兄弟 里面 还 能 至少 有 一个 这个 兄弟 有 最新 的 数据 对 不 对 比如说 我 每次 写 永远 写 两份 然后 你 任意 挂掉 一个 我 都 至少 保证 剩下 两个 活着 的 还有 一份 最新 的 所以 这个 其实 就是 很多 现代 的 consensus 算法 的 一个 基石 你 不用 写 完全 部 但是 你 要 保证 强 一致 的话 你 可以 写 majority 这个 是 一个 优化 吧 大家 不要 小看 这个 优化 这个 算法 其实 最早 是 那个 LeslieLampertPaxos 就是 那个 Paxos 那个 论文 其实 提出 这个 方法 的 那个 老大爷 图灵奖 获得者 对 他 就是 靠 研究 分布式系统 拿 的 图灵奖 说 起来 也 挺 简单 的 你 是 吧 就是 少数 服从 多数 呗
对 吧 其实 很 复杂 啊 有 很多很多 的 问题所在 啊 但 这个 地方
也 说 点 有意思 的 东西 就是 刚才 我 说 到 那个 现代 的 这种 consensus 就是 刚才 我们 说 的 这个 问题 叫做 consensus 分布式 的 一致性 或者说 分布式 的 共识 的 这个 问题 其实 刚才 我 提到 那个 LeslieLampert 就是 提出 那个 Paxos 算法 的 那个 老 教授 他 当时 在 提出 这个 算法 就是 相当于 现代 consensus 的 算法 的 鼻祖 吧 或者说 核心 的 这个 算法 的 那 篇 论文 他 写成 了 一个 用 了 一个 希腊 的 一个 古代 传说 中 的 小 城市 的 一个 一个 岛 Paxos 是 一个 岛 对 Paxos 是 个 岛 然后 那个 岛 里面 的 议会 的 一个 议事 的 一个 流程 的 一个 故事 相当于 他 写 了 一篇 预言 故事 然后 说 是 一篇 计算机 的 论文 然后 就 说 你 看 这么 简单 的 一个 东西 这 很 好 很 有意思 就 发出 来 以后 好像 这个 业界 没 人 看得懂 那个 Lampert 老爷子 就 说 你们 中国 人 真是 没 一点 幽默感 后来 又 写 了 几篇 论文
去 解释 普通 英语 写 然后 即使
写 了 那个 东西 写 了 计算机 科学家 熟悉 的 语言 写 出来 的 算法 的 论文 仍然 科学界 还是 觉得 这 东西 太 复杂 了 但是 开始 有 一部分 人能 理解 了 对 确实 这个 东西 很 厉害 然后 大概 是 201 3 年 Stanford 有个 博士生 觉得 Texas 这篇 论文 这个 算法 是 很 厉害 的 但是 他 太 难懂 了 他 就 设计 了 一个 更好 让 人 能够 去 理解 的 版本 的 分布式 共识 算法 然后 换 了 个 名字 叫 raft 然后 这个 算法 其实 我们 现在 也 在 用 着 啊 现在 有 很多 分 分数 一库 也 都 在 用 着 包括 现在 很多 区块 链 的 这个 底层 的 共识 算法 其实 也 是 raft 的 一个 kindof 变种 所以 说 有 很多 非常
里程碑式 的 重要 的 发现 都 是 一些 非常 古怪 的 人 提出 的 性格 非常 古怪 的 人 很多 人 说 认为 如果 他 性格 稍微 正常 一点 可能 很多年 前 就 可以 可以
找 很多年 你 的 图灵 强对 对 但 后来 Lamper 这个 老爷子 一直 坚持 说 你 看 我 这 东西 其实 超级 简单 对 所以 就是 不怪 我 是 怪 这个 世界 的 这个 你们 的 智商 怎么 这么 对 对 因为
非常 古怪 的 一件 事情 我 觉得 刚才 东西 说 有 一些 技术 啊, 就是 为什么 像 运营 数据库 这边 没有 像 分析 数据库 那么 早 的 流行 分布 数据库 可能 是 和 技术 还 没有 还 没有 到位 有关 还 没有 发展 到 有关 啊 没错 没错 我 觉得 这 肯定 是 很 有 道理 的 但是 你 刚才 说 起来 我 突然 意识 到 这个 跟 需求 也 有 一定 的 关系 因为 SQL 这个 东西 嘛 就是 可能 是 很多年 前七 八十年代 大家 的 学术界 的 共识 认为 SQL 是 未来 是 为什么 是因为 把 人 从 物理 的 就是 直接 操作 数据 的 这种 解放出来, 头脑 中 就是 数据 的 逻辑 了, 而 不是 你 怎么 存放 这些 数据 怎么 把 这些 数据 放在 硬盘 里, 这 东西 你 都 不用 担心 了 你 只用 担心 你 这个 数据 的 逻辑 就 可以 了 是 吧, 寻找 一个 名字 为 谁 的 一条 记录 什么 这样, 就是 一个 非常 抽象 的 一个, 这个 是 未来 但 这个 东西 呢 对于 分析 式 数据库 和 运营 数据库 的 他们 的 用户 是 不 太 一样 的 比如说 分析 型 数据库 有 很大 一部分 用户 他们 是 那些 数据 分析师 啊 或者说 过去 BI 那些 人 给 企业 做 决策 那些 人 那 帮人 不会 写 代码 只会 写 SQL, 只会 做 那些 非常 高层 的 查询 他们 这些 人 可能 在 比如说 08, 9 年 的 时候 他们 就 有 很 强 的 需求 认为 我 必须 要 写 SQL, 我 必须 写 SQL 要不然 我 就 就 不能 向 这些 人 推广 这些 新 技术 啊, 所以 所以 很快 的 项目 就是 Hive 这种 啊 就是 什么 我 当年 的 我 加入 我们 现在 这个 公司 的 第一个 项目 啊 他们 这些 就是 有 很 强 的 需求 大家 要 给 分析 使用 数据库 做出 SQL 啊, 他们 就 做出 这个 数据 来 那 反过来 呢 那 反过来说 对于 这些 运营 数据库 有 很大 一部分 就 大部分 的 用户 他们 是 谁 呢 他们 是 程序员 对 吧 因为 你 是 那些 开发 应用 那些 人 谁 开发 应用 是 程序员 在 开发 应用 是 他们 在 写 代码 是 他们 在 写 代码 查询 这些 数据库 啊 所以 他们 呢 他们 有 一定 的 这个 抗操 能力 是 吧 对抗
造 能力 没错 说 的 对 对
他们 就是说 呢 你 长得 不 像 同一个 数据库 呢 你 没有 SQL 呢 我 也 行 我 在 我 这个 层 就 处理 我 就 把 数据 分到 10 份 我 来 取 的 吧 要 没有 SQL 我 就 自己 写 forloop 我 就 自己 写个 循环 一个 一个 来 的 吧 所以 他们 有 一定 的 这个 有 一定 的 能够 把 这些 事情 对 容忍度 所以 这件 事情 他们 一直 都 可以 容忍 现在 你 可以 问 很多 成员 他们 也 会 觉得 我 都 可以 写 嘛 我 很 厉害 我 在 这边 我 就 分 了 嘛 我 就 写 了 对 吧 所以 现在 我 相信 东旭会 认为 你 在 推 这些 用户 的 时候 他们 依然 还是 有
一定 的 困难 是 这样 的 我 个人 感受 纯粹 个人 感受 就是 有 很多 应用 的 程序员 他会 低估 刚才 我 说 这件 事情 的 难度 就 比如说 怎么 保证数据 永远 不 丢 对 吧 就 像 我 刚才 说 的 这个 系统 可能 有待 节点 挂 了 然后 你 不能 说 这个 数据 丢 了 对 吧 第二个 很 经常 容易 被 人 忽视 或者说 忽略 的 一个 问题 就是 数据 本身 的 这个 conflict 的 时候 的 resolve 这种 conflicttransaction 就 比如说 你 要 去 做 一个 银行 转账 这样 的 一个 业务 逻辑 可能 很多 成员 说 这 太 简单 了 不 就是 你 的 账号 减 10 块钱 我 的 账号 加 10 块钱 就 这么 简单 吗 是 吧 当然 你 在 单机 的 系统 上 OK 你 做 这个 逻辑 很 简单 反正 一个 锁 可能 就 搞定 了 但是 这些 问题 一旦 放在 一个 分布式 的 一个 环境 里 就 会 特别 就 麻烦 比如说 刚才 我 说 你 同样 是 转账 这么 简单 的 业务 逻辑 比如说 你 A 账号 在 A 机器 上 B 账号 在 B 机器 上当 你 的 A 账号 扣 了 10 块钱 成功 了 但 你 要 去 在 B 账号 上加 10 块钱 的 时候 B 那台 机器 如果 挂掉 了 那 这时候 怎么办 对 吧 怎么 去 把 这个 账 搞平 更 复杂 的 一个 我们 再 把 这个 问题 再 加大 一点 难度 就是 同时 有 几个 人 在 操作 这个 账户 有 一些 人 成功 了 有 一些 人 失败 了 比如说 他 刚才 说 的 那个 问题 并 不是 说 一个 BGT 直接 就 挂掉 了 他 可能 对于 某 一些 请求 还 能 处理 但是 这个 有 一些 请求 处理 不了 这时候 两边 可能 会 有 一个 conflict 你 怎么 去 确保 这个 conflict 是 安全 的 所以 其实 可能 我 我 刚才 说 的 这 几个 问题 都 是因为 在 过去 可能 大家 在 普通 的 业务 里面 很少 有 这样 的 这些 比如说 像 推特 是 吧 有 可能 说 我 一条 推 特别 人 看不见 无所谓 了 是 吧 大不了 这个 让 大家 再发 一遍 但是 一旦 涉及 到 一些 应用 可能 像 金融 或者 像 就是 钱 或者说 这个 商业 相关 的 东西 的 时候 大家 就 就 开始 要 去 思考 这些 问题 而且 像 我 刚才 说 的 传统 数据库 已经 存 不下 这么 大 的 数据 了 于是 就 必须 得 有 像 我们 这样 的 厂商 来 去 帮助 大家 去 把 这些 问题 给 解决 掉 不然 太 复杂 了 对 你 说起 这个
我 想 起来 多少 年前 啊 大概 是 哇 好多年 前 了 七八年 前有 一次 回国 见 一个 就是 某 著名 大 公司 的 员工 说 啊 我们 不 需要 付 不是 啊 是 我们 待 会 可以 聊着 是 什么 东西 啊 我 转账 很 容易 你 就 记住 先 扣钱 再 给钱 就行了 理解 就是 这样 我 有 两台 机器 我 从 假 的 账户 转 10 块钱 到 你 的 账户 假 的 账户 的 钱 是 在 一台 机器 上 你 的 账户 钱 在 另外 的 机器 上 你 转 的 时候 你 就 说 我 永远 从 假 的 先 扣钱 然后 再 给 你 是 吧 然后 我 再 给钱 是 的
因为 只要 你 能 确保 能 扣钱 就是说 你 扣钱 是 安全 的 你 加钱 其实 这个 永远 是 安全 的
是 吧 反正 我们 公司 不亏 别人 我 就 不管 了 某 著名 互联网 公司 的 员工 跟 我 说 的话 当然 了 他们 肯定 也 不是 说 就 钱 都 亏了 他们 肯定 后面 可能 有 一些 别的 方式 在 记录 在 给 你 用 别的 方式 在
那合账 什么 之类 的 我 想 表达 的 point 是 说 你 当然 可以 去 设计 一套 很 复杂 的 系统 去 保证 你 安全 的 完成 像 刚才 你 说 的 这些 比如 转账 的 事情 但是 呢 你 把 这些 事情 做 完 了 以后 你 回头 看 你 其实 发明 了 一个 分布式 数据库 很多 时候 对 所以 那 还 不如说 把 这个 问题 抽象 因为 这个 问题 其实 在 单机 的 时代 已经 被 sql 这些 已经 抽象 过 一次 了 对 吧 就是 明明 你 可以 比如说 就 像 你 刚才 说 有 个 特别 好 就是说 c 口 其实 是 一个 抽象 他 把 具体 的 实现 跟 你 要 表达 的 逻辑 给 分开 了 所以 明明 可以 说用 一个 已有 的 一个 semantic 去 表达 你 要 做 的 事情 很 简单 比如 写 三行 而 不是 说 我 在 后面 可能 要 达到 同样 的 效果 要 写 n 多个 服务 n 多个 code 这 都 做 不好 万一 扣错 钱 了 那 可能 就 大家 心理压力 就 大 了 对 吧 所以
在 sql 里面 它 是 一个 怎么样 的 借口 来 解决 这个 扣钱 的 问题 呢 transaction 嘛 就 transaction 啊
叫 事物 begintransaction 然后 你 可以 做 多条 操作 最后 commit 然后 他会 保证 这 多条 操作 要么 全 成功 要么
全 失败 所以 说 这个 就 叫 一个 事物 就是 我 一个 开始 一个 事物 转账 对 转账 我 开始 一个 事物 我 就 说 把 A 的 钱 扣 10 把 B 的 钱
扣 10B 的 钱加 10 然后 最后
呢 我 说 在 执行 前 这个 钱 都 还 没有 扣 但 执行 的 时候 就 要不然 两个 都 成功 要不然 两个 都 失败 就是 这件 事情 让 数据库 保证 让 SQL 语言 的 标准 保证 这件 事情 扣钱 和 加钱 这 两件 事情 是 同时 完成 的
这 就是 一个 事物 对 吧 对 是 一个 事物 其实 这个 在 单机 系统 上 很 好 实现 也 不好 实现, 但是 在 分布式系统 里面 它 其实 它会 一个 更加 复杂 的 面貌 呈现 出来 所以 anyway 这个 是 一个 特别 大 的 挑战 嘛 其实 最近 这 几年 我 觉得 说点 稍微 有 一点点 技术 的 东西 因为 我 本身 我 的 专业 是 分布式系统 其实 我 想来想去 其实 分布式系统 整个 这个 大 的 学科 无非 就是 在 研究 几件 事情 第一 数据 怎么 分布 的 第二 就是 怎么 在 分布 的 系统 上 保证 这个 数据 的 一致性 其实 大概 就 这 两件 事情 其他 的 这个 都 没什么 好 说 的 那 给 大家 稍微
讲 一 讲 这个 分布式 的 事物
怎么 完成 的 就 不用 计算机 的 语言 我用 一个 现实生活 中 大家 更能 听得懂 的 例子 假设 我 是 一个 公司 的 小组长 然后 呢 我 明天 我 想要 去 带 着 我 的 团队 的 所有人 去 团建 去 看
电影 团建 看 电影 有点 亏 啊
我 的 小组 有 5 个人 假设 有 5 个人 你 可能 认为 这个 你 如果 是 按照 刚才 转账 案 的 例子 的话 就是 可能 5 个 账号 就是 involve 的 这个 账号 有 5 个 账号 啊 反正 大家 在 我 看 电影 这个 例子 里 5 个人 我 这个 要求 是 要么 大家 都 去 因为 我 不想 这个 落下 任何 一个 人 要么 都 不 去 是 吧 如果 但凡 有 一个 人 明天 感冒 发烧 或者说 任何 原因 不去 或者说 有会 啊 什么 的 那 我们 大家 明天 就 不 去 了 如果 大家 所有人 都 有空 我们 就 去 看 电影 其实 这个 就 相当于 个 事物 要么 全去 要么 都 不 去 这时候 假设 大家 想象 一下 如果 你 是 我 应该 怎么 去 完成 这件 事情 呢 其实 很 简单 我 只要 问 两轮 问题 第一轮 是 我 先 挨个 跟 我 5 个 小组 的 成员 每个 都 问 说 哥们 你 明天 有空 吗 如果 你 有空 的话 就是 明天 那 段时间 你 要 给 我 留 着 是 吧 就 8 到 9 点 这个 晚上 8 到 9 点 有空 好 你 如果 有空 的话 你 就 不要 动 把 那个 时间 给 我 留 着 每个 人 挨个 问 一圈 确保 每个 人 这个 8 到 9 点 这个 时间 都 有空 然后 我 相当于 收集 到 了 好 每个 人 8 到 9 点 时间 都 有空 我 再 问 一轮 问题 不 叫 问 就 直接 告诉 他 大家 好 明天 8 9 点 刚才 你 给 我 预留 的 时间 明天 我们 去 某某 地方 看 电影 是 吧 因为 我 已经 在 第一轮 的 问题 询问 中 确保 了 8 9 点 这个 时间 空档 大家 都 有空 所以 我 能够 确保 这个 timeslot 大家 都 是 ok 的 因为 只要 但凡 有 一个 人 告诉 我 说 哎 不好意思 我 8 9 点 这个 没空 我 就 可以 在 第二轮 的 时候 告诉 大家 说 明天 要 不别 去 要 不 重新 大家 再 进行 一轮 这个 时间 的 磋商 是 吧 所以 其实 原理 是 一样 的 在 计算机 里边 其实 在 这个 刚才 我 说 的 这种 分布式 事物 的 问题 里 就 跟 刚才 我 说 的 那个 看 电影 去 大家 约 时间 的 思路 是 一样 的 这 在 专业 数据 里 叫 两 阶段 提交 其实 两 阶段 很 好 理解 第一阶段 先 大家 先 哎 这个 锁住 自己 的 时间 啊 第二轮 就是 具体 的 去 把 要 做 那个 东西 commit
上去 搞 两轮 那 不是 慢 很多
吗 对 所以 慢 很多 没错 这个 就是 为什么 在 一个 分布 系统 里面 实现 分布式 失误 如果 以前 你 的 网络 的 设备 不是 那么 太好 吞吐 不行 或者 这个 latency 你 会 明显 感觉 为什么 这么 慢对 吧 其实 这个 就是 慢 的 核心 原因 之一 因为 第一次 他 要 走 网络 第二 他 还要 走 两轮 这个 就是 分布式 失误 但 这个 就是 一个 代价 就 相当于 如果 你 要 一致性 那 你 肯定 就 得 牺牲 点 什么 是 吧 在 这个 case 里边 你 牺牲 掉 就是 两轮 问 的 这个 这个 延迟
对 所以 这个 技术 啊 叫 两 阶段 提交 这个 技术 其实 是 一个 非常 古老 的 技术 远远 早 于 这个 谷歌 这个 潮流 啊 那就是说 这个 技术 就是 突然 开始 认为 大家 可以 广泛应用 于 日常 的 查询 过去 可能 是 有 一些 查询 但是 可以 广泛 用于 普通 的 查询 东旭 认为 是因为 现在 硬件 的 水平 提高 了 认为 他们 的 性能 是 可以 达到 日常
使用 的 程度 了 是 的 是 的 我 其实 我 觉得 最 重要 的 改变 吧 就是 对于 分布式系统 的 研究者 或者说 这种 软件 的 开发者 来说 大家 应该 感谢 过去 这 20 年 这个 硬件 的 突飞猛进 包括 网络设备 包括 这个 SSD 什么 的 对 我们 最
开始 提到 的 问题 就是说 这个 我们 表格 太大 了 一台 机器 分 不下 对 吧 我 可以 手动 的 把 它 这 一半 这 一半 那 这 肯定 是 不 像 一个 数据库 对 吧 那 这个 问题 分布式 数据库 怎么 解决 呢 他 怎么 搞 呢 就
以 我们 自己 做 的 这个 软件 为 例子 吧 就 Tidybee 这个 软件 去 解决 刚才 你 说 这个 分片 的 思路 跟 很多 其他 是 不 一样 的 我 先 说 我们 自己 的 流派 是 什么 呃 大家 可能 有 听说 过 一种 数据库 叫做 keyvalue 数据库 建制 队 就是 切斯 威尔特 你 肯定 特别 熟悉 是 吧 keyvalue 他 的 这个 思想 有点像 字典 大家 用 了 新华字典 是 吧 哎 这个 字典 按照 拼音 的 这个 顺序 反正 这个 从 a 到 z 就 就 就 这么 排下来 我们 在 做 的 一个 思路 就是说 不管 你 的 上面 看到 的 这些 表格 长得 多 复杂 是 什么 样子 我们 通过 一种 映射 就是 比如说 你 这个 数据 不管 多 复杂 我 都 把 它 映射 成为 一个个 建制 队 就 像 字典 里面 的
一个个 item 比如说 你 的 学号 或者说 是 什么 用户名 我 给 他 除 一个 几除 一个 9 看余 几几 号 就是 去 几台 机器 比如说 这 样子
是 的 然后 相当于 你 就 会 得到 了 一个 从负 无穷 到 正 无穷的 一个 巨大 的 一个 一个 keyspace 一个 建制 队 的 空间 然后 在 建制 队上 的 这个 切分 方法 就 很 简单 了 就 像 字典 一样 我 从 A 到 B 是 一个 范围 我 从 B 到 C 是 一个 范围 从 C 到 D 是 一个 范围 就 这么 把 一个 复杂 的 模型 映射 到 一个 简单 模型 再 在 这个 简单 模型 上去 做 切分 然后 塞到 不同 的 机器 上
就是说 你 把 它 映射 我 说 的 还 不 太 对 不是 储 就是说 你 怎么 能够 把 它 怎么 能够 把 名字 变成 一个 数 变成 一个 我 想想 怎么 说 一个 把
一个 复杂 的 一个 多维 的 数据
变成 多维 的 数据 呀 这 有点 深 了 这个 多维 的 数据 能够 变成 啊 这个 部分 我们 就 不管 了 把 它 变成 就是 一个 就 变成 一串 字母 但 字母 是 有 顺序 的 对 吗 叉子 眼 顺序 然后 按照 这个 字母 的 顺序 你 就 把 它 分 就行了 啊 别的 你 先 啊 他 这么 分 也 不 容易 啊 你 看 我们 的 新华 字里 不是 新华字典 了 比如说 我们 的 英汉词典 对 吧 你 a 到 z 你 a 这么 多 z 这么 少 x 这么 少 对 吧 这 怎么 分 呢 我 不能 iabc 啊
其实 这个 地方 也 很 有意思 你 想象 一下 我 不是 一个 静态 的 字典 我 是 一个 动态 的 字典 这个 字典 一 开始 只有 一个 当 你 的 数据量 不大 的 时候 他
只有 就 A 到 Z 都 放在 同一 本书 里 啊 不 对 同一 本书 了 同一 台 机器 里 啊
然后 你 不停 的 往 这个 A 到 Z 的 这个 空间 里 写 东西 写 到 一定 程度 你 发现 这个 太大 了 然后 我 这个 系统 就 像 细胞分裂 一样 他 在 中间 自动 切 一刀切 成 两半 切成 两半 啊 啊 对, 成 两半 就 有点像 我 不 知道 大家 有没有 喜欢 中国 古典 哲学 的 看过 这个 《 道德经 》 的 这个 朋友 道生 一 一生 二生 三 三生 万物 那 不行 啊
二 怎么 能 生出 三来 呢 你 得 道 生一 一生 四四 生 八八 生 万物 才行 这 有点像 那个 什么 八卦 是 吧 那句话 怎么 说来 着 两 一生 八卦 什么 生 太极 三生
八卦 是 吧
对 一倍 二倍 三是 吧 你 先得 比较 大 那个 分成 三是 吧 三个 一个 一个 来 是
的 他 会 中间 砍 一刀 就是 真的 就 像 细胞分裂 一样 所以 分 出来 的 那个 range 又 会 比如说 他 负责 这 一小 段 然后 但 你 的 如果 不停 的 往 这小段 再 去 写 的话 他 在 超过 他 的 这个 细胞 的 这个 大小 之后 又 会切 一刀 然后 整个 系统 我 还 设计 了 一个 像 脑子 一样 的 东西 脑子 的 东西 它会 一直 观察 像 培养皿 一样 的 这些 细胞 在 分裂 然后 就 不停 的 去 调度 比如说 我 发现 某台 机器 有太多 这样 的 细胞 了 就 赶紧 让 抓 一些 细胞 到 另外 几台 机器 上 让 整个 系统 看上去 是 比较 均衡 的 所以 Tidybee 就 我们 的 数据库 在 去 解决 这个 问题 的 时候 用 的 方法 我 是 觉得 是 很 有意思 的 当然 这是 我们 的 流派 另外 一些 流派 可能 就是说 在 应用层 比如说 这个 表 叫做 A 表 这个 在 A 机制 上 B 表在 B 机制 上 是 一些 比较简单 的 这个 分布 方式 但是 我们 的话 是 一个 更加 像 这个 细胞 或者说 刚才 我 说 的 这种 方式
这个 听 上去 还 非常 有意思 就是说 比如说 你 这 一块 是 50 兆 到 10 兆 之间 然后 就 相当于 你 一到 10 兆 就 把 它 分成 一小块 就 把 它 分成 两个 50 兆 是 吧 然后 你 又 涨涨 涨涨 涨涨 涨涨 涨涨 涨涨 涨涨 涨涨 涨涨 涨涨 涨涨 涨涨 涨涨 涨涨 涨涨 涨涨 涨涨 涨涨 涨涨 涨涨 涨涨 涨涨 涨涨 涨涨 涨涨 涨涨 涨涨 涨涨 涨涨 涨涨 涨涨 涨涨 涨涨 涨涨 涨涨 涨涨 涨涨 涨涨 涨涨 涨涨 涨涨 涨涨 涨涨 涨涨 涨涨 涨涨 涨涨 涨涨
平均 的 好处 就是 因为 我们 的 像 细胞 是 吧 这个 细胞 其实 一它 很小 它 不太大 是 吧 现在 目前 来说 刚才 你 说 那个 数字 都 很 对 我们 一个 像 这样 的 分片 或者 一个 这样 的 细胞 大概 是 96 兆 所以 你 想象 一下 在 一个 大 系统 里边 移动 96 兆 的 数据 其实 基本上 就是 就 很快 或者说 它 的 这个 balance 就是 这个 细胞 在 这个 系统 之间 游走 的 这个 动作 会 变得 非常 平滑 而 不是 说 哎 我 有 一张 表 10 个 G 是 吧 当 我 要 去 做 这个 移动 的 时候 我要 我 要 赶紧 移动 10 个 G 的 数据 但 我 现在 可以 说 这 10 个 G 分成 若干个 10 兆 10 兆 的 小块 就 慢慢来 这个 速度 可以 调 所以 就是 化整为零 有 化整为零 的 好处 就 像 人体 是 吧 就 像 刚才 我 说 的 手指 被 割伤 了 他 不会 让 你 去 换 整个 手指 而是 说 我 就是 那 块 皮肤 上 破损 的 皮肤 的 细胞 慢慢 在 愈合 起来 所以 就 像 我们 的 这个 系统 因为 他 选择 了 这个 很小 的 这种 分片 所以 他 的 这个 就让 我 说 伤口 的 愈合 速度 以及 这个 balance 的 就 拓展 的 这个 过程 都 会 变得 更加 顺滑 对 非常 有意思 啊
我们 刚才 说 到 了 这个 分布式 数据库 啊 已经 有 一定 进展 的 克服 的 三个 难点 是 吧 一个 是 说 它 的 这个 数据 的 一致性 是 吧 应该 叫 什么 consensus
共识 叫 共识 共识 啊 数据 的
共识 怎么 三台 机器 就 放在 一起 还有 一个 叫 事物 啊 叫做 怎么 能够 转账 转 的 就是 不 丢钱 啊 不 多 给钱 不少 给钱 不多 钱 还有 一个 就是 叫做 叫 什么 叫 分块 啊 叫 分块 分库 分表 不 知道 怎么 这 国内 这个 词 英语 叫 partition 啊 这 三个 问题 是 有 了 一定 的 这个 进展 啊 那 有没有 什么 还是 有 一些 没有 完全 解决 的 问题 还是 遇到 了 一些 挑战 呢 嗯, 我 觉得
第一个 特别 大 的 挑战 就是 这边 刚才 其实 斯特里 亚特 也 聊到 了 目前 很多 这种 在 还 在 单机 上 使用 的 应用 吧 当 他 迁移 到 这种 分布式 的 时候 他 就 会 发现 比如说 像 转账 原来 可能 你 觉得 一 毫秒 就 完成 了 但是 可能 刚才 因为 有 分布 失误 这 种种 的 问题 它 的 latency 它 的 延迟 就 相当于 一下 就 大 了 10 倍 可能 有 一些 应用程序 他 觉得 太慢 了 我 也 忍 不了 是 吧 所以 性能 上 可能 我 觉得 第 1 个 挑战 就是说 这种 传统 的 开发 的 模式 怎么 去 适应 这种 新 的 这些 分布式 数据库 的 开发 的 最佳 实践 就 像 可能 过去 大家 开 汽油车 开多 了 对 吧 汽油车 有 很多 汽油车 的 特点 但 突然 告诉 你 明天 你 要 开始 开 电动车 了 虽然 电动车 有 它 特别 好 的 地方 但是 电动车 它 也 有 它 不好 的 地方 是 吧 整天 有 里程 焦虑 什么 的 所以 像 这种 习惯 的 改变 和 迁移 这会 是 一个 特别 大 的 挑战 电动车
还有 充电 我 觉得 这事 比 原来
麻烦 多 了 就是 是 吧 然后 第二个 就是 呃 我 觉得 是 一些 成本 原来 比如说 你 你 的 数据量 不 大 或者说 你 不用 那种 分布 制 的 这个 数据库 的 时候 你 可能 很多 这 一台 机就 搞定 了 但 现在 可能 你 要 去 开始 使用 分布 制 数据库 的 这种 应用 你 可能 一 上来 起步 就 好几 台 机器 而且 你 刚才 我 说 这 数据 的 冗余 要 多个 副本 这种 拷贝 是 吧 一下 成本 开销 就 会 上来 所以 它 有点像 一个 卡车 平时 你 可能 家用车 开 起来 很 方便 觉得 家用车 性能 特别 好 但 突然 现在 你 说 我 要 搞 一个 卡车 但 这些 卡车 的 一 是 它 可能 它贵 第二 可能 它 的 操控 可能 也 没有 原来 那么 好 所以 归根结底 刚才 这 两个 挑战 一个 成本 一个 性能 其实 都 跟 最后 你 要 在 什么 场景 去 使用 是 有关 的 所以 像 这种 最佳 实践 其实 是 我 觉得 得 要 去 说 清楚 对 这 是 反正 我 自己 的 第一个 挑战 第二个 挑战 的话 就是 我 是 觉得 现在 因为 像 这种 系统 分布 系统 本身 它 就 很 复杂 就 过去 可能 你 在 面对 一台 机器 的 时候 你 还 能 做做 调优 什么 的 但是 在 一个 可能 面向 成百上千 这个 这个 集群 的 时候 人能 做 的 事情 就 很 有限 了 所以 怎么 去 包括 分布 日 数据库 的 作者 开发者 像 我们 怎么 去 很 好 的 运营 运 维和 调优 整个 这样 的 系统 这 其实 也 是 个 特别 有意思 的 问题 因为 你 想 你 维护 一台 机器 跟 你 维护 10 台 机器 是 很 不 一样 的 状态 必须 要 上 AI
了 是 吧 要不然 就 搞不定 了
哦 没错 没错 真的 是 其实 到 最后 我 觉得 就是说 你 想 清楚 你 要 干什么 然后 AI 来 去 帮 你 说 哎 这个 数据 应该 怎么 分布 啊 什么 这 对 我 觉得 很快 我们 就 能 看到 这样 的 这个 未来 了 对 我 觉得 这 几个 挑战 吧 是 我 明显 能 看 得到 的 对 嗯 哎
我们 好像 好几个 嘉宾 他 聊 他们 领域 都 聊到 了 云源生 这件 事 啊 啊 云源生 这件 事 我 相信 你们 肯定 也 会 啊 是 吧 也 不会 幸免 啊 那 不会 是
聊起来 我 觉得 数据库 或者说 分布式 数据库 这个 领域 其实 是 就 最先 被 云 原生 的 技术 去 改造 的 一个 行业 包括 我们 现在 其实 已经 在 积极 的 拥抱 它 我们 刚 开始 的 时候 提到 刚才 说 的 这种 分布式 的 两个 流派 一个 流派 是 sharedisk 然后 第二个 流派 是 sharenothing 你 可以 认为 我们 过去 可能 好多年 一直 都 是 走 这个 sharenothing 的 路线 看到 的 都 是 一块块 分离 的 磁盘 每台 机器 是 吧 但是 云 他 改变 了 这个 事情 云 相当于 直接 给 我 提供 了 一个 非常 好 的 硬盘 云盘 对 非常 好 的 硬盘 而且 云盘 特别 便宜 比如说 大家 可能 知道 S3 是 吧 S3 的 存储 一个 TB 一个月 可能 也 就 20 美金 很 便宜 而且 计算资源 和 存储资源 都 是 payasyougo 弹性 的 你 按 需 付费 所以 一个 很 自然 的 想法 就是 哎 我 其实 我 不用 自己 去 想 这些 数据分布 啊 分散 的 这些 问题 至少 说 物理 存储 上 我 不用 考虑 这些 东西 我 相当于 直接 去 把 我 的 存储 换成 这个 云 的 给 我 的 像 S3 或者 像 这些 云盘 什么 的 这个 问题 不 就 就 解决 了 吗 剩下 可能 你 只要 去 做 一 做 这个 性能 上 的 这个 调优 可能 就 好 了 其实 这个 思路 也 是 现在 很多 云源生 的 分不出 一窟 在 尝试 的 这个 方向 就 又 从 一个 sharenothing 变成 了 一个 sharedisk 对
前面 我们 之前 一个 嘉宾 提到 过 天下大事 分久必合, 合久必分 这边 我 想到 一个
特别 有意思 的 梗 就是 在 早年 反正 个人 计算机 发明 之前 吧 我 忘 了 是 哪 一个 这个 IBM 还是 谁 一个 大佬 说 这个 世界 上 只会 需要 5 台 计算机 这个 世界 就 就 基本 够用 了 然后 后来 很多 人 就 因为 个人电脑 发明 了 以后 这个 反过来 回头 就 嘲笑 这个 结论 就是 你 看 现在 这个 但 我 明显 的 感觉 最近 这 几年 这句 话 用 另外 一种 方式 又 成立 了 就 可能 这个 数学 上 未来 只 需要 五朵 云 这个 云来 去 提供 所有 软件 的 底层 的 算力 或者说 底层 的 这个 平台 或者 服务 每 一台 我们 的 个人 计算机 可能 都 会 变成 一个 云 的 终端 它 可能 只是 个 显示器 但是 计算 存储 可能 都 在 这种 云 上面 所以 又 变回 了 这个 世界 上 可能 只 需要 5 台
引号 计算机 所以 说 什么 亚马逊 微软 谷歌 阿里 腾讯 和 华为 这 已经 6 个 了 像 死 掉 一个
之称 对 没错 没错 可能 也 是 6 个 对 anyway 但 我 觉得 这个 思路 是 ok 的 为什么 呢 因为 事实上 我 觉得 计算机 的 这个 软件 的 发展 啊 它 就是 一层 一层 的 抽象 就是 这个 抽象 越 简单 对于 这个 抽象 上层 的 人来 去 构建 应用 就 会 变得 越 简单 是 吧 比如说 为什么 分布 这个 数据库 会 很 有 前途 或者说 分数 库会 somehow 在 这种 大 数量 下好 用 就是 因为 他 把 这些 数据分布 的 这些 细节 给 隐藏 掉 抽象 成 了 一个 标准 的 sql 的 一个 能力 然后 让 用户 去 使用 云 其实 也 是 一样 的 云 相当于 是 把 这些 不同 计算机 之间 的 连接 和 算力 全都 抽象 成 了 一个 很 简单 的 一层 API 或者说 一层 能力 然后 别人 可以 基于 抽象 再 去 做 其他 事情 抽象 之下 云来 搞定 抽象 之上 你 来 去 构建 你 的 应用 所以 就 像 堆积 木 一样 对 我们 就
开始 聊到 这个 终于 提到 这个 观点 就是 按照 DavidDeWitt 一个 数据库 大佬 的 观点 认为 谷歌 他们 那些 从 Bigtable 到 Spanner 那些 全部都是 shareddisk 全都 是 共享 硬盘 的 这些 存储 啊 所以 我们 这个 东旭 也 开始 追随 这个 谷歌 长期以来 的 步伐 开始 这个 走 这个 啊 这个 跟 定义 有 关系
了 就是说 有 关系 因为 你 想 你 在 这个 sharedisk 之下 你 去 看 这个 sharedisk 是 怎么 实现 的
其实 也 是 sharethesame 这是 一个 现在 的 趋势 啊 云 原生 就是 要 使用 云 提供 的 这些 存储 而 不是 自己 管理 存储 啊 那 叫 云 管理 资助 那 就是 都 交给 一个 共享 的 一个 存储 来管 啊
是 是 所以 我 觉得 这个 是 反正 不管 是 数据仓库 也好 还是 数据库 也好 跟 数据 相关 的 这些 基础 软件 在 未来 肯定 都 会 被 云 重新 发明 一遍 对 这个 是 几乎 是 必然 的 一个 事情 当然 了 现在 其实 反正 ChatGDP 也 出来 了 这个 很多 事情 可能 都 不 需要 我们 来 做 了 ChatGDP 帮 我们 做 就 好 了 流 水库
这集 我们 讲 到 就是说 云 原生 还 讲 到 了 一些 比如说 像 什么 这个 可伸缩性 可 弹性 是 吧
Payasyougoserverless 对 啊 你 用 的 时候
再 花钱 不用 的 时候 给 你 把 这个 硬件 给 缩回来 啊 我 相信 你们 肯定 有 一个 类似 的
这种 想法 是 的 我们 已经 做 出来 了 就 serverless 而且 你 想像 serverless 其实 它 是 你 的 系统 先得 要 去 拥抱 完全 被 拥抱 云 因为 刚才 说 到 这个 你 不用 就 缩回来 缩到 不 花钱 这个 能力 只有 在 云上 能够 有 是 吧 你 不 可能 说 我 先 提前 给 你 买 10 台 服务器 你 说 不用 了 你 不 可能 退 给 厂家 是 吧 但是 在 云 上 你 可以 说 哎 我 现在 没有 这么 多 traffic 我 就 不 掏钱 对 不 对 所以 像 刚才 说 你 说 的 那种 产品 形态 叫 serverlessserverless 其实 是 构建 在 云 原生 技术 的 基础 之上 它 才 能够 让 serverless 这种 商业模式 变成
可能性 所以 说 现在 这个 分布式 的 这个 数据库 不是 流 数据库 了 就是 这些 运营 型 数据库 我们 叫 我
觉得 任何 都 会 我 憋 了
一集 没有 说 oltp 这个 词对 终于
开始 oltp 这个 数据库 也 开始 使用 这种 东西 了 对 对 原生 的 东西 是 的 我 觉得 这个 变 不了 只是 为什么 说 到 现在 我 觉得 是因为 OLTP 数据库 就是 这种 交易 型 数据库 运营 型 数据库 它 的 难度 或者说 对于 这个 系统 的 可靠性 稳定性 这些 包括 性能 的 要求 是 刚才 说 了 所有 的 其他 这些 系统 最高 的 比如说 像 你 分析 型 的 这种 你 可能 损坏 了 个 节点 那 无所谓 是 吧 这个 小数点 后面 这个 少 算错 了 一点点 也 无所谓 是 吧 但 交易 型 数据库 他们 本来 就 慢 对 本来 要慢 是 吧 挪 完 那种 查询
我 就 先 睡个 觉 明天 早上 再 看 是 吧 坏 了 再
算 一遍 是 比如说 你 这个 在 paypal 上 支付 一个 东西 有时候 是 5 秒钟 我 估计 你 都 等 不了 是 吧 为什么 这么 慢 5 秒钟 是不是 卡 了 对 啊 我们
说 的 挑战 啊 提到 说 从 单机版 到 这个 分布式 还是 有 很多 的 问题 要 解决 啊 还有 云 原生 带来 的 这个 新 的 机遇 还 没有 完全 的 消化 是 吧 挑战 两个 挑战 最后 我们 节目 会 问 每个 嘉宾 一个 问题 就是说 如果 我们 的 听众 朋友 说 这个 领域 好像 真好 我 想 进入 这个 领域 我 想 加入 这种 革命 他们 应该 做 哪些 准备 应该 怎么 能够 入行
我 觉得 如果 是 先 说 engineer 就是 工程师 程序员 对 首先 那个 刚才 说 到 如果 是 这种 分布式 的 这个 领域 谷歌 的 那 三篇 那 几篇 论文 肯定 是 要 好好 读 一下 的 我 觉得 这是 想要 去 从事 这个 方向 的 一个 基础 第二个 就是 我 是 觉得 其实 像 刚才 我 提到 的 一些 比喻 或者 一些 问题 这些 问题 大家 可以 回去 想一想 就是 如果 是 你 要 去 比如说 转账 是 吧 怎么 去 实现 这个 数据 不 丢 或者说 怎么 去 实现 这个 三个 副本 多个 副本 之间 的 这个 一致性 其实 像 这些 问题 都 是 很 好 的 去 启发 你 去 研究 这个 领域 的 一些 入门 的 问题 所以 我 觉得 包括 学习 任何 的 计算机 的 行业 最好 的 学习 方式 就是 自己 动手 去 解决问题 或者 自己 动手 去 做 一些 东西
在 哪能 做 这些 东西 听 上去 好像 非常 的 费 机器 非常 的 需要 实际 的 问题 其实 其实 很
简单 就 你 不 一定 说 要 这么 高性能 比如说 像 pex 的 时候 raft 你 完全 可以 其实 在 本地 就 就 两 两百 行 代码 就 实现 一个 很 简单 版本 的 就是 不 复杂 虽然 我 我 知道 这个 真正 在 工业界 它 没有 这么 简单 但是 这些 问题 本身 是 引导 你 去 不停 的 往 深处 去 看 的 这个 影子 我 当时 想 表达 的 地方 是 这个 就是 你 真正 动手 去 实现 一些 退 在 这 退 实现 的 这个 过程 中 就 像 我 刚才 说 的 这 所有 的 问题 什么 事物 啊 什么 一致性 啊 共识 啊 这些 东西 其实 都 是 你 本地 可能 几百 行 python 可能 就 能够 去 实现 出来 玩 的 东西 当然 了 但 肯定 不是 工业 级别 的 但 你 从 这个 开始 作为 入门 然后 你 不断 的 在 问 自己 说 我 怎么 把 这个 性能 提升 的 好 一点 我 怎么 去 把 这个 failure 的 时间 缩 的 短 一些 我 怎么 去 把 这个 scale 做 的 更 大 一些 你 就 不停 的 去 polish 这个 东西 然后 你 就 慢慢 发现自己 就 入门 了 所以 千万 不要 说 一个 上来 就 我 先读 10 篇 论文 或者 我 先 去 看 tidybee 的 几百万 行 代码 这 都 都 不要 费劲 所以 对 你们 这个 行业
看来 是 门槛 很 高 啊 自己
实现 一个 paxos 我 刚才 其实 就 想 echo 这个 说 哎 其实 好 简单 太 凡尔赛 了 是 吧 好
东西 还有 什么 想 说 的 吗
我 觉得 我 唯一 想 说 的 就是 呃 如果 是 一个月 前 或者 两个 月 前录 这个 podcast 的 我 可能 都 意识 不到 或者 不会 说 这个 东西 啊 但 现在 这个 时间 点像 ChatGPT 出来 了 以后 我 是 觉得 过去 刚才 说 了 很多 很 复杂 的 东西 包括 什么 paxos 的 这些 东西 哎 可能 我前 几天 真的 试 了 一下 让 那个 ChatGPT 帮 我 去 实现 一个 这个 分布式 的 一个 就 像 我 就 告诉 他 了 我 需要 实现 一个 高 可用 的 一个 分布式 存储 的 这个 伪 代码 应该 是 怎么样 写 他 自动 就 就 给 我 写 出来 所以 我 觉得 作为 engineer 吧 就是 chatgpt 或者说 这样 的 大 语言 模型 就是 他 不可避免 或者 是 他 其实 已经 已经 出现 了 所以 我们 就是 我 也 想 送给 这个 广大 的 听众 就是 各位 听众 朋友 赶紧 拥抱 AI 这个 或者说 至少 变成 一个 熟练 的 使用者 否则 很快 就要 被 拥抱 了
这个 听 上去 是 一个 非常 重要 的 建议 啊 就是 你 听 我们 的 节目 所有 节目 里面 听 如何 进入 这行 的 建议 不仅仅 要 要 实现 那些 建议 还要 还要 想一想 在 AI 时代 会 有 什么 变化 没错
没错 就是 这个 点 搞不好 可能 过 两年 我们 这个 行业 就 不 存在
了 我 是 个 悲观者 我 觉得 还是 会 存在 的 那 就 感谢 东旭 来到 我们 的 节目 给 我们 带来 精彩 的 分享 然后 他 亲身 的 经历 多少 年 的 学到 的 经验 给 我们 大家 来 分享 还有 他 的 对于 这个 领域 的 观察 有 非常 浅显 的 语言 来 给 大家 讲解 这些 事情 喜欢 我们 节目 请到 各大泛 用型部 和 平台 订阅 和 收听 我们 节目 我们 节目 也 有 志愿者 如果 愿意 给 我们 帮忙 可以 给 我们 发消息 我们 这些 信息 都 会 在 我们 的 shownote 里面 放 出来 我们 就 后会有期 了 拜拜










