写点什么

Google 发布 Spanner 论文,宣告重回分布式事务语义

  • 2012-10-17
  • 本文字数:1299 字

    阅读完需:约 4 分钟

上个月,在 Operating System Design and Implementation(OSDI '12)大会上, Google 放出了 Spanner 的详细信息——Spanner 是一个高可伸缩、全球复制的半关系型数据库。上周,Google 又给出了论文合著者 Wilson Hsieh 的一个与 OSDI 2012 上演讲相关的视频,该视频专注于论文里的一些关键概念,InfoQ 的 Alex Popescu 发表了一篇文章,内容是 Berlin Buzzwords 上 Alex Lloyd 提供的更多详细信息。研究证明 ACID 语义不需要牺牲高可伸缩性,推翻了 NoSQL 是高可伸缩性持久化的万灵药的想法。论文中的这句话很好地表明了这一观点:

我们认为,最好是让应用程序开发者在出现瓶颈时处理由事务使用过度引起的性能问题,而非总是在缺少事务的情况下进行编码。

Spanner 项目源于 Google Adwords 系统在持久化方面的需要,该解决方案既要满足关系型与事务性,同时又要在全球范围内可伸缩部署。 MegaStore 仅部分满足这些关注点,因为在跨洲际事务时没有可预计的延时是无法实现其一致性保障的。在 Spanner 中,分布式事务的延时问题是通过 Google 的 TrueTime API 来处理的,这基本上是一个针对时钟不确定性(clock uncertainty)问题的解决方案。

通过大范围网络中的多个参考时间确定时钟时间时,时钟漂移和网络延时会引入时钟不确定性(在论文中用ε符号表示)。参考时间混合了 GPS 时间和原子时钟,通过冗余降低了它们的错误率。通过确定影响时钟不确定性的因素,将其上限控制在一个承诺的等待间隔里(两倍的ε),就能实现外部一致性保证以及其他一些好处,比如无锁读事务、非阻塞读以及原子 Schema 变更。因此,承诺的等待间隔直接和时钟不确定性绑在了一起,不确定性越高,等待间隔就越长,也会拖慢 Spanner。然而,为了降低较长等待间隔(通常是 10ms,但呈现长尾分布)带来的影响,Spanner 在等待时间里执行了 Paxos(一致协议)或两阶段提交的准备阶段。

Spanner 的数据模型与 Megastore 类似,都是半关系型层次化结构模型。Timothy O’Brien 在 O’Reilly 上的博客里对 Spanner 做了一个总结:

一套 Spanner 部署是由一些管理服务器组成的,它们是用来管理跨数据中心的多个“区域”(Zone)的。一台“区域主服务器”(Zone master)和一系列“位置代理”(location proxy)管理了成百上千的“Spanserver”,它们是在 Spanner 数据库中执行批量工作的。Spanserver 中存储的数据单元称为“目录”(directory),每个单元中都实现了一个位于 Tablet 之上的 Paxos 状态机。Spanserver 以 B 树的形式存储数据,使用了一个复合键,再结合上一个时间戳和一个值。

Cloudant Labs 在他们的博客里指出了 Spanner 缺少的两块东西:

显然 Spanner 目前还不支持二级索引的自动处理。而且,它不支持以后能达到一致状态的“离线”访问(像 CouchDB 那样的离线访问)。

NuoDB 为他们的解决方案申请了专利,从他们的专利描述来看,也实现了和Spanner 相同的功能,但Google 宣称Spanner 是第一个全球复制、可伸缩的ACID 数据库。围绕NoSQL vs. NewSQL 之争,Spanner 对您的产品和项目实现会产生何种影响呢?

查看英文原文 Google Publishes Paper On Spanner Ushering a Return to Distributed Transactional Semantics

2012-10-17 09:185420
用户头像

发布了 135 篇内容, 共 67.1 次阅读, 收获喜欢 43 次。

关注

评论

发布
暂无评论
发现更多内容

安装minio集群

天翼云开发者社区

存储

Vibe Coding(氛围编程):把代码交给 AI 的瞬间,也交出了未来的维护权——慢慢学AI162

AI决策者洞察

合合信息携手富士胶片商业创新(中国),AI让数码多功能机“读懂”文档

合合技术团队

人工智能 大数据 算法

数字化转型与生态融合驱动的政务一体化平台小程序化实践

xuyinyin

MaxCompute聚簇优化推荐功能发布,单日节省2PB Shuffle、7000+CU!

阿里云大数据AI技术

hash Shuffle ODPS 聚簇优化

“一课双证”Scrum Better with Kanban 认证&Scrum看板实践者认证 | 11月8日 · 在线面授

ShineScrum

Scrum 敏捷

阿里云 AI 搜索 DeepSearch 技术实践

阿里云大数据AI技术

雅菲奥朗SRE知识墙分享(五): 『AWS解散上海AI研究院』

雅菲奥朗

AI SRE

链游开发新篇章:融合区块链技术的游戏创新与探索

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

公链钱包开发秘籍:构建安全便捷的区块链资产管理工具

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

3X-UI:强大的Xray-core网页管理面板

qife122

vpn Xray

学习生活两不误!解锁新生必备神器华为小艺与华为浏览器的多种用法

最新动态

搭建MySQL主从

天翼云开发者社区

MySQL 数据库

当舆情爆发时:社交媒体监测的危机应对策略

沃观Wovision

海外舆情监控 舆情监测系统

五个维度解析TikTok推广营销中品牌如何筛选最合适的合作达人

Wolink

Tik Tok 海外推广 沃链Wolink 达人营销

DAPP开发全指南:从入门到精通的区块链应用之路

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

OpenAI 开源模型 gpt-oss 是在合成数据上训练的吗?一些合理推测

Baihai IDP

开源 AI openai LLM gpt-oss

交易所开发实战:打造安全高效的数字货币交易平台

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 交易所开发代币开发

MCP 开发实战:手把手教你封装高德地图与 arXiv API

测吧(北京)科技有限公司

各行业初级员工AI普及率强劲

财见

数字先锋 | 携手扎囊县教育局,天翼云电脑叩响教育均衡发展之门!

天翼云开发者社区

云电脑 天翼云 智慧教育

Grafana侧重可视化,那多数据源告警呢?

巴辉特

Grafana Nightingale 夜莺监控

解锁区块链未来:DAPP、交易所、链游、钱包及代币开发全解析

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

医疗AI Agent最佳实践|焱融YRCache将推理效率提升65%,实现患者问诊秒级响应

焱融科技

推理 医疗智能体 AI Agent KVCache 焱融YRCache

构建电动汽车模拟器研究EVSE充电设备的技术实践

qife122

逆向工程 电动汽车充电

用社交媒体监测驱动品牌增长与用户互动

沃观Wovision

社交媒体 海外舆情监控 舆情监测系统

Scrum Better with Kanban

ShineScrum

AI Agent智能体系列解读 | ModelArts Versatile-AI原生应用引擎插件类——MCP/工具能力详解

华为云开发者联盟

“数字创新产品课程” 12月6-7日 · CSPO认证在线课程

ShineScrum

产品负责人 CSPO认证

PPT自动生成器有哪些?6个好用的AI工具盘点

职场工具箱

人工智能 效率工具 PPT 办公软件 AI生成PPT

Google发布Spanner论文,宣告重回分布式事务语义_DevOps & 平台工程_Jeevak Kasarkod_InfoQ精选文章