Skip to content

Commit

Permalink
Merge pull request #35 from hackaugusto/master
Browse files Browse the repository at this point in the history
fixed broken url
  • Loading branch information
mixu authored Nov 18, 2016
2 parents 6024162 + 042d396 commit c37e9c3
Show file tree
Hide file tree
Showing 10 changed files with 779 additions and 299 deletions.
2 changes: 1 addition & 1 deletion input/4_replication.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ The replication algorithms that maintain single-copy consistency include:

These algorithms vary in their fault tolerance (e.g. the types of faults they can tolerate). I've classified these simply by the number of messages exchanged during an execution of the algorithm, because I think it is interesting to try to find an answer to the question "what are we buying with the added message exchanges?"

The diagram below, adapted from Ryan Barret at [Google](http://www.google.com/events/io/2009/sessions/TransactionsAcrossDatacenters.html), describes some of the aspects of the different options:
The diagram below, adapted from Ryan Barret at [Google](https://snarfed.org/transactions_across_datacenters_io.html), describes some of the aspects of the different options:

![Comparison of replication methods, from http://www.google.com/events/io/2009/sessions/TransactionsAcrossDatacenters.html](images/google-transact09.png)

Expand Down
28 changes: 14 additions & 14 deletions output/abstractions.html

Large diffs are not rendered by default.

22 changes: 11 additions & 11 deletions output/appendix.html
Original file line number Diff line number Diff line change
Expand Up @@ -59,26 +59,26 @@ <h1 style="color: white; background: #D82545; display: inline-block; padding: 6p

<div id="main">
<div id="content" class="post">
<h1>6. Further reading and appendix</h1>
<h1 id="-chapter_number-further-reading-and-appendix">7. Further reading and appendix</h1>
<p>If you&#39;ve made it this far, thank you.</p>
<p>If you liked the book, follow me on <a href="https://github.com/mixu/">Github</a> (or <a href="http://twitter.com/mikitotakada">Twitter</a>). I love seeing that I&#39;ve had some kind of positive impact. &quot;Create more value than you capture&quot; and all that.</p>
<p>Many many thanks to: logpath, alexras, globalcitizen, graue, frankshearar, roryokane, jpfuentes2, eeror, cmeiklejohn, stevenproctor eos2102 and steveloughran for their help! Of course, any mistakes and omissions that remain are my fault!</p>
<p>It&#39;s worth noting that my chapter on eventual consistency is fairly Berkeley-centric; I&#39;d like to change that. I&#39;ve also skipped one prominent use case for time: consistent snapshots. There are also a couple of topics which I should expand on: namely, an explicit discussion of safety and liveness properties and a more detailed discussion of consistent hashing. However, I&#39;m off to <a href="https://thestrangeloop.com/">Strange Loop 2013</a>, so whatever.</p>
<p>If this book had a chapter 6, it would probably be about the ways in which one can make use of and deal with large amounts of data. It seems that the most common type of &quot;big data&quot; computation is one in which <a href="http://en.wikipedia.org/wiki/SPMD">a large dataset is passed through a single simple program</a>. I&#39;m not sure what the subsequent chapters would be (perhaps high performance computing, given that the current focus has been on feasibility), but I&#39;ll probably know in a couple of years.</p>
<h2>Books about distributed systems</h2>
<h4>Distributed Algorithms (Lynch)</h4>
<h2 id="books-about-distributed-systems">Books about distributed systems</h2>
<h4 id="distributed-algorithms-lynch-">Distributed Algorithms (Lynch)</h4>
<p>This is probably the most frequently recommended book on distributed algorithms. I&#39;d also recommend it, but with a caveat. It is very comprehensive, but written for a graduate student audience, so you&#39;ll spend a lot of time reading about synchronous systems and shared memory algorithms before getting to things that are most interesting to a practitioner.</p>
<h4>Introduction to Reliable and Secure Distributed Programming (Cachin, Guerraoui &amp; Rodrigues)</h4>
<h4 id="introduction-to-reliable-and-secure-distributed-programming-cachin-guerraoui-rodrigues-">Introduction to Reliable and Secure Distributed Programming (Cachin, Guerraoui &amp; Rodrigues)</h4>
<p>For a practitioner, this is a fun one. It&#39;s short and full of actual algorithm implementations.</p>
<h4>Replication: Theory and Practice</h4>
<h4 id="replication-theory-and-practice">Replication: Theory and Practice</h4>
<p>If you&#39;re interested in replication, this book is amazing. The chapter on replication is largely based on a synthesis of the interesting parts of this book plus more recent readings.</p>
<h4>Distributed Systems: An Algorithmic Approach (Ghosh)</h4>
<h4>Introduction to Distributed Algorithms (Tel)</h4>
<h4>Transactional Information Systems: Theory, Algorithms, and the Practice of Concurrency Control and Recovery (Weikum &amp; Vossen)</h4>
<h4 id="distributed-systems-an-algorithmic-approach-ghosh-">Distributed Systems: An Algorithmic Approach (Ghosh)</h4>
<h4 id="introduction-to-distributed-algorithms-tel-">Introduction to Distributed Algorithms (Tel)</h4>
<h4 id="transactional-information-systems-theory-algorithms-and-the-practice-of-concurrency-control-and-recovery-weikum-vossen-">Transactional Information Systems: Theory, Algorithms, and the Practice of Concurrency Control and Recovery (Weikum &amp; Vossen)</h4>
<p>This book is on traditional transactional information systems, e.g. local RDBMS&#39;s. There are two chapters on distributed transactions at the end, but the focus of the book is on transaction processing.</p>
<h4>Transaction Processing: Concepts and Techniques by Gray and Reuter</h4>
<h4 id="transaction-processing-concepts-and-techniques-by-gray-and-reuter">Transaction Processing: Concepts and Techniques by Gray and Reuter</h4>
<p>A classic. I find that Weikum &amp; Vossen is more up to date.</p>
<h2>Seminal papers</h2>
<h2 id="seminal-papers">Seminal papers</h2>
<p>Each year, the <a href="http://en.wikipedia.org/wiki/Dijkstra_Prize">Edsger W. Dijkstra Prize in Distributed Computing</a> is given to outstanding papers on the principles of distributed computing. Check out the link for the full list, which includes classics such as:</p>
<ul class="list">
<li>&quot;<a href="http://research.microsoft.com/users/lamport/pubs/time-clocks.pdf">Time, Clocks and Ordering of Events in a Distributed System</a>&quot; - Leslie Lamport</li>
Expand All @@ -92,7 +92,7 @@ <h2>Seminal papers</h2>
<li><a href="http://nosqlsummer.org/papers">NoSQL Summer paper list</a> - a curated list of papers related to this buzzword.</li>
<li><a href="http://www.quora.com/What-are-the-seminal-papers-in-distributed-systems-Why">A Quora question on seminal papers in distributed systems</a>.</li>
</ul>
<h3>Systems</h3>
<h3 id="systems">Systems</h3>
<ul class="list">
<li><a href="http://research.google.com/archive/gfs.html">The Google File System</a> - Ghemawat, Gobioff and Leung</li>
<li><a href="http://research.google.com/archive/mapreduce.html">MapReduce: Simplified Data Processing on Large Clusters</a> - Dean and Ghemawat</li>
Expand Down
Loading

0 comments on commit c37e9c3

Please sign in to comment.