Spanner 技术特点
基于时间戳的多版本并发控制(MVCC)
应用可控的数据多副本跨数据中心存储
TrueTime api (GPS和原子钟实现的时间API,能将数据中心之间的节点时间同步精确到10ms以内)
跨数据中心复制
在读写事务中使用wound-wait算法来避免死锁。当客户端发起一个读写事务的时候,首先是读操作,他先找到相关数据的leader replica,然后加上读锁,读取最近的数据。在客户端事务存活的时候会不断的向leader发心跳,防止超时。当客户端完成了所有的读操作,并且缓存 了所有的写操作,就开始了两阶段提交。客户端闲置一个coordinator group,并给每一个leader发送coordinator的id和缓存的写数据。
leader首先会上一个写锁,他要找一个比现有事务晚的时间戳。通过Paxos记录。每一个相关的都要给coordinator发送他自己准备的那个时间戳。
Coordinatorleader一开始也会上个写锁,当大家发送时间戳给他之后,他就选择一个提交时间戳。这个提交的时间戳,必须比刚刚的所有时间戳晚,而且还要比TT.now()+误差时间 还有晚。这个Coordinator将这个信息记录到Paxos。
在让replica写入数据生效之前,coordinator还有再等一会。需要等两倍时间误差。这段时间也刚好让Paxos来同步。因为等待之 后,在任意机器上发起的下一个事务的开始时间,都比如不会比这个事务的结束时间早了。然后coordinator将提交时间戳发送给客户端还有其他的 replica。他们记录日志,写入生效,释放锁。
相关推荐
Google Spanner 简介
Google Spanner原理:地球上最大的单一数据库.pdf 学习资料 复习资料 教学资源
Spanner 是谷歌公司研发的、可扩展的、多版本、全球分布式、同步复制数据库。 它是第一个把数据分布在全球范围内的系统,并且支持外部一致性的分布式事务。 本文描述了 Spanner 的架构、特性、不同设计决策的背后机理...
【摘要】:Spanner是谷歌公司研发的、可扩展的、多版本、全球分布式、同步复制数据库。它是第一个把数据分布在全球范围内的系统,并且支持外部一致性的分布式事务。
#资源达人分享计划#
谷歌的数据库Spanner 的论文 很全的论文!!!总共有三篇Google数据库的论文!我已经上传!
Spanner是谷歌公司研发的、可扩展的、多版本、全球分布式、同步复制数据库。它是第一个把数据分布在全球范围内的系统,并且支持外部一致性的分布式事务。本文描述了Spanner的架构、特性、不同设计决策的背后机理和一...
支持 Google Cloud Spanner 的 Laravel 数据库驱动
Google Java版Google Cloud Spanner JDBC客户端适用于Java惯用客户端。快速开始如果您使用的是Maven,请将其添加到pom.xml文件中: < dependency> < groupId>...
很棒的扳手 精选的工具,库等精选清单。 如果您知道其他很棒的... yo-一种命令行工具,用于为Google Cloud Spanner生成Go代码。 handy-spanner-非官方SQLite支持的Spanner仿真器。 spannerz-查询计划程序可视化
Spanner is Google’s highly available global SQL database [CDE+12]. It manages replicated data at great scale, both in terms of size of data and volume of transactions. It assigns globally consistent ...
go-sql-driver-spanner 适用于Go的软件包的驱动程序。 这是一项正在进行的工作,请不要在生产中使用它。 import _ "github.com/rakyll/go-sql-driver-spanner"db , err := sql . Open ( "spanner" , "projects/...
python库。 资源全名:django-google-spanner-2.2.1b1.tar.gz
Google Cloud Spanner ORM 这是用Python编写的轻量级ORM,建立在Cloud Spanner的基础上。 这不是官方支持的Google产品。 入门 如何安装 确保Python 3.7是您环境的默认python版本,然后运行: pip install git+...
TiDB 是 PingCAP 公司基于 Google Spanner / F1 论文实现的开源分布式 NewSQL 数据库。 TiDB 具备如下 NewSQL 核心特性: • SQL 支持(TiDB 是 MySQL 兼容的) • 水平线性弹性扩展 • 分布式事务 • 跨数据中心...
TiDB 是 PingCAP 公司基于 Google Spanner / F1 论文实现的开源分布式 NewSQL 数据库。 TiDB 具备如下 NewSQL 核心特性: • SQL 支持(TiDB 是 MySQL 兼容的) • 水平线性弹性扩展 • 分布式事务 • 跨数据中心...
适用于Hibernate ORM的Google Cloud Spanner方言 目录 这是与数据库服务的兼容的方言。 SpannerDialect使用标准的Hibernate和Java Persistence注释为大多数常见的实体类型和关系生成SQL,DML和DDL语句。 由于Cloud ...
2.4 Google Spanner 2.4.1 介绍 2.4.2 实现 2.4.3 TrueTime 2.4.4 并发控制 2.4.5 实验分析 2.4.6 相关工作 2.4.7 未来的工作 2.4.8 总结 2.5 Codis 集群部署实战 2.5.1 集群概要 2.5.2 系统架构 2.5.3 角色分配 ...
Spanner的设计反映了Google多年来在分布式存储系统领域上经验的积累和沉淀,它采用了Megastore的数据模型,Chubby的数据复制和一致性算法,而在数据的可扩展性上使用了BigTable中的技术。新颖之处在于,它使用高精度...