Sunday, October 25, 2015

Distributed Systems: An Algorithmic Approach



Distributed Systems: An Algorithmic Approach, Second Edition, Edition 2
COMMON SUBPROBLEMS
Leader Election
Mutual exclusion
Time synchronization
Global State
Multicasting
Replica management

Time in a Distributed System
Consistency maintenance among replicated data relies on which update is the most recent one. Important authentication services (like Kerberos) rely on synchronized clocks.

Causal order is the basis of logical clocks, introduced by Lamport.
To settle such issues, we depend on an obvious law of nature: no message can be received before it is sent. Tis is an example of causality. Tus, if Bobs ends a message to Alice, then the event of sending the message must have happened before the event of receiving that mes- sage regardless of the clock readings.

Rule 1: Let each process have a physical clock whose value is monotonically increasing. If a, b are two events within a single process P, and the time of occurrence of a is earlier than the time of occurrence of b, then a <b. Rule 2: If a is the event of sending a message by process P, and b is the event of receiving the same message by another process Q, then a  b. Rule 3: (a <b)(b <c) -> (a < c).




Labels

Review (572) System Design (334) System Design - Review (198) Java (189) Coding (75) Interview-System Design (65) Interview (63) Book Notes (59) Coding - Review (59) to-do (45) Linux (43) Knowledge (39) Interview-Java (35) Knowledge - Review (32) Database (31) Design Patterns (31) Big Data (29) Product Architecture (28) MultiThread (27) Soft Skills (27) Concurrency (26) Cracking Code Interview (26) Miscs (25) Distributed (24) OOD Design (24) Google (23) Career (22) Interview - Review (21) Java - Code (21) Operating System (21) Interview Q&A (20) System Design - Practice (20) Tips (19) Algorithm (17) Company - Facebook (17) Security (17) How to Ace Interview (16) Brain Teaser (14) Linux - Shell (14) Redis (14) Testing (14) Tools (14) Code Quality (13) Search (13) Spark (13) Spring (13) Company - LinkedIn (12) How to (12) Interview-Database (12) Interview-Operating System (12) Solr (12) Architecture Principles (11) Resource (10) Amazon (9) Cache (9) Git (9) Interview - MultiThread (9) Scalability (9) Trouble Shooting (9) Web Dev (9) Architecture Model (8) Better Programmer (8) Cassandra (8) Company - Uber (8) Java67 (8) Math (8) OO Design principles (8) SOLID (8) Design (7) Interview Corner (7) JVM (7) Java Basics (7) Kafka (7) Mac (7) Machine Learning (7) NoSQL (7) C++ (6) Chrome (6) File System (6) Highscalability (6) How to Better (6) Network (6) Restful (6) CareerCup (5) Code Review (5) Hash (5) How to Interview (5) JDK Source Code (5) JavaScript (5) Leetcode (5) Must Known (5) Python (5)

Popular Posts