Distributedsystem 共识性算法的发展 在分布式系统中,由于机器可能宕机,网络可能短连等许多问题,所以如何保证多个副本之间的一致性成为了最重要的问题之一,而Paxos算法就是解决这个问题的算法。
Distributedsystem 回顾MIT 6.824 大概是在六月底,经过了一段时间的划水,决定开始学一点研究生该学的东西。之前 一直学的后端开发入门的技术,比如怎么使用Spring,MyBatis之类的框架,在学这些技术的过程中虽然听说了一些分布式系统的组件和原理,但是在那个时候觉得这些都是进阶的知识,大可以工作以后再认真学,就匆匆掠过。研究生嘛,总要学得深入一点,正好在知乎上听闻这门课的风评很好,今年又录了高清的授课视频,就决心跟着这门课学下去。
Distributedsystem 浅谈Memcache Facebook拥有庞大的社交网络和因此产生的频繁的请求,所以为了提高响应速度,使用了缓存的策略处理这一问题。通常情况下,用户的读写请求都会落到数据库上,而数据库的数据存储在磁盘上,磁盘低下的读写效率对响应的速度影响很大。所以,Facebook使用运行在内存中的Memcached作为中间件,先在其中查询相关数据,只有当Memcached中没有请求的数据时才向数据库查询。他们充分利用了内存远高于磁盘的读写速度,实现了业务的优化。
Distributedsystem 浅谈Spanner 在2012年的OSDI上,谷歌发表了《Spanner:Google’s Globally-Distributed Database》,其中介绍了谷歌第二代的数据库,也就是Bigtable的继任者——Spanner。在使用Bigtable的过程中,谷歌的开发人员逐渐意识到Bigtable的一些不足之处,比如不能处理变化的数据格式,不能保证大范围内数据库的一致性以及对跨行事务的处理。谷歌为了解决这些问题,开发出了Spanner。
Distributedsystem 浅谈Google的三驾马车之MapReduce 谷歌在2003到2006年间发表了三篇论文,《MapReduce:Simplified Data Processing on Large Clusters》,《Bigtable:A Distributed Storage System for Structured Data》和《The Google File System》介绍了Google如何对大规模数据进行存储和分析。这三篇论文开启了工业界的大数据时代,被称为Google的三驾马车。本文介绍MapReduce的相关内容。
Distributedsystem 浅谈Google的三驾马车之Bigtable 谷歌在2003到2006年间发表了三篇论文,《MapReduce:Simplified Data Processing on Large Clusters》,《Bigtable:A Distributed Storage System for Structured Data》和《The Google File System》介绍了Google如何对大规模数据进行存储和分析。这三篇论文开启了工业界的大数据时代,被称为Google的三驾马车。本文介绍Bigtable的相关内容。
Distributedsystem 浅谈Google的三驾马车之GFS 谷歌在2003到2006年间发表了三篇论文,《MapReduce:Simplified Data Processing on Large Clusters》,《Bigtable:A Distributed Storage System for Structured Data》和《The Google File System》介绍了Google如何对大规模数据进行存储和分析。这三篇论文开启了工业界的大数据时代,被称为Google的三驾马车。本文介绍Google File System的相关内容。
Distributedsystem 浅谈Amazon Aurora Amazon在2017年的SIGMOD上发表了论文对Amazon Aurora进行了介绍,简要描述了他们由于对传统MySQL性能的不满,而设计了Aurora来代替,其性能有相当大的提升。从时间和公司我们就可以看出,这是比较新的工业界的解决方案,有很高的学习参考价值。
Distributedsystem 浅谈Primary-Back Replication和Chain Replication 前面两篇文章,我们讨论了分布式系统中为了维护一致性所使用的共识性算法Paxos和Raft。这些算法保证了各机器之间数据的一致性,但是Paxos算法针对的是平等的Replication策略,而Raft算法针对的是Primary-Back Replication策略。Replication策略和共识性算法的目的不同,它的设计是为了实现容错(Fault-Tolerance),即在一部分机器不可用后,仍能保证正常提供服务。下面,我将简要描述一下6.824中讨论的两种复制模型Primary-Back Replication和Chain Replication。
Distributedsystem 浅谈Raft Raft算法是由Diego Ongaro和John Ousterhout于2014年提出的共识性算法。在斯坦福当助教时,他发现学生很难理解Paxos算法,所以他希望能用一种更简单易懂的算法来代替Paxos,以此为契机,他把便于理解作为目的,提出了Raft算法。
Distributedsystem 浅谈Paxos 如果想要在后端开发上更进一步而不是局限于SSM框架,那么分布式是一个不那么坏的发展方向。如果要研究分布式系统,Paxos算法是绝对绕不过,也不能绕过的知识点。