编辑: 黎文定 | 2019-07-14 |
cs.xmu.edu.cn/linziyu
1 /
16 获取教材和讲义 PPT 等各种课程资料请访问 http://dblab.xmu.edu.cn/node/422 =课程教材由林子雨老师根据网络资料编著= 厦门大学计算机科学系教师 林子雨 编著 http://www.cs.xmu.edu.cn/linziyu
2013 年9月厦门大学计算机科学系研究生课程 《大数据技术基础》 主讲教师:林子雨 http://www.cs.xmu.edu.cn/linziyu
2 /
16 前言 本教程由厦门大学计算机科学系教师林子雨编著, 可以作为计算机专业研究生课程 《大 数据技术基础》的辅助教材. 本教程的主要内容包括:大数据概述、大数据处理模型、大数据关键技术、大数据时代 面临的新挑战、NoSQL 数据库、云数据库、Google Spanner、Hadoop、HDFS、HBase、 MapReduce、Zookeeper、流计算、图计算和 Google Dremel 等. 本教程是林子雨通过大量阅读、收集、整理各种资料后精心制作的学习材料,与广大数 据库爱好者共享.教程中的内容大部分来自网络资料和书籍,一部分是自己撰写.对于自写 内容,林子雨老师拥有著作权. 本教程 PDF 文档及其全套教学 PPT 可以通过网络免费下载和使用(下载地址: http://dblab.xmu.edu.cn/node/422) . 教程中可能存在一些问题, 欢迎读者提出宝贵意见和建议! 本教程已经应用于厦门大学计算机科学系研究生课程《大数据技术基础》 ,欢迎访问
2013 班级网站 http://dblab.xmu.edu.cn/node/423. 林子雨的 E-mail 是:[email protected]. 林子雨的个人主页是:http://www.cs.xmu.edu.cn/linziyu. 林子雨于厦门大学海韵园
2013 年9月厦门大学计算机科学系研究生课程 《大数据技术基础》 主讲教师:林子雨 http://www.cs.xmu.edu.cn/linziyu
3 /
16 第12 章Google Spanner 厦门大学计算机科学系教师 林子雨 编著 个人主页:http://www.cs.xmu.edu.cn/linziyu 课程
网址:http://dblab.xmu.edu.cn/node/422
2013 年9月厦门大学计算机科学系研究生课程 《大数据技术基础》 主讲教师:林子雨 http://www.cs.xmu.edu.cn/linziyu
4 /
16 第12 章Google Spanner Spanner 是一个可扩展、多版本、全球分布式并且支持同步复制的数据库,它是 Google 的第一个可以全球扩展并且支持外部一致性的数据库.Spanner 能做到这些,离不开一个用 GPS 和原子钟实现的时间 API.这个 API 能将数据中心之间的时间同步精确到 10ms 以内. 因此,Spanner 有几个给力的功能:无锁读事务、原子模式修改、读历史数据无阻塞. 本章介绍 Google Spanner 相关知识,内容要点如下: ? Spanner 背景 ? 与BigTable、Megastore 的对比 ? Spanner 的功能 ? 体系结构 ? Spanserver ? Directory ? 数据模型 ? TrueTime ? Spanner 的并发控制 12.1 Spanner 背景 图12-1 Spanner 在Google 公司中的定位 厦门大学计算机科学系研究生课程 《大数据技术基础》 主讲教师:林子雨 http://www.cs.xmu.edu.cn/linziyu
5 /
16 要想深刻理解 Spanner 的原理,必须要首先了解 Spanner 在Google 的定位.从图 12-1 可以看到.Spanner 位于 F1 和GFS 之间,承上启下.所以,这里先简要介绍 F1 和GFS. 12.1.1F1 和众多互联网公司一样,在早期 Google 大量使用了 MySQL.MySQL 是单机的,可以 用Master-Slave 来容错,通过分区来实现扩展.但是,需要大量的手工运维工作,有很多的 限制.因此,Google 开发了一个可容错、可扩展的 RDBMS――F1.和一般的分布式数据库 不同,F1 对于 RDBMS 应有的功能毫不妥协.起初 F1 是基于 MySQL 的,不过会逐渐迁移 到Spanner. F1 有如下特点: ? 7*24 高可用,哪怕某一个数据中心停止运转,仍然可用;