例题:Prepare阶段+Accept阶段
例题和解答截图在手机相册照片里面。
Google文件系统-Megastore
MegaStore应用:Email博客、社交网络
对象集合(Schema)
照片共享服务数据模型实例:
BigTable中存储情况:按照Raw Key(行键)会找到其他的值,所以不需要再使用到笛卡尔积,所以查找速度很快。
Google团队设计了一种能够提供细粒度控制的数据模型和模式语言。Megastore中关系型数据库的特征就集中体现在这种数据模型。
Write操作:
1)获取当前log中的可用位置。current read保证之前的commit的事务全部被applied到data。
2)数据的更新操作组合成一次commit事件,然后获得最大的时间戳,append到WAL log中。
3)在Append到WAL log之后,该事件就处于Commited状态了,写操作就可以返回客户端了。后续就是异步地实现数据的更新。
Read操作:
支持三种方式的读操作:
1)Current Read: 从WAL中获取最新Committed的版本,事务系统会确保所有的Committed状态的数据都已经写入数据区,因此,该读操作方式应用在一致性要求较高的场合。
2) Snapshot Read:获取最新的、且已经被完全写入的事务的版本的数据。
3) In-Consistent Read:可以读取还没有被完全Applied状态的数据。
MegaStore架构:
MegaStore中的事务机制:
参考链接:https://blog.csdn.net/yang_tie_cheng/article/details/84534996
http://blog.sina.com.cn/s/blog_ea5525720102xjtw.html
https://max.book118.com/html/2018/0421/162335881.shtm