spanner1.3.1?spanner与wrench?解析全球级分布式Google Spanner(4)

电脑杂谈  发布时间:2016-09-19 16:00:11  来源:网络整理

在读写事务中使用wound-wait算法来避免死锁。当客户端发起一个读写事务的时候,首先是读操作,他先找到相关数据的leader replica,然后加上读锁,读取最近的数据。在客户端事务存活的时候会不断的向leader发心跳,防止超时。当客户端完成了所有的读操作,并且缓存了所有的写操作,就开始了两阶段提交。客户端闲置一个coordinator group,并给每一个leader发送coordinator的id和缓存的写数据。

leader首先会上一个写锁,他要找一个比现有事务晚的时间戳。通过Paxos记录。每一个相关的都要给coordinator发送他自己准备的那个时间戳。

Coordinatorleader一开始也会上个写锁,当大家发送时间戳给他之后,他就选择一个提交时间戳。这个提交的时间戳,必须比刚刚的所有时间戳晚,而且还要比TT.now()+误差时间还要晚。这个Coordinator将这个信息记录到Paxos。

在让replica写入数据生效之前,coordinator还有再等一会。需要等两倍时间误差。这段时间也刚好让Paxos来同步。因为等待之后,在任意机器上发起的下一个事务的开始时间,都不会比这个事务的结束时间早了。然后coordinator将提交时间戳发送给客户端还有其他的replica。他们记录日志,写入生效,释放锁。

6.只读事务

对于只读事务,Spanner首先要指定一个读事务时间戳。还需要了解在这个读操作中,需要访问的所有的读的Key。spanner可以自动确定Key的范围。

如果Key的范围在一个Paxos group内。客户端可以发起一个只读请求给group leader。leader选一个时间戳,这个时间戳要比上一个事务的结束时间要大。然后读取相应的数据。这个事务可以满足外部一致性,读出的结果是最后一次写的结果,并且不会有不一致的数据。

如果Key的范围在多个Paxos group内,就相对复杂一些。其中一个比较复杂的例子是,可以遍历所有的group leaders,寻找最近的事务发生的时间,并读取。客户端只要时间戳在TT.now().latest之后就可以满足要求了。

三.与Google其他项目的关系

Megastore和DynamoDB已经提供了横跨数据中心复制一致性服务。DynamoDB呈现了一个键值界面,并可以在小范围内进行复制。Spanner继承了Megastore的半关系数据模型,甚至是相似的语言。Megastore的性能一直不是很高。它处于Bigtable的上一层,而Bigtable加强了在通信上的资源消耗。而在长期的调度中Bigtable同样不适合:多份拷贝可能同时写入数据。Paxos协议下,不同拷贝上的写入必然发生冲突,即使它们在逻辑上没有冲突:在同一个Paxos组中同时间发生不同写入,吞吐量必将崩溃。虽然Bigtable在Google中被广泛使用,但是其不能提供较复杂的Schema和跨数据中心的强一致性。而Spanner提供了高性能、多用途事务和外部一致性。集合了复制的并发控制更是减少了Spanner中提交的等待。spanner提供的快照隔离更是解决了争用问题。

四.未来的工作

2011年的大部分时间都用于协助F1小组将Google的广告后台从MySQL搬到Spanner上。Google现在正致力于将它的监视工具和支持工具提到与它通信性能同等的高度。此外,Google还在改善备份系统的功能及性能。当下,正在构建spanner模式语言、第二索引的自动维护及基于负载的再分片。

晚一点时间,Google还会在OSDI 2012 12vestigate会议上发布一对新特性。此外,还计划在未来直接改变Paxos配置。鉴于许多应用程序都在非常近的数据中心之间复制数据,TrueTime将会对性能有着显著的影响。但是将延迟降到1毫秒以下的所有障碍都已经被克服。降低查询的主要延迟可以通过改善网络技术,更甚者通过交替时间分配技术来避免。

当然还有很明显的地方需要改进。首先:尽管spanner的节点数量是可伸缩的,在复杂SQL查询中本地节点的数据结构性能仍然很差,因为它们是为简单的键值访问而设计的。DB著作中的算法可以大幅度的提高单模性能。其次:在数据中心间移动数据来改变客户端负载仍然是长期目标。而为了实现这一目标,还必须能够在数据中心间以自动的和协调的方式来转移客户端进程。在数据中心间移动进程中的资源获取和分配更是个巨大的攻坚。(编译/仲浩 责编/包研)

论文下载:PDF

特别感谢EMC中国研究院 颜开对spanner的设计及一些重要组件的翻译支持。

欢迎关注@CSDN云计算微博,了解最新spanner的信息。

本文为CSDN编译整理,未经允许不得转载。如需转载请联系market@csdn.net

以上就是关于spanner的全部内容,相信你一定会非常满意。


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/shenmilingyu/article-16958-4.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...