diff --git "a/Angular+\346\235\203\345\250\201\346\225\231\347\250\213\357\274\210\347\254\2542\347\211\210\357\274\211@www.java1234.com.pdf" "b/Angular+\346\235\203\345\250\201\346\225\231\347\250\213\357\274\210\347\254\2542\347\211\210\357\274\211@www.java1234.com.pdf" new file mode 100644 index 0000000..46f242b Binary files /dev/null and "b/Angular+\346\235\203\345\250\201\346\225\231\347\250\213\357\274\210\347\254\2542\347\211\210\357\274\211@www.java1234.com.pdf" differ diff --git "a/Docker+-+\344\273\216\345\205\245\351\227\250\345\210\260\345\256\236\350\267\265+-+v1.0.pdf" "b/Docker+-+\344\273\216\345\205\245\351\227\250\345\210\260\345\256\236\350\267\265+-+v1.0.pdf" new file mode 100644 index 0000000..6256906 Binary files /dev/null and "b/Docker+-+\344\273\216\345\205\245\351\227\250\345\210\260\345\256\236\350\267\265+-+v1.0.pdf" differ diff --git a/Epic_Words_speak_louder_Haley.pptx b/Epic_Words_speak_louder_Haley.pptx new file mode 100644 index 0000000..200267e Binary files /dev/null and b/Epic_Words_speak_louder_Haley.pptx differ diff --git "a/Java+8\345\256\236\346\210\230.pdf" "b/Java+8\345\256\236\346\210\230.pdf" new file mode 100644 index 0000000..ddf4592 Binary files /dev/null and "b/Java+8\345\256\236\346\210\230.pdf" differ diff --git a/troubleshooting-kubernetes.pdf b/troubleshooting-kubernetes.pdf new file mode 100644 index 0000000..4c2757f Binary files /dev/null and b/troubleshooting-kubernetes.pdf differ diff --git "a/\346\267\261\345\205\245\346\265\205\345\207\272Kubernetes.pdf" "b/\346\267\261\345\205\245\346\265\205\345\207\272Kubernetes.pdf" new file mode 100644 index 0000000..31e3cb7 Binary files /dev/null and "b/\346\267\261\345\205\245\346\265\205\345\207\272Kubernetes.pdf" differ diff --git "a/\350\200\227\345\255\220\350\200\201\345\270\210\346\216\250\350\215\220\351\230\205\350\257\273.md" "b/\350\200\227\345\255\220\350\200\201\345\270\210\346\216\250\350\215\220\351\230\205\350\257\273.md" new file mode 100644 index 0000000..76b3e2f --- /dev/null +++ "b/\350\200\227\345\255\220\350\200\201\345\270\210\346\216\250\350\215\220\351\230\205\350\257\273.md" @@ -0,0 +1,66 @@ +Paxos 算法 +其进入工程圈的源头在于 Google 的 Chubby lock——一个分布式的锁服务,用在了 Bigtable 中。直到 Google 发布了下面的这两篇论文,Paxos 才进入到工程界的视野中来。 +Bigtable: A Distributed Storage System for Structured Data +https://static.googleusercontent.com/media/research.google.com/en//archive/bi +gtable-osdi06.pdf +The Chubby lock service for loosely-coupled distributed systems +https://static.googleusercontent.com/media/research.google.com/en//archive/c +hubby-osdi06.pdf +The Google File System +https://static.googleusercontent.com/media/research.google.com/en//archive/gfs-sosp2003.pdf +MapReduce: Simplifed Data Processing on Large Clusters +https://static.googleusercontent.com/media/research.google.com/en//archive/ma +preduce-osdi04.pdf +Google 实现 Paxos 时遇到的各种问题和解决方案 +https://static.googleusercontent.com/media/research.google.com/en//archi +ve/paxos_made_live.pdf +比较易读的Paxos算法 +http://harry.me/blog/2014/12/27/neat-algorithms-paxos/ +https://angus.nyc/2012/paxos-by-example/ +https://medium.com/@angusmacdonald/paxos-by-example-66d934e18522 +如果你要自己实现 Paxos 算法 +http://www.inf.usi.ch/faculty/pedone/MScThesis/marco.pdf +http://libpaxos.sourceforge.net/ -- 开源库 +从一个系统实现者的角度讨论了实现 Paxos 的诸多具体问题,比如 Leader 选举、数据及消息类型、流控等。 +http://www.cnds.jhu.edu/pub/papers/cnds-2008-2.pdf +介绍了很多实现细节,并提供了很多伪代码,一方面可以帮助理解 Paxos,另一方面也可以据此实现一个 Paxos。 +http://www.cs.cornell.edu/courses/cs7412/2011sp/paxos.pdf +如何采用 Paxos 实现 replication +https://web.stanford.edu/class/cs340v/papers/paxos.pdf +Github +https://github.com/cocagne/paxos +https://github.com/xiang90/paxos +Raft 算法 +原始论文 +https://raft.github.io/raft.pdf +中文版 +https://www.infoq.cn/article/raft-paper/ +动画演示 +http://thesecretlivesofdata.com/raft/ +https://raft.github.io/ +http://kanaka.github.io/raft.js/ +逻辑钟和向量钟 +论文 +http://bnrg.eecs.berkeley.edu/~randy/Courses/CS294.F07/Dynamo.pdf +http://lass.cs.umass.edu/~shenoy/courses/spring05/lectures.html --马萨诸塞大学课程 +http://lass.cs.umass.edu/~shenoy/courses/spring05/lectures/Lec10.pdf --第十节 +逻辑时间 +逻辑时间,也就是在分布系统中为了解决消息有序的问题,由于在不同的机器上有不同的本地时间,这些本地时间的同步很难搞,会导致消息乱序。 +Vector Clock +https://riak.com/posts/technical/why-vector-clocks-are-easy/ +https://riak.com/posts/technical/why-vector-clocks-are-hard/ +Gossip 协议 +DynamoDB 中使用到了 Gossip 协议来做数据同步,原始论文 +Efficient Reconciliation and Flow Control for Anti-Entropy Protocols https://www.cs.cornell.edu/home/rvr/papers/flowgossip.pdf +动画演示 +https://rrmoelker.github.io/gossip-visualization/ +分布式数据库方面 +AWS Aurora 的论文 +https://www.allthingsdistributed.com/files/p1041-verbitski.pdf +Google 的 Spanner: Google’s Globally-Distributed Database。 +http://static.googleusercontent.com/media/research.google.com/zh-CN//archive/spanner-osdi2012.pdf +开源的 +https://github.com/cockroachdb/cockroach +https://github.com/pingcap/tidb +* java 8 +> https://wizardforcel.gitbooks.io/java8-tutorials/content/Java%208%20%E6%96%B0%E7%89%B9%E6%80%A7%E7%BB%88%E6%9E%81%E6%8C%87%E5%8D%97.html