大数据技术基础(2013版)

Similar documents
大数据技术基础

大数据技术基础(2013版)

7.1 MapReduce Offline Online 计 算 流 式 计 算 并 行 数 据 库 的 SQL 查 询 数 据 仓 库 复 杂 查 询 应 用 电 子 商

支付宝2011年 IT资产与费用预算

【附件:社群─申請表】(社群層級) 【四-四-五-1】

:,,?,?,,,,,,, 1 ( ) (. ) ( ) :,?? :,,,,, ( ) (. ) : (. ) ( ),,, ( ) ( ), (. ), ( ) ( ) - (. - ) (. ) ;, (. ) ( ),, ( ),,, : ( - ), ( - - ) ( ) (. ),,,

大数据技术基础(2013版)

分布式数据库技术(2011版)

大数据技术基础(2013版)

大数据技术基础(2013版)

(Microsoft Word - \244g\246a\247B\244\275\253H\245\365\244\247\275\325\254d\254\343\250s doc)

KV-cache 1 KV-cache Fig.1 WorkflowofKV-cache 2.2 Key-value Key ; Key Mem-cache (FIFO) Value Value Key Mem-cache ( Value 256B 100 MB 20%

Partition Key: 字 符 串 类 型, 表 示 当 前 Entity 的 分 区 信 息 这 个 Property 对 于 Table Service 自 动 纵 向 和 横 向 扩 展 至 关 重 要 Row Key: 字 符 串 类 型, 在 给 定 Partition Key 的

大数据技术基础(2013版)

水晶分析师

谷歌广告后台的重新编程实现 F1 使用了跨越美国的 5 个副本 绝大多数其他应用很可能 会在属于同一个地理范围内的 3-5 个数据中心内放置数据副本, 采用相对独立的失败模式 也就是说, 许多应用都会首先选择低延迟, 而不是高可用性, 只要系统能够从 1-2 个数据中 心失败中恢复过来 Spanne

支撑材料4.4.doc

课程整体教学设计指导意见

天天星期三

社 工 系 师 生 继 续 服 务 金 竹 林 儿 童 之 家.7 专 业 技 能 训 练 动 员 大 会..7 顶 岗 实 习 动 员 会 级 本 科 班 专 业 技 能 训 练...9 保 山 学 院 盈 江 青 爱 小 屋 支 教 行 级 政 本 班 德 育

簡 述 所 有 參 與 教 案 編 寫 人 員 之 學 經 歷 及 負 責 內 容 參 與 教 案 編 寫 人 員 魏 俊 陽 學 歷 經 歷 負 責 內 容 國 立 臺 灣 師 範 新 北 市 閩 南 語 教 案 編 寫 大 學 課 程 與 教 輔 導 團 教 學 者 學 研 究 所 博 士 新

信工学生工作简报 第四期.doc

2009杭州市小学地方课程

???h?????????W??????

党 政 投 资 基 金 落 户 上 城 区 曰 全 年 新 批 外 商 投 资 项 目 30 个 袁 实 际 利 用 外 资 万 美 元 曰 引 进 市 外 内 资 项 目 598 个 袁 实 际 到 位 资 金 亿 元 曰 推 进 区 市 协 作 工 程 袁 出 台 实 施

教学设计方案

任 务 单 一 ~2: 文 具 书 本 摆 整 齐, 争 得 自 理 星 争 星 要 求 : 文 具 用 品 摆 放 好, 书 本 叠 叠 放 整 齐 探 秘 任 务 一 ~2: 文 具 书 本 摆 整 齐, 争 得 自 理 星 任 务 1: 跟 小 辅 导 员 一 起 参 观 高 年 级 的 教

目 录 第 一 部 分 档 案 局 概 况 一 主 要 职 责 二 部 门 决 算 单 位 构 成 第 二 部 分 档 案 局 2016 年 度 部 门 预 算 表 一 2016 年 度 市 级 部 门 收 支 预 算 总 表 二 2016 年 度 市 级 部 门 支 出 预 算 表 三 2016

2015 年 度 收 入 支 出 决 算 总 表 单 位 名 称 : 北 京 市 朝 阳 区 卫 生 局 单 位 : 万 元 收 入 支 出 项 目 决 算 数 项 目 ( 按 功 能 分 类 ) 决 算 数 一 财 政 拨 款 一 一 般 公 共 服 务 支 出 二

國立屏東教育大學化學生物系

<4D F736F F D20C540A468BAC2BFEFB3F8A657B6B7AABE2E646F63>

水资源管理(十七)

审计署关于北京市密云县2012年机构运转支出情况的审计调查结果

2014zb9

(

中華民國山岳協會所屬隊會登山途徑說明

2009年总站工作计划-2009-0102

600247物华股份_ bnbqw.PDF

说 明 根 据 上 海 市 公 共 信 用 信 息 归 集 和 使 用 管 理 办 法 ( 沪 府 令 38 号 ) 和 上 海 市 地 方 标 准 全 过 程 信 用 管 理 要 求 第 3 部 分 : 应 用 清 单 编 制 指 南 相 关 要 求, 本 市 公 共 信 用 信 息 应 用 事

學 科 100% ( 為 單 複 選 題, 每 題 2.5 分, 共 100 分 ) 1. 請 參 閱 附 圖 作 答 : (A) 選 項 A (B) 選 項 B (C) 選 項 C (D) 選 項 D Ans:D 2. 下 列 對 於 資 料 庫 正 規 化 (Normalization) 的 敘

Microsoft Word newsletter.doc

目 录 第 一 部 分 中 国 地 质 大 学 ( 武 汉 )2016 年 学 生 工 作 要 点...1 一 总 体 要 求 及 思 路...2 ( 一 ) 总 体 要 求...2 ( 二 ) 基 本 思 路...2 二 重 点 任 务 及 举 措...3 ( 一 ) 加 强 思 想 政 治 教

苗 ) 种 质 资 源 进 出 口 的 审 批 工 作 ; 组 织 农 作 物 品 种 管 理, 拟 订 农 作 物 品 种 审 定 和 农 业 植 物 新 品 种 保 护 的 办 法 标 准, 承 担 农 作 物 品 种 审 定 登 记 和 农 业 植 物 新 品 种 授 权 复 审 工 作, 组

大数据技术原理与应用

游戏攻略大全(十).doc

游戏攻略大全(五十三).doc


二零一五年施政報告 - 施政綱領 - 第三章 扶貧及為弱勢社群提供支援

育 部 分 則 由 陳 淑 貞 委 員 及 李 兆 環 委 員 共 同 執 行, 在 此 先 感 謝 各 位 委 員 及 學 者 專 家 之 參 與 二 目 前 評 論 報 告 初 稿 之 架 構 區 分 為 對 政 府 機 關 回 應 意 見 之 觀 察 優 點 及 待 改 進 事 項, 以 及

<4D F736F F D20BACBB0B2C8ABD3EBB7C5C9E4D0D4CEDBC8BEB7C0D6CEA1B0CAAEB6FECEE5A1B1B9E6BBAEBCB C4EAD4B6BEB0C4BFB1EA2E646F63>

附 : 初 中 组 一 等 奖 (31 个 ): 天 河 外 国 语 学 校 中 山 大 学 附 属 中 学 番 禺 区 大 石 富 丽 中 学 广 东 实 验 中 学 附 属 天 河 学 校 花 都 区 实 验 中 学 增 城 区 凤 凰 城 中 英 文 学 校 广 州 市 执 信 中 学 花 都

<4F4BBEFAA576A470BBA15FC160AAED E786C73>

58, ,769 51,911 74,666 35, , , , ,

辽宁铁~1

壹、學校背景

保 险 公 司 金 富 月 盈 两 产 全 品 保 名 险 称 ( 分 红 型 ) 产 分 品 红 类 型 缴 费 年 类 缴 型 缴 10 费 年 期 缴 限 保 险 期 限 ( 年 ) 聚 富 2 号 两 全 保 险 ( 万 能 型 ) 万 能 型 趸 缴 趸 缴 6 年 龙 享 安 康 重 疾

I

海底捞你学不会

YEN/MIAO CHING MS 27FEB DEL HKG

Microsoft Word - 02文本.docx


案件

義 和 團 及 兪 國 聯 軍 之 役 課 題 學 習 指 引 : A. 思 考 課 題 有 人 說, 義 和 團 及 兪 國 聯 軍 之 役 是 中 國 近 代 史 的 分 水 嶺, 你 同 意 嗎? B. 思 考 方 向 滿 清 政 府 的 管 治 威 信 思 考 是 否 已 不 信 任 滿 清

最新监察执法全书(一百五十五).doc

游戏攻略大全(三十四).doc

掌握健康 掌握人生


草莓实用技术(一)

Microsoft Word - 【襪子流浪記】.docx

最新监察执法全书(十一).doc

钓鱼技巧_二_.doc

动物的智慧(五)

学位〔2013〕37号

海关法规(七).doc

健康知识(一)

Microsoft Word - 人民萬歲_宋玉雯.docx

北京(一)

穨ecr6_c_2.PDF

i

园林植物卷(九).doc

城市园林(上).doc

家装知识(四)

苗木的种植_四_.doc

认识植物(一)

蟹的养殖技术(一)

药用植物种植技术(二)

特种养殖实用技术(七)

司法鉴定工作手册(十八)

外科疾病诊治(三)

动物杂谈_三_.doc

(3) (4) (1) (2) (d) V-2

untitled

外科疾病诊治(十九)

新时期共青团工作实务全书(一百四十八)

外科疾病诊治(五)

案件

养虾小常识_二_.doc

养虾小常识_三_.doc

铁路管理规程(三)


Transcription:

大数据技术基础 厦门大学计算机科学系厦门大学计算机系林子雨 ziyulin@xmu.edu.cn 2013 年新版 2013 年 9 月修订版 厦门大学计算机科学系研究生课程 大数据技术基础 第 12 章 Google Spanner (2013 年新版 ) 林子雨 厦门大学计算机科学系 E-mail: ziyulin@xmu.edu.cn 主页 :http://www.cs.xmu.edu.cn/linziyu

提纲 Spanner 背景 与 BigTable Megastore 对比 Spanner 的功能 体系结构 Spanserver Directory 数据模型 TrueTime Spanner 并发控制 参考文献 本讲义 PPT 存在配套教材, 由林子雨通过大量阅读 收集 整理各种资料后编写而成下载配套教材请访问 大数据技术基础 2013 班级网站 :http://dblab.xmu.edu.cn/node/423

Spanner Spanner 是个可扩展, 多版本, 全球分布式还支持同步复制的数据库 他是 Google 的第一个可以全球扩展并且支持外部一致的事务 Spanner 能做到这些, 离不开一个用 GPS 和原子钟实现的时间 API 这个 API 能将数据中心之间的时间同步精确到 10ms 以内 主要功能 : 无锁读事务, 原子模式修改, 读历史数据无阻塞 大数据技术基础 厦门大学计算机系林子雨 ziyulin@xmu.edu.cn 2013 年 9 月修订版

Spanner 背景 要搞清楚 Spanner 原理, 先得了解 Spanner 在 Google 的定位 Spanner 位于 F1 和 GFS 之间, 承上启下

F1 和众多互联网公司一样, 在早期 Google 大量使用了 Mysql Mysql 是单机的, 可以用 Master-Slave 来容错, 分区来扩展 但是需要大量的手工运维工作, 有很多的限制 因此 Google 开发了一个可容错可扩展的 RDBMS F1 F1 有如下特点 : 7 24 高可用 哪怕某一个数据中心停止运转, 仍然可用 可以同时提供强一致性和弱一致 可扩展 支持 SQL 事务提交延迟 50-100ms, 读延迟 5-10ms, 高吞吐

Colossus(GFS II) Colossus 是第二代 GFS Colossus 是 Google 重要的基础设施, 因为他可以满足主流应用对 FS 的要求 Colossus 的重要改进有 : 优雅 Master 容错处理 ( 不再有 2s 的停止服务时间 ) Chunk 大小只有 1MB ( 对小文件很友好 ) Master 可以存储更多的 Metadata( 当 Chunk 从 64MB 变为 1MB 后, Metadata 会扩大 64 倍, 但是 Google 也解决了 ) Colossus 可以自动分区 Metadata 使用 Reed-Solomon 算法来复制, 可以将原先的 3 份减小到 1.5 份, 提高写的性能, 降低延迟 客户端来复制数据

与 BigTable Megastore 对比 Spanner 主要致力于跨数据中心的数据复制上, 同时也能提供数据库功能 BigTable 在 Google 得到了广泛的使用, 但是他不能提供较为复杂的 Schema, 还有在跨数据中心环境下的强一致性 Megastore 有类 RDBMS 的数据模型, 同时也支持同步复制, 但是他的吞吐量太差, 不能适应应用要求 Spanner 不再是类似 BigTable 的版本化 key-value 存储, 而是一个 临时多版本 的数据库 Google 官方认为 Spanner 是下一代 BigTable, 也是 Megastore 的继任者

Google Spanner 设计 功能 体系结构 Spanserver 目录与放置 数据模型 TrueTime Google Spanner 并发控制 大数据技术基础 厦门大学计算机系林子雨 ziyulin@xmu.edu.cn 2013 年 9 月修订版

功能 从高层看 Spanner 是通过 Paxos 状态机将分区好的数据分布在全球的 数据复制全球化的, 用户可以指定数据复制的份数和存储的地点 Spanner 可以在集群或者数据发生变化的时候将数据迁移到合适的地点, 做负载均衡 用户可以指定将数据分布在多个数据中心, 不过更多的数据中心将造成更多的延迟 用户需要在可靠性和延迟之间做权衡, 一般来说复制 1,2 个数据中心足以保证可靠性

功能 Spanner 提供一些有趣的特性 : 应用可以细粒度的指定数据分布的位置 Spanner 还有两个一般分布式数据库不具备的特性 : 读写的外部一致性, 基于时间戳的全局的读一致

体系结构 Spanner 由于是全球化的, 所以有两个其他分布式数据库没有的概念 Universe 一个 Spanner 部署实例称之为一个 Universe 目前全世界有 3 个 一个开发, 一个测试, 一个线上 因为一个 Universe 就能覆盖全球, 不需要多个 Zones. 每个 Zone 相当于一个数据中心, 一个 Zone 内部物理上必须在一起 而一个数据中心可能有多个 Zone 可以在运行时添加移除 Zone 一个 Zone 可以理解为一个 BigTable 部署实例

体系结构 Universemaster: 监控这个 universe 里 zone 级别的状态信息 Placement driver: 提供跨区数据迁移时管理功能 Zonemaster: 相当于 BigTable 的 Master 管理 Spanserver 上的数据 Location proxy: 存储数据的 Location 信息 客户端要先访问他才知道数据在那个 Spanserver 上 Spanserver: 相当于 BigTable 的 ThunkServer 用于存储数据

体系结构 Spanner 由于是全球化的, 所以有两个其他分布式数据库没有的概念 Universe 一个 Spanner 部署实例称之为一个 Universe 目前全世界有 3 个 一个开发, 一个测试, 一个线上 因为一个 Universe 就能覆盖全球, 不需要多个 Zones. 每个 Zone 相当于一个数据中心, 一个 Zone 内部物理上必须在一起 而一个数据中心可能有多个 Zone 可以在运行时添加移除 Zone 一个 Zone 可以理解为一个 BigTable 部署实例

Spanserver 大数据技术基础 厦门大学计算机系林子雨 ziyulin@xmu.edu.cn 2013 年 9 月修订版

Spanserver 从下往上看 每个数据中心会运行一套 Colossus (GFS II) 和 BigTable 不同的是 BigTable 里面的 tablet 存储的是 Key- Value 都是 string,spanner 存储的 Key 多了一个时间戳 : (Key: string, timestamp: int64) ->string 每个 Tablet 上会有一个 Paxos 状态机 Paxos 是一个分布式一致性协议 Table 的元数据和 log 都存储在上面 每个 leader replica 的 spanserver 上会实现一个 lock table 还管理并发 每个 leader replica 的 spanserver 上还有一个 transaction manager 大数据技术基础 厦门大学计算机系林子雨 ziyulin@xmu.edu.cn 2013 年 9 月修订版

Directory 之所以 Spanner 比 BigTable 有更强的扩展性, 在于 Spanner 还有一层抽象的概念 directory, directory 是一些 key-value 的集合, 一个 directory 里面的 key 有一样的前缀 更妥当的叫法是 bucketing Directory 是应用控制数据位置的最小单元, 可以通过谨慎的选择 Key 的前缀来控制, 以在 paxos group 里面移来移去 Directory 可以在不影响 client 的前提下, 在后台移动 Directory 是一个抽象的概念, 管理数据的单元 ; 而 tablet 是物理的东西, 数据文件 在 paxos group 之间移动 directory 是后台任务 这个操作还被用来移动 replicas Directory 还是记录地理位置的最小单元

数据模型 Spanner 的数据模型来自于 Google 内部的实践 在设计之初, Spanner 就决心有以下的特性 : 支持类似关系数据库的 schema Query 语句 支持广义上的事务 数据模型是建立在 directory 和 key-value 模型的抽象之上的 Spanner 的数据模型也不是纯正的关系模型, 每一行都必须有一列或多列组件 大数据技术基础 厦门大学计算机系林子雨 ziyulin@xmu.edu.cn 2013 年 9 月修订版

数据模型 上图是一个例子 对于一个典型的相册应用, 需要存储其用户和相册

TrueTime TrueTime API 是一个非常有创意的东西, 可以同步全球的时间 上表就是 TrueTime API TT.now() 可以获得一个绝对时间 TTinterval, 这个值和 UnixTime 是相同的, 同时还能够得到一个误差 e TT.after(t) 和 TT.before(t) 是基于 TT.now() 实现的

TrueTime TrueTime API 实现靠的是 GFS 和原子钟 实际部署的时候, 每个数据中心需要部署一些 Master 机器, 其他机器上需要有一个 slave 进程来从 Master 同步 每个 Slave 后台进程会每个 30 秒从若干个 Master 更新自己的时钟

Google Spanner 并发控制 Spanner 使用 TrueTime 来控制并发, 实现外部一致性 支持以下几种事务 读写事务 只读事务 快照读, 客户端提供时间戳 快照读, 客户端提供时间范围 大数据技术基础 厦门大学计算机系林子雨 ziyulin@xmu.edu.cn 2013 年 9 月修订版

Google Spanner 并发控制 单独的写操作都被实现为读写事务 ; 单独的非快照被实现为只读事务 时间戳的设计大大提高了只读事务的性能 对于快照读操作, 可以读取以前的数据, 需要客户端指定一个时间戳或者一个时间范围 Spanner 会找到一个已经充分更新好的 replica 上读取 还有一个有趣的特性的是, 对于只读事务, 如果执行到一半, 该 replica 出现了错误 客户端没有必要在本地缓存刚刚读过的时间, 因为是根据时间戳读取的 只要再用刚刚的时间戳读取, 就可以获得一样的结果

Google Spanner 并发控制 读写事务 正如 BigTable 一样,Spanner 的事务是会将所有的写操作先缓存起来, 在 Commit 的时候一次提交 这样的话, 就读不出在同一个事务中写的数据了 不过这没有关系, 因为 Spanner 的数据都是有版本的 在读写事务中使用 wound-wait 算法来避免死锁 leader 首先会上一个写锁, 他要找一个比现有事务晚的时间戳 通过 Paxos 记录 每一个相关的都要给 coordinator 发送他自己准备的那个时间戳 Coordinatorleader 一开始也会上个写锁, 当大家发送时间戳给他之后, 他就选择一个提交时间戳 这个 Coordinator 将这个信息记录到 Paxos 在让 replica 写入数据生效之前,coordinator 还有再等一会 需然后 coordinator 将提交时间戳发送给客户端还有其他的 replica 他们记录日志, 写入生效, 释放锁 大数据技术基础 厦门大学计算机系林子雨 ziyulin@xmu.edu.cn 2013 年 9 月修订版

Google Spanner 并发控制 只读事务 对于只读事务,Spanner 首先要指定一个读事务时间戳 还需要了解在这个读操作中, 需要访问的所有的读的 Key Spanner 可以自动确定 Key 的范围 如果 Key 的范围在一个 Paxos group 内 客户端可以发起一个只读请求给 group leader leader 选一个时间戳, 这个时间戳要比上一个事务的结束时间要大 然后读取相应的数据 这个事务可以满足外部一致性, 读出的结果是最后一次写的结果, 并且不会有不一致的数据 如果 Key 的范围在多个 Paxos group 内, 就相对复杂一些 其中一个比较复杂的例子是, 可以遍历所有的 group leaders, 寻找最近的事务发生的时间, 并读取 客户端只要时间戳在 TT.now().latest 之后就可以满足要求了 大数据技术基础 厦门大学计算机系林子雨 ziyulin@xmu.edu.cn 2013 年 9 月修订版

参考文献 [1] James C. Corbett, Jeffrey Dean, Michael Epstein, etc. Spanner: Google s Globally-Distributed Database.OSDI'2012.

主讲教师和助教 主讲教师 : 林子雨 单位 : 厦门大学计算机科学系 E-mail: ziyulin@xmu.edu.cn 个人网页 :http://www.cs.xmu.edu.cn/linziyu 数据库实验室网站 :http://dblab.xmu.edu.cn 助教 : 赖明星 单位 : 厦门大学计算机科学系数据库实验室 2011 级硕士研究生 ( 导师 : 林子雨 ) E-mail: mingxinglai@gmail.com 个人主页 :http://mingxinglai.com 欢迎访问 大数据技术基础 2013 班级网站 :http://dblab.xmu.edu.cn/node/423 本讲义 PPT 存在配套教材 大数据技术基础, 请到上面网站下载

Department of Computer Science, Xiamen University, Sep, 2013 大数据技术基础 厦门大学计算机系林子雨 ziyulin@xmu.edu.cn 2013 年 9 月修订版