A Few Things That I Know About Spark

This post concludes a global view of Spark using a mind map, in which I try to enumerate what I know about it. A graph for the relationship of terminologies like Job, Stage is illustrated firstly so that you would be confused. ...

Sep 3, 2018 · 1 min · xgugeng

Consensus in Distributed System

The distributed consensus problem deals with reaching an agreement on a single data value among a group of process connected by an unreliable network. The processes must put forth their candidate values, communicate with one another, and agree on a single consensus value in presence of failures of some processes. Examples of applications of consensus include: Leader election / Mutable Exclusion Commit or Abort in distributed transactions Reaching agreement about which process has failed Clock phase synchronization Load balancing A visual diagram of this problem unfolds in the following. Each process pk with an input value uk runs a program to exchange its value. Finally the output of all non-faulty processes become identical. It is permissive that one or more processes may fail at any time, but the output v must be equal to the value of at least one process. ...

Aug 19, 2018 · 11 min · xgugeng

A Quick Retrospect of Design Pattern

This post summarizes some design patterns I used in daily work or learnt from books. ...

Aug 13, 2018 · 7 min · xgugeng

Refactor: Why, What, When and How

I read Refactoring: Improving the Design of Existing Code while chasing my master degree and did not realize how beneficial it would be considering the number of lines I wrote. After joining the workforce, I found its importance can never be overstressed. It is rewarding to read this book over and over, so I draw this mind map for quick index. ...

Aug 8, 2018 · 1 min · xgugeng

Consistency Models and Protocols in Distributed System

Data replication is a vital feature in distributed system, but brings in an inevitable price to be paid: consistency maintenance. The consistency model specifies a contract between programmer and system, wherein the system guarantees that if the programmer follows the rules, memory will be consistent and the results of reading, writing, or updating memory will be predictable. In Chinese, “consistency” often mixes up with “consensus” because of their similar translations. The consensus problem requires agreement among a number of processes for a single data value. Some of the processes may fail or be unreliable in other ways, so consensus protocols must be fault tolerant or resilient. This post focus on consistency only, enumerating various common types of consistency models and illuminating some consistency protocols. ...

Feb 9, 2018 · 7 min · xgugeng

A Mind Map for HBase

This map records my learning path to HBase. Every time I know something new about HBase, I will append it to this map. ...

Jul 1, 2017 · 1 min · xgugeng

Mind Maps for Java and JVM

These two mind maps are drawn for the further exploration of Java and JVM. For Java I try to cover some advanced features ranging from NIO and Thread. As to JVM, few components are covered, of course, I will replenish it at any moment. ...

Jun 16, 2017 · 1 min · xgugeng

Redis Mind Map

This post includes a few mind maps for Redis ranging from quick start to implementation. ...

Nov 6, 2016 · 1 min · xgugeng