Bessani, Alysson, João Sousa, and Eduardo EP Alchieri. “State machine replication for the masses with BFT-SMART.” 2014 44th Annual IEEE/IFIP international conference on dependable systems and networks. IEEE, 2014.
先把BFT-SMART读了热身。主要是关注它的多线程实现部分。我的PhD阶段踩中的两个大坑,首先一个就是并发实现BFT。
它做了流水线式的实现从而达到最起码相当于流水线级数的并行度,然后特定地与外界传输的阶段又做了分客户端/服务端的并行。相比之下我的做法是根据不同的工种分成一个协议线程和多个密码学工作线程。
我还是对于一个「大而纯粹」的状态太执着了。它这样做对实现有着很强的侵入性,协议状态被打散在了不同流水线阶段的线程里。想来我就算了早看了也不会接受吧。
但是这不是现在才看了它的做法的理由。继续看吧。
Kapritsos, Manos, et al. “All about eve:{Execute-Verify} replication for {Multi-Core} servers.” 10th USENIX Symposium on Operating Systems Design and Implementation (OSDI 12). 2012.
先前同学在组会上介绍过的一篇。先执行后验证的BFT,但是和Fabric相比只做了happy path而且是投机的,保留了排序执行的保底。
相比排序执行,不再需要白盒的执行日志,转而需要白盒的执行状态,不出所料是用Merkle树做的。这是不是我第一次接触到Merkle数据结构。显然完全没有留下印象。
Li, Cheng, et al. “Making {Geo-Replicated} systems fast as possible, consistent when necessary.” 10th USENIX Symposium on Operating Systems Design and Implementation (OSDI 12). 2012.
设计了一种混合一致性:红蓝一致性。红事件保证强一致性,蓝事件保证最终一致性,允许乱序执行。讨论了如何协助将业务逻辑切成尽量多的蓝事件和必要的红事件。还讨论了怎么实现红蓝一致性。
接下来要收敛一点看论文的范围了。
Mashtizadeh, Ali José, et al. “Replication, history, and grafting in the ori file system.” Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles. 2013.
接下来这一篇Ori就和Entropy的设定非常接近(尤其是最近的版本)。不过它提出了靠移动设备的移动来补充网络带宽作为justify这个设定的理由之一。有一定的时代局限性(现在的网络带宽不可同日而语),但是这个逻辑太猛了。
提到了Venti (FAST’02)。用了内容寻址(content addressable)和Git也就是不可变DAG。妥妥的早期IPFS。
这可以给我们的启发例如,虽然现在带宽大多了但是还是很贵。如果云可以惰性地从客户端同步/上传数据和修改,就可以让很多没有人访问的数据始终留在本地。
这个工作最终只是一个被包装成文件系统的Git,并不算有趣。太多事情是要求用户手动控制的了(比如我这两年唯一操心的放置)。也可以说它算是个「what if Git as a file system」式的科幻小说。
Zhang, Yupu, et al. “{*-Box}: Towards Reliability and Consistency in Dropbox-like File Synchronization Services.” 5th USENIX Workshop on Hot Topics in Storage and File Systems (HotStorage 13). 2013.
Ori中提到的,网络存储系统的客户端可能引发预料外的可靠性问题。并不相关。
Quinlan, Sean, and Sean Dorward. “Venti: A new approach to archival data storage.” Conference on file and storage technologies (FAST 02). 2002.
Ori中提到的归档存储的先驱工作之一。包含了完整的(不排除是重新发明了一遍)Merkle DAG结构。看起来像是「IPFS的祖师爷」当中最祖的一个了。当然,没设计DHT和一致性哈希,算是半边祖宗。
猛然发现archive storage和archival storage是不同的东西。头痛。
Wu, Zhe, et al. “Spanstore: Cost-effective geo-replicated storage spanning multiple cloud services.” Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles. 2013.
做云存储之间的复制以取得更低的延迟和经济开销。感觉主要是问题找得好,解决方案很直接,但确实全面涉及各种工程问题,包括优化,一致性,用户接口抽象等等。
Zhang, Yang, et al. “Transaction chains: achieving serializability with low latency in geo-distributed storage systems.” Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles. 2013.
高延迟坏境下依然保持强一致性。提前对事务做静态分析,然后客户端只与最近的数据中心交互,剩下的延迟隐藏在数据中心之间。在一个受限的场景下保证实际上的强一致性,与红蓝一致性的「与强一致性达到一致的效果」非常平行的一条路线。
Corbett, James C., et al. “Spanner: Google’s globally distributed database.” ACM Transactions on Computer Systems (TOCS) 31.3 (2013): 1-22.
搞了5年分布式并上了又助教了三年分布式系统以后还是没有浏览过Spanner到底是怎么回事我都不敢想。
大杂烩式文章,高度浓缩版手册(manual)。没有什么奇思妙想,就是一些傻大黑粗的扎实实践。通常在引用的时候也是扮演这么个角色。没有什么「我们做了什么什么新奇设计更好的解决问题」,只有「经过尝试,这样这样再那样那样是可以满足我们的需求的」。
Terry, Douglas B., et al. “Consistency-based service level agreements for cloud storage.” Proceedings of the twenty-fourth ACM symposium on operating systems principles. 2013.
给可以容忍弱一致性,但是更强的一致性能带来更好的用户体验的应用提供一个精确表达意图(SLA)的机制。不是很相关没有仔细看。
看太多云存储了。我是要来看区块链的来着。
Balakrishnan, Shobana, et al. “Pelican: A building block for exascale cold data storage.” 11th USENIX Symposium on Operating Systems Design and Implementation (OSDI 14). 2014.
微软做的低功耗低成本归档存储服务器机柜方案。让人联想起他们多年后发的基于刻玻璃和搬运玻璃机器人的归档存储数据中心。
Ardekani, Masoud Saeida, and Douglas B. Terry. “A {Self-Configurable}{Geo-Replicated} Cloud Storage System.” 11th USENIX Symposium on Operating Systems Design and Implementation (OSDI 14). 2014.
基于上面SLA工作,根据客户端反馈实际上实现的一致性级别来动态调整放置。
Cui, Heming, et al. “Paxos made transparent.” Proceedings of the 25th Symposium on Operating Systems Principles. 2015.
对黑盒应用做虚拟机复制(virtual machine replcation)。主要难点是为了确保确定性执行要干脏活。
Liu, Shengyun, et al. “{XFT}: Practical fault tolerance beyond crashes.” 12th USENIX Symposium on Operating Systems Design and Implementation (OSDI 16). 2016.
弱化BFT模型。