SlideShare a Scribd company logo
1 of 41
Download to read offline
RAFT algorithm & Copycat
2015-08-17
Mobile Convergence LAB,
Department of Computer Engineering,
Kyung Hee University.
Consensus Algorithm
Mobile Convergence Laboratory 1 /
분산 컴퓨팅 분야에서
하나의 클러스터링 시스템에서 몇 개의 인스턴스가 오류가
발생하더라도 계속해서 서비스가 제공되도록 해주는 알고리즘
각 노드의 상태에 의존하는 어떤 값이 서로 일치하게 됨
각 노드가 네트워크 상의 이웃 노드들과 관련 정보를 공유하는 상호 규칙
In Consensus…
• Minority of servers fail = No problem
• 정상 작동하는 서버가 과반수 이상이면 시스템은 정상 작동
• Key : Consistent storage system
Mobile Convergence Laboratory 2 /
Paxos
• 1989년도에 발표
• Consensus Algorithm을 구현한 대표적인 프로토콜
• 이해하기 너무 어렵고, 실제 구현하기 어렵다라는 단점이 존재
3 /Mobile Convergence Laboratory
Why Raft?
• 너무 어려운 Paxos의 대안으로 주목받은 알고리즘
• 세분화되어 이해하기 쉽고, 구현하기 쉽게 개발(연구)됨
Mobile Convergence Laboratory 4 /
Mobile Convergence Laboratory 5 /
Raft
• “In Search of an Understandable Consensus Algorithm”
• Diego Ongaro & John Ousterhout in Stanford
• Best Paper Award at the 2014 USENIX Annual Technial
Conference.
• 이후 박사 학위 논문에서 확장하여 발표
(Consensus: Bridging Theory and Practice)
Mobile Convergence Laboratory 6 /
USENIX : Unix Users Group / 컴퓨터시스템 분야 세계
최고의 권위의 학술단체 첫 논문 : 18pages / 박사 논문 : 258pages
Replicated State Machines (1)
x3 y2 x1
Log
Consensus
Module
State
Machine
Log
Consensus
Module
State
Machine
Log
Consensus
Module
State
Machine
Servers
Clients
x 1
y 2
x3 y2 x1
x 1
y 2
x3 y2 x1
x 1
y 2
Consensus Module Manage & Replicate the logs
Log collection of commands
State Machine Execute the commands & Produce result
Replicated State Machines (2)
x3 y2 x1
Log
Consensus
Module
State
Machine
Log
Consensus
Module
State
Machine
Log
Consensus
Module
State
Machine
Servers
Clients
x 1
y 2
x3 y2 x1
x 1
y 2
x3 y2 x1 z6
x 1
y 2
z6
Record local machine
Consensus Module Manage & Replicate the logs
Log collection of commands
State Machine Execute the commands & Produce result
Replicated State Machines (3)
x3 y2 x1
Log
Consensus
Module
State
Machine
Log
Consensus
Module
State
Machine
Log
Consensus
Module
State
Machine
Servers
Clients
x 1
y 2
x3 y2 x1
x 1
y 2
x3 y2 x1 z6
x 1
y 2
Pass
to other machines
Consensus Module Manage & Replicate the logs
Log collection of commands
State Machine Execute the commands & Produce result
Replicated State Machines (4)
x3 y2 x1 z6
Log
Consensus
Module
State
Machine
Log
Consensus
Module
State
Machine
Log
Consensus
Module
State
Machine
Servers
Clients
x 1
y 2
x3 y2 x1 z6
x 1
y 2
x3 y2 x1 z6
x 1
y 2
Replicate log
Consensus Module Manage & Replicate the logs
Log collection of commands
State Machine Execute the commands & Produce result
Replicated State Machines (5)
x3 y2 x1 z6
Log
Consensus
Module
State
Machine
Log
Consensus
Module
State
Machine
Log
Consensus
Module
State
Machine
Servers
Clients
x 1
y 2
z 6
x3 y2 x1 z6
x 1
y 2
z 6
x3 y2 x1 z6
x 1
y 2
z 6
Safely replicate log
execute the command
Consensus Module Manage & Replicate the logs
Log collection of commands
State Machine Execute the commands & Produce result
Replicated State Machines (6)
x3 y2 x1 z6
Log
Consensus
Module
State
Machine
Log
Consensus
Module
State
Machine
Log
Consensus
Module
State
Machine
Servers
Clients
x 1
y 2
z 6
x3 y2 x1 z6
x 1
y 2
z 6
x3 y2 x1 z6
x 1
y 2
z 6
z6
Consensus Module Manage & Replicate the logs
Log collection of commands
State Machine Execute the commands & Produce result
Raft 알고리즘의 핵심
• Leader Election
• leader의 failure 발생 시, 새 leader 가 반드시 선출되야 한다.
• Log Replication
• client로부터 log entry를 받으면 클러스터의 노드에 복사해준다.
• Safety
• consistency(일관성), leader election 관련 안전성
Mobile Convergence Laboratory 13 /
RPC for Raft
AppendEntries RPC
• Arguments
• term
• leaderID
• prevLogIndex
• prevLogTerm
• entries[]
RequestVote RPC
• Arguments
• term
• candidateID
• lastLogIndex
• lastLogTerm
Mobile Convergence Laboratory 14 /RPC : Remote Procedure Call
entries값(data값)을 empty이면
Heartbeat
Raft에서의 세 가지 상태
• Follower state
• Candidate state
• Leader state
Mobile Convergence Laboratory 15 /
Raft에서의 세 가지 상태 (cont)
• Follower state
• passive node; 모든 노드의 요청에 대한 응답만 수행 (issue no RPC)
• 클라이언트가 follower에 접속하면 leader에게 리다이렉트
Mobile Convergence Laboratory 16 /
Leader
Follower
Follower
Follower
Client
Raft에서의 세 가지 상태 (cont)
• Candidate state
• follower가 timeout된 상태
• leader에게 heartbeat를 받지 못 했을 때
• candidate 상태로 전이
Mobile Convergence Laboratory 17 /
Raft에서의 세 가지 상태 (cont)
• Leader state
• 모든 클라이언트의 요청을 처리
• 다른 노드(서버)의 Log replication 담당
• 반드시 가용한 leader 가 존재
Mobile Convergence Laboratory 18 /
Leader Election
• 기본적으로 노드들은 follower 로 시작
• leader는 heartbeat 이용
• heartbeat == Empty AppendEntries RPC
• 150ms < timeout < 300ms
• when timeout, follower -> candidate
• candidate는 과반수의 표를 획득하면 leader 로 상태 전이
Mobile Convergence Laboratory 19 /
Mobile Convergence Laboratory 20 /
Heart
beat
Leader FollowerEmpty
AppendEntries RPC
Timeout
150~300ms
Leader Election (cont)
Leader Election (cont)
• 일반적인 heartbeat
• leader가 failure 되었을 경우 or leader 의 응답이 늦을 경우
• http://raftconsensus.github.io/
Mobile Convergence Laboratory 21 /
Log replication
• leader 가 AppendEntries RPC로 수행
• 다른 노드로 복사(동기화)
• https://youtu.be/4OZZv80WrNk
Mobile Convergence Laboratory 22 /
Mobile Convergence Laboratory 23 /
Copycat
Mobile Convergence Laboratory 24 /
Copycat! Why?
• we chose to use Copycat because:
• 순수 자바 기반의 구현물
• 라이선스가 부합한 오픈소스
• 확장성과 커스텀 가능성(customizability)
• 최근까지 커밋, 지속적인 발전
• Well documentation
Mobile Convergence Laboratory 25
By Madan Jampani
copycat
• distributed coordination framework
• 수많은 Raft consensus protocol 구현물 중 하나
• Raft implement + α
26 /Mobile Convergence Laboratory
Mobile Convergence Laboratory 27 / 22
• Active member
• 리더가 될 수 있는 멤버
• Raft protocol
• Synchronous log replication
• Passive member
• 리더 선출에 참여하지 않는
follower
• Gossip protocol
• Asynchronous log replication
Copycat System Architecture
Mobile Convergence Laboratory 28 / 22
Server
Active
Leader
Follower
Candidate
Passive Follower
Raft Protocol
Gossip Protocol
Gossip protocol
• =epidemic protocol
• messages broadcast
• 주기적으로 랜덤한 타겟을 골라 gossip message 전송, 이것을
받아 infected 상태가 된 노드도 똑같이 행동
Mobile Convergence Laboratory 29 / 22
Gossip protocol (1)
• Gossiping = Probabilistic flooding
• Nodes forward with probability, p
Source
Gossip protocol (2)
• Gossip based broadcast
• Nodes forward with probability, p
Source
Gossip protocol (3)
• Gossip based broadcast
• Nodes forward with probability, p
Source
Gossip protocol (4)
• Gossip based broadcast
• Nodes forward with probability, p
Source
Gossip protocol (5)
• Gossip based broadcast
• Nodes forward with probability, p
Source
Gossip protocol (6)
• Gossip based broadcast
• Nodes forward with probability, p
Source
Gossip protocol (7)
• Gossip based broadcast
• Nodes forward with probability, p
Source
Gossip protocol (8)
• Gossip based broadcast
• Nodes forward with probability, p
Source
Gossip protocol (9)
• Gossip based broadcast
• Nodes forward with probability, p
Source
Gossip protocol (10)
• Gossip based broadcast
• Nodes forward with probability, p
Source
Gossip protocol (11)
• Gossip based broadcast
• Nodes forward with probability, p
Source
1. Simple,
2. Fault tolerant
3. Load-balanced

More Related Content

What's hot

Hadoop Meetup Jan 2019 - HDFS Scalability and Consistent Reads from Standby Node
Hadoop Meetup Jan 2019 - HDFS Scalability and Consistent Reads from Standby NodeHadoop Meetup Jan 2019 - HDFS Scalability and Consistent Reads from Standby Node
Hadoop Meetup Jan 2019 - HDFS Scalability and Consistent Reads from Standby NodeErik Krogen
 
MoP(MQTT on Pulsar) - a Powerful Tool for Apache Pulsar in IoT - Pulsar Summi...
MoP(MQTT on Pulsar) - a Powerful Tool for Apache Pulsar in IoT - Pulsar Summi...MoP(MQTT on Pulsar) - a Powerful Tool for Apache Pulsar in IoT - Pulsar Summi...
MoP(MQTT on Pulsar) - a Powerful Tool for Apache Pulsar in IoT - Pulsar Summi...StreamNative
 
Distributed Lock Manager
Distributed Lock ManagerDistributed Lock Manager
Distributed Lock ManagerHao Chen
 
Scylla Summit 2022: How to Migrate a Counter Table for 68 Billion Records
Scylla Summit 2022: How to Migrate a Counter Table for 68 Billion RecordsScylla Summit 2022: How to Migrate a Counter Table for 68 Billion Records
Scylla Summit 2022: How to Migrate a Counter Table for 68 Billion RecordsScyllaDB
 
Beam + Pulsar: Powerful Stream Processing at Scale - Pulsar Summit SF 2022
Beam + Pulsar: Powerful Stream Processing at Scale - Pulsar Summit SF 2022Beam + Pulsar: Powerful Stream Processing at Scale - Pulsar Summit SF 2022
Beam + Pulsar: Powerful Stream Processing at Scale - Pulsar Summit SF 2022StreamNative
 
Apache Kafka Introduction
Apache Kafka IntroductionApache Kafka Introduction
Apache Kafka IntroductionAmita Mirajkar
 
HBase and HDFS: Understanding FileSystem Usage in HBase
HBase and HDFS: Understanding FileSystem Usage in HBaseHBase and HDFS: Understanding FileSystem Usage in HBase
HBase and HDFS: Understanding FileSystem Usage in HBaseenissoz
 
Why Splunk Chose Pulsar_Karthik Ramasamy
Why Splunk Chose Pulsar_Karthik RamasamyWhy Splunk Chose Pulsar_Karthik Ramasamy
Why Splunk Chose Pulsar_Karthik RamasamyStreamNative
 
Apache Pulsar with MQTT for Edge Computing - Pulsar Summit Asia 2021
Apache Pulsar with MQTT for Edge Computing - Pulsar Summit Asia 2021Apache Pulsar with MQTT for Edge Computing - Pulsar Summit Asia 2021
Apache Pulsar with MQTT for Edge Computing - Pulsar Summit Asia 2021StreamNative
 
[234]멀티테넌트 하둡 클러스터 운영 경험기
[234]멀티테넌트 하둡 클러스터 운영 경험기[234]멀티테넌트 하둡 클러스터 운영 경험기
[234]멀티테넌트 하둡 클러스터 운영 경험기NAVER D2
 
Common issues with Apache Kafka® Producer
Common issues with Apache Kafka® ProducerCommon issues with Apache Kafka® Producer
Common issues with Apache Kafka® Producerconfluent
 
카프카, 산전수전 노하우
카프카, 산전수전 노하우카프카, 산전수전 노하우
카프카, 산전수전 노하우if kakao
 
Kafka Streams for Java enthusiasts
Kafka Streams for Java enthusiastsKafka Streams for Java enthusiasts
Kafka Streams for Java enthusiastsSlim Baltagi
 
Monitoring with Prometheus
Monitoring with PrometheusMonitoring with Prometheus
Monitoring with PrometheusShiao-An Yuan
 
Performance Optimizations in Apache Impala
Performance Optimizations in Apache ImpalaPerformance Optimizations in Apache Impala
Performance Optimizations in Apache ImpalaCloudera, Inc.
 

What's hot (20)

Envoy and Kafka
Envoy and KafkaEnvoy and Kafka
Envoy and Kafka
 
Hadoop Meetup Jan 2019 - HDFS Scalability and Consistent Reads from Standby Node
Hadoop Meetup Jan 2019 - HDFS Scalability and Consistent Reads from Standby NodeHadoop Meetup Jan 2019 - HDFS Scalability and Consistent Reads from Standby Node
Hadoop Meetup Jan 2019 - HDFS Scalability and Consistent Reads from Standby Node
 
MoP(MQTT on Pulsar) - a Powerful Tool for Apache Pulsar in IoT - Pulsar Summi...
MoP(MQTT on Pulsar) - a Powerful Tool for Apache Pulsar in IoT - Pulsar Summi...MoP(MQTT on Pulsar) - a Powerful Tool for Apache Pulsar in IoT - Pulsar Summi...
MoP(MQTT on Pulsar) - a Powerful Tool for Apache Pulsar in IoT - Pulsar Summi...
 
Distributed Lock Manager
Distributed Lock ManagerDistributed Lock Manager
Distributed Lock Manager
 
Scylla Summit 2022: How to Migrate a Counter Table for 68 Billion Records
Scylla Summit 2022: How to Migrate a Counter Table for 68 Billion RecordsScylla Summit 2022: How to Migrate a Counter Table for 68 Billion Records
Scylla Summit 2022: How to Migrate a Counter Table for 68 Billion Records
 
Beam + Pulsar: Powerful Stream Processing at Scale - Pulsar Summit SF 2022
Beam + Pulsar: Powerful Stream Processing at Scale - Pulsar Summit SF 2022Beam + Pulsar: Powerful Stream Processing at Scale - Pulsar Summit SF 2022
Beam + Pulsar: Powerful Stream Processing at Scale - Pulsar Summit SF 2022
 
Apache Kafka Introduction
Apache Kafka IntroductionApache Kafka Introduction
Apache Kafka Introduction
 
HBase and HDFS: Understanding FileSystem Usage in HBase
HBase and HDFS: Understanding FileSystem Usage in HBaseHBase and HDFS: Understanding FileSystem Usage in HBase
HBase and HDFS: Understanding FileSystem Usage in HBase
 
Why Splunk Chose Pulsar_Karthik Ramasamy
Why Splunk Chose Pulsar_Karthik RamasamyWhy Splunk Chose Pulsar_Karthik Ramasamy
Why Splunk Chose Pulsar_Karthik Ramasamy
 
Kafka 101
Kafka 101Kafka 101
Kafka 101
 
Apache Pulsar with MQTT for Edge Computing - Pulsar Summit Asia 2021
Apache Pulsar with MQTT for Edge Computing - Pulsar Summit Asia 2021Apache Pulsar with MQTT for Edge Computing - Pulsar Summit Asia 2021
Apache Pulsar with MQTT for Edge Computing - Pulsar Summit Asia 2021
 
[234]멀티테넌트 하둡 클러스터 운영 경험기
[234]멀티테넌트 하둡 클러스터 운영 경험기[234]멀티테넌트 하둡 클러스터 운영 경험기
[234]멀티테넌트 하둡 클러스터 운영 경험기
 
An Introduction to Druid
An Introduction to DruidAn Introduction to Druid
An Introduction to Druid
 
Common issues with Apache Kafka® Producer
Common issues with Apache Kafka® ProducerCommon issues with Apache Kafka® Producer
Common issues with Apache Kafka® Producer
 
카프카, 산전수전 노하우
카프카, 산전수전 노하우카프카, 산전수전 노하우
카프카, 산전수전 노하우
 
Kafka Streams for Java enthusiasts
Kafka Streams for Java enthusiastsKafka Streams for Java enthusiasts
Kafka Streams for Java enthusiasts
 
Monitoring with Prometheus
Monitoring with PrometheusMonitoring with Prometheus
Monitoring with Prometheus
 
Prometheus 101
Prometheus 101Prometheus 101
Prometheus 101
 
Performance Optimizations in Apache Impala
Performance Optimizations in Apache ImpalaPerformance Optimizations in Apache Impala
Performance Optimizations in Apache Impala
 
HBase Accelerated: In-Memory Flush and Compaction
HBase Accelerated: In-Memory Flush and CompactionHBase Accelerated: In-Memory Flush and Compaction
HBase Accelerated: In-Memory Flush and Compaction
 

Viewers also liked

Introduction to Raft algorithm
Introduction to Raft algorithmIntroduction to Raft algorithm
Introduction to Raft algorithmmuayyad alsadi
 
Algoritmos de Consenso: Paxos vs RAFT
Algoritmos de Consenso: Paxos vs RAFTAlgoritmos de Consenso: Paxos vs RAFT
Algoritmos de Consenso: Paxos vs RAFTMaycon Viana Bordin
 
SDN컨트롤러 오벨_아토리서치
SDN컨트롤러 오벨_아토리서치SDN컨트롤러 오벨_아토리서치
SDN컨트롤러 오벨_아토리서치ATTO Research
 
C++17 - the upcoming revolution (Code::Dive 2015)/
C++17 - the upcoming revolution (Code::Dive 2015)/C++17 - the upcoming revolution (Code::Dive 2015)/
C++17 - the upcoming revolution (Code::Dive 2015)/Sławomir Zborowski
 
OpenDaylight MD-SAL Clustering Explained
OpenDaylight MD-SAL Clustering ExplainedOpenDaylight MD-SAL Clustering Explained
OpenDaylight MD-SAL Clustering ExplainedOpenDaylight
 
Voice Recognition Car
Voice Recognition CarVoice Recognition Car
Voice Recognition Carrchovatiya
 
OpenDaylight OpenFlow clustering
OpenDaylight OpenFlow clusteringOpenDaylight OpenFlow clustering
OpenDaylight OpenFlow clusteringOpenDaylight
 
OpenDaylight의 High Availability 기능 분석
OpenDaylight의 High Availability 기능 분석OpenDaylight의 High Availability 기능 분석
OpenDaylight의 High Availability 기능 분석Seung-Hoon Baek
 
Performance analysis of adaptive noise canceller for an ecg signal
Performance analysis of adaptive noise canceller for an ecg signalPerformance analysis of adaptive noise canceller for an ecg signal
Performance analysis of adaptive noise canceller for an ecg signalRaj Kumar Thenua
 
From Mainframe to Microservice: An Introduction to Distributed Systems
From Mainframe to Microservice: An Introduction to Distributed SystemsFrom Mainframe to Microservice: An Introduction to Distributed Systems
From Mainframe to Microservice: An Introduction to Distributed SystemsTyler Treat
 
Differentiated Instruction Strategy Raft
Differentiated Instruction Strategy RaftDifferentiated Instruction Strategy Raft
Differentiated Instruction Strategy Raftulamb
 
The Etsy Shard Architecture: Starts With S and Ends With Hard
The Etsy Shard Architecture: Starts With S and Ends With HardThe Etsy Shard Architecture: Starts With S and Ends With Hard
The Etsy Shard Architecture: Starts With S and Ends With Hardjgoulah
 

Viewers also liked (19)

Introduction to Raft algorithm
Introduction to Raft algorithmIntroduction to Raft algorithm
Introduction to Raft algorithm
 
Raft in details
Raft in detailsRaft in details
Raft in details
 
Algorithms for Cloud Computing
Algorithms for Cloud ComputingAlgorithms for Cloud Computing
Algorithms for Cloud Computing
 
Algoritmos de Consenso: Paxos vs RAFT
Algoritmos de Consenso: Paxos vs RAFTAlgoritmos de Consenso: Paxos vs RAFT
Algoritmos de Consenso: Paxos vs RAFT
 
SDN컨트롤러 오벨_아토리서치
SDN컨트롤러 오벨_아토리서치SDN컨트롤러 오벨_아토리서치
SDN컨트롤러 오벨_아토리서치
 
Copycat presentation
Copycat presentationCopycat presentation
Copycat presentation
 
C++17 - the upcoming revolution (Code::Dive 2015)/
C++17 - the upcoming revolution (Code::Dive 2015)/C++17 - the upcoming revolution (Code::Dive 2015)/
C++17 - the upcoming revolution (Code::Dive 2015)/
 
OpenDaylight MD-SAL Clustering Explained
OpenDaylight MD-SAL Clustering ExplainedOpenDaylight MD-SAL Clustering Explained
OpenDaylight MD-SAL Clustering Explained
 
Sales presentations
Sales presentationsSales presentations
Sales presentations
 
Raft
Raft Raft
Raft
 
Voice Recognition Car
Voice Recognition CarVoice Recognition Car
Voice Recognition Car
 
OpenDaylight OpenFlow clustering
OpenDaylight OpenFlow clusteringOpenDaylight OpenFlow clustering
OpenDaylight OpenFlow clustering
 
OpenDaylight의 High Availability 기능 분석
OpenDaylight의 High Availability 기능 분석OpenDaylight의 High Availability 기능 분석
OpenDaylight의 High Availability 기능 분석
 
Performance analysis of adaptive noise canceller for an ecg signal
Performance analysis of adaptive noise canceller for an ecg signalPerformance analysis of adaptive noise canceller for an ecg signal
Performance analysis of adaptive noise canceller for an ecg signal
 
From Mainframe to Microservice: An Introduction to Distributed Systems
From Mainframe to Microservice: An Introduction to Distributed SystemsFrom Mainframe to Microservice: An Introduction to Distributed Systems
From Mainframe to Microservice: An Introduction to Distributed Systems
 
Differentiated Instruction Strategy Raft
Differentiated Instruction Strategy RaftDifferentiated Instruction Strategy Raft
Differentiated Instruction Strategy Raft
 
reveal.js 3.0.0
reveal.js 3.0.0reveal.js 3.0.0
reveal.js 3.0.0
 
The Etsy Shard Architecture: Starts With S and Ends With Hard
The Etsy Shard Architecture: Starts With S and Ends With HardThe Etsy Shard Architecture: Starts With S and Ends With Hard
The Etsy Shard Architecture: Starts With S and Ends With Hard
 
RAFT
RAFT RAFT
RAFT
 

Similar to RAFT Consensus Algorithm

Streaming Processing with a Distributed Commit Log
Streaming Processing with a Distributed Commit LogStreaming Processing with a Distributed Commit Log
Streaming Processing with a Distributed Commit LogJoe Stein
 
BigDataSpain 2016: Introduction to Apache Apex
BigDataSpain 2016: Introduction to Apache ApexBigDataSpain 2016: Introduction to Apache Apex
BigDataSpain 2016: Introduction to Apache ApexThomas Weise
 
Intro to Apache Apex - Next Gen Native Hadoop Platform - Hackac
Intro to Apache Apex - Next Gen Native Hadoop Platform - HackacIntro to Apache Apex - Next Gen Native Hadoop Platform - Hackac
Intro to Apache Apex - Next Gen Native Hadoop Platform - HackacApache Apex
 
Intro to Apache Apex (next gen Hadoop) & comparison to Spark Streaming
Intro to Apache Apex (next gen Hadoop) & comparison to Spark StreamingIntro to Apache Apex (next gen Hadoop) & comparison to Spark Streaming
Intro to Apache Apex (next gen Hadoop) & comparison to Spark StreamingApache Apex
 
Apache Apex: Stream Processing Architecture and Applications
Apache Apex: Stream Processing Architecture and ApplicationsApache Apex: Stream Processing Architecture and Applications
Apache Apex: Stream Processing Architecture and ApplicationsThomas Weise
 
Apache Apex: Stream Processing Architecture and Applications
Apache Apex: Stream Processing Architecture and Applications Apache Apex: Stream Processing Architecture and Applications
Apache Apex: Stream Processing Architecture and Applications Comsysto Reply GmbH
 
HES2011 - Sebastien Tricaud - Capture me if you can
HES2011 - Sebastien Tricaud - Capture me if you canHES2011 - Sebastien Tricaud - Capture me if you can
HES2011 - Sebastien Tricaud - Capture me if you canHackito Ergo Sum
 
Hackito Ergo Sum 2011: Capture me if you can!
Hackito Ergo Sum 2011: Capture me if you can!Hackito Ergo Sum 2011: Capture me if you can!
Hackito Ergo Sum 2011: Capture me if you can!stricaud
 
Apache Big Data 2016: Next Gen Big Data Analytics with Apache Apex
Apache Big Data 2016: Next Gen Big Data Analytics with Apache ApexApache Big Data 2016: Next Gen Big Data Analytics with Apache Apex
Apache Big Data 2016: Next Gen Big Data Analytics with Apache ApexApache Apex
 
Architectual Comparison of Apache Apex and Spark Streaming
Architectual Comparison of Apache Apex and Spark StreamingArchitectual Comparison of Apache Apex and Spark Streaming
Architectual Comparison of Apache Apex and Spark StreamingApache Apex
 
[발표자료] 오픈소스 Pacemaker 활용한 zabbix 이중화 방안(w/ Zabbix Korea Community)
[발표자료] 오픈소스 Pacemaker 활용한 zabbix 이중화 방안(w/ Zabbix Korea Community) [발표자료] 오픈소스 Pacemaker 활용한 zabbix 이중화 방안(w/ Zabbix Korea Community)
[발표자료] 오픈소스 Pacemaker 활용한 zabbix 이중화 방안(w/ Zabbix Korea Community) 동현 김
 
The DEBS Grand Challenge 2017
The DEBS Grand Challenge 2017The DEBS Grand Challenge 2017
The DEBS Grand Challenge 2017Roman Katerinenko
 
SAND: A Fault-Tolerant Streaming Architecture for Network Traffic Analytics
SAND: A Fault-Tolerant Streaming Architecture for Network Traffic AnalyticsSAND: A Fault-Tolerant Streaming Architecture for Network Traffic Analytics
SAND: A Fault-Tolerant Streaming Architecture for Network Traffic AnalyticsQin Liu
 
Apache Big Data EU 2016: Next Gen Big Data Analytics with Apache Apex
Apache Big Data EU 2016: Next Gen Big Data Analytics with Apache ApexApache Big Data EU 2016: Next Gen Big Data Analytics with Apache Apex
Apache Big Data EU 2016: Next Gen Big Data Analytics with Apache ApexApache Apex
 
Introduction to Apache ZooKeeper | Big Data Hadoop Spark Tutorial | CloudxLab
Introduction to Apache ZooKeeper | Big Data Hadoop Spark Tutorial | CloudxLabIntroduction to Apache ZooKeeper | Big Data Hadoop Spark Tutorial | CloudxLab
Introduction to Apache ZooKeeper | Big Data Hadoop Spark Tutorial | CloudxLabCloudxLab
 
Docker Swarm secrets for creating great FIWARE platforms
Docker Swarm secrets for creating great FIWARE platformsDocker Swarm secrets for creating great FIWARE platforms
Docker Swarm secrets for creating great FIWARE platformsFederico Michele Facca
 
Introduction to Apache Apex by Thomas Weise
Introduction to Apache Apex by Thomas WeiseIntroduction to Apache Apex by Thomas Weise
Introduction to Apache Apex by Thomas WeiseBig Data Spain
 

Similar to RAFT Consensus Algorithm (20)

Streaming Processing with a Distributed Commit Log
Streaming Processing with a Distributed Commit LogStreaming Processing with a Distributed Commit Log
Streaming Processing with a Distributed Commit Log
 
BigDataSpain 2016: Introduction to Apache Apex
BigDataSpain 2016: Introduction to Apache ApexBigDataSpain 2016: Introduction to Apache Apex
BigDataSpain 2016: Introduction to Apache Apex
 
Intro to Apache Apex - Next Gen Native Hadoop Platform - Hackac
Intro to Apache Apex - Next Gen Native Hadoop Platform - HackacIntro to Apache Apex - Next Gen Native Hadoop Platform - Hackac
Intro to Apache Apex - Next Gen Native Hadoop Platform - Hackac
 
Debunking Common Myths in Stream Processing
Debunking Common Myths in Stream ProcessingDebunking Common Myths in Stream Processing
Debunking Common Myths in Stream Processing
 
Intro to Apache Apex (next gen Hadoop) & comparison to Spark Streaming
Intro to Apache Apex (next gen Hadoop) & comparison to Spark StreamingIntro to Apache Apex (next gen Hadoop) & comparison to Spark Streaming
Intro to Apache Apex (next gen Hadoop) & comparison to Spark Streaming
 
Apache Apex: Stream Processing Architecture and Applications
Apache Apex: Stream Processing Architecture and ApplicationsApache Apex: Stream Processing Architecture and Applications
Apache Apex: Stream Processing Architecture and Applications
 
Apache Apex: Stream Processing Architecture and Applications
Apache Apex: Stream Processing Architecture and Applications Apache Apex: Stream Processing Architecture and Applications
Apache Apex: Stream Processing Architecture and Applications
 
Scalable Web Apps
Scalable Web AppsScalable Web Apps
Scalable Web Apps
 
HES2011 - Sebastien Tricaud - Capture me if you can
HES2011 - Sebastien Tricaud - Capture me if you canHES2011 - Sebastien Tricaud - Capture me if you can
HES2011 - Sebastien Tricaud - Capture me if you can
 
Hackito Ergo Sum 2011: Capture me if you can!
Hackito Ergo Sum 2011: Capture me if you can!Hackito Ergo Sum 2011: Capture me if you can!
Hackito Ergo Sum 2011: Capture me if you can!
 
Apache Big Data 2016: Next Gen Big Data Analytics with Apache Apex
Apache Big Data 2016: Next Gen Big Data Analytics with Apache ApexApache Big Data 2016: Next Gen Big Data Analytics with Apache Apex
Apache Big Data 2016: Next Gen Big Data Analytics with Apache Apex
 
Architectual Comparison of Apache Apex and Spark Streaming
Architectual Comparison of Apache Apex and Spark StreamingArchitectual Comparison of Apache Apex and Spark Streaming
Architectual Comparison of Apache Apex and Spark Streaming
 
[발표자료] 오픈소스 Pacemaker 활용한 zabbix 이중화 방안(w/ Zabbix Korea Community)
[발표자료] 오픈소스 Pacemaker 활용한 zabbix 이중화 방안(w/ Zabbix Korea Community) [발표자료] 오픈소스 Pacemaker 활용한 zabbix 이중화 방안(w/ Zabbix Korea Community)
[발표자료] 오픈소스 Pacemaker 활용한 zabbix 이중화 방안(w/ Zabbix Korea Community)
 
The DEBS Grand Challenge 2017
The DEBS Grand Challenge 2017The DEBS Grand Challenge 2017
The DEBS Grand Challenge 2017
 
SAND: A Fault-Tolerant Streaming Architecture for Network Traffic Analytics
SAND: A Fault-Tolerant Streaming Architecture for Network Traffic AnalyticsSAND: A Fault-Tolerant Streaming Architecture for Network Traffic Analytics
SAND: A Fault-Tolerant Streaming Architecture for Network Traffic Analytics
 
Apache Big Data EU 2016: Next Gen Big Data Analytics with Apache Apex
Apache Big Data EU 2016: Next Gen Big Data Analytics with Apache ApexApache Big Data EU 2016: Next Gen Big Data Analytics with Apache Apex
Apache Big Data EU 2016: Next Gen Big Data Analytics with Apache Apex
 
Introduction to Apache ZooKeeper | Big Data Hadoop Spark Tutorial | CloudxLab
Introduction to Apache ZooKeeper | Big Data Hadoop Spark Tutorial | CloudxLabIntroduction to Apache ZooKeeper | Big Data Hadoop Spark Tutorial | CloudxLab
Introduction to Apache ZooKeeper | Big Data Hadoop Spark Tutorial | CloudxLab
 
Ch3-2
Ch3-2Ch3-2
Ch3-2
 
Docker Swarm secrets for creating great FIWARE platforms
Docker Swarm secrets for creating great FIWARE platformsDocker Swarm secrets for creating great FIWARE platforms
Docker Swarm secrets for creating great FIWARE platforms
 
Introduction to Apache Apex by Thomas Weise
Introduction to Apache Apex by Thomas WeiseIntroduction to Apache Apex by Thomas Weise
Introduction to Apache Apex by Thomas Weise
 

More from sangyun han

SDN, ONOS, and Network Virtualization
SDN, ONOS, and Network VirtualizationSDN, ONOS, and Network Virtualization
SDN, ONOS, and Network Virtualizationsangyun han
 
Introduce to OpenVirteX
Introduce to OpenVirteXIntroduce to OpenVirteX
Introduce to OpenVirteXsangyun han
 
XOS in open CORD project
XOS in open CORD projectXOS in open CORD project
XOS in open CORD projectsangyun han
 
Introduction to CORD project
Introduction to CORD projectIntroduction to CORD project
Introduction to CORD projectsangyun han
 
OpenWRT/Hostapd with ONOS
OpenWRT/Hostapd with ONOSOpenWRT/Hostapd with ONOS
OpenWRT/Hostapd with ONOSsangyun han
 
KhuHub student guideline
KhuHub student guidelineKhuHub student guideline
KhuHub student guidelinesangyun han
 
KhuHub professor guideline
KhuHub professor guidelineKhuHub professor guideline
KhuHub professor guidelinesangyun han
 
ONOS - multiple instance setting(Distributed SDN Controller)
ONOS - multiple instance setting(Distributed SDN Controller)ONOS - multiple instance setting(Distributed SDN Controller)
ONOS - multiple instance setting(Distributed SDN Controller)sangyun han
 
ONOS - setting, configuration, installation, and test
ONOS - setting, configuration, installation, and testONOS - setting, configuration, installation, and test
ONOS - setting, configuration, installation, and testsangyun han
 
Introduction of ONOS and core technology
Introduction of ONOS and core technologyIntroduction of ONOS and core technology
Introduction of ONOS and core technologysangyun han
 
ONOS와 Raspberry Pi 기반 가상물리 SDN 실증 환경 구축과 응용 개발
ONOS와 Raspberry Pi 기반 가상물리 SDN 실증 환경 구축과 응용 개발ONOS와 Raspberry Pi 기반 가상물리 SDN 실증 환경 구축과 응용 개발
ONOS와 Raspberry Pi 기반 가상물리 SDN 실증 환경 구축과 응용 개발sangyun han
 
[SoftCon]SDN/IoT 그리고 Testbed
[SoftCon]SDN/IoT 그리고 Testbed[SoftCon]SDN/IoT 그리고 Testbed
[SoftCon]SDN/IoT 그리고 Testbedsangyun han
 
Hazelcast 소개
Hazelcast 소개Hazelcast 소개
Hazelcast 소개sangyun han
 
Implementing SDN Testbed(ONOS & OpenVirteX)
Implementing SDN Testbed(ONOS & OpenVirteX)Implementing SDN Testbed(ONOS & OpenVirteX)
Implementing SDN Testbed(ONOS & OpenVirteX)sangyun han
 
Git & Github Seminar-1
Git & Github Seminar-1Git & Github Seminar-1
Git & Github Seminar-1sangyun han
 
Git & Github Seminar-2
Git & Github Seminar-2Git & Github Seminar-2
Git & Github Seminar-2sangyun han
 

More from sangyun han (16)

SDN, ONOS, and Network Virtualization
SDN, ONOS, and Network VirtualizationSDN, ONOS, and Network Virtualization
SDN, ONOS, and Network Virtualization
 
Introduce to OpenVirteX
Introduce to OpenVirteXIntroduce to OpenVirteX
Introduce to OpenVirteX
 
XOS in open CORD project
XOS in open CORD projectXOS in open CORD project
XOS in open CORD project
 
Introduction to CORD project
Introduction to CORD projectIntroduction to CORD project
Introduction to CORD project
 
OpenWRT/Hostapd with ONOS
OpenWRT/Hostapd with ONOSOpenWRT/Hostapd with ONOS
OpenWRT/Hostapd with ONOS
 
KhuHub student guideline
KhuHub student guidelineKhuHub student guideline
KhuHub student guideline
 
KhuHub professor guideline
KhuHub professor guidelineKhuHub professor guideline
KhuHub professor guideline
 
ONOS - multiple instance setting(Distributed SDN Controller)
ONOS - multiple instance setting(Distributed SDN Controller)ONOS - multiple instance setting(Distributed SDN Controller)
ONOS - multiple instance setting(Distributed SDN Controller)
 
ONOS - setting, configuration, installation, and test
ONOS - setting, configuration, installation, and testONOS - setting, configuration, installation, and test
ONOS - setting, configuration, installation, and test
 
Introduction of ONOS and core technology
Introduction of ONOS and core technologyIntroduction of ONOS and core technology
Introduction of ONOS and core technology
 
ONOS와 Raspberry Pi 기반 가상물리 SDN 실증 환경 구축과 응용 개발
ONOS와 Raspberry Pi 기반 가상물리 SDN 실증 환경 구축과 응용 개발ONOS와 Raspberry Pi 기반 가상물리 SDN 실증 환경 구축과 응용 개발
ONOS와 Raspberry Pi 기반 가상물리 SDN 실증 환경 구축과 응용 개발
 
[SoftCon]SDN/IoT 그리고 Testbed
[SoftCon]SDN/IoT 그리고 Testbed[SoftCon]SDN/IoT 그리고 Testbed
[SoftCon]SDN/IoT 그리고 Testbed
 
Hazelcast 소개
Hazelcast 소개Hazelcast 소개
Hazelcast 소개
 
Implementing SDN Testbed(ONOS & OpenVirteX)
Implementing SDN Testbed(ONOS & OpenVirteX)Implementing SDN Testbed(ONOS & OpenVirteX)
Implementing SDN Testbed(ONOS & OpenVirteX)
 
Git & Github Seminar-1
Git & Github Seminar-1Git & Github Seminar-1
Git & Github Seminar-1
 
Git & Github Seminar-2
Git & Github Seminar-2Git & Github Seminar-2
Git & Github Seminar-2
 

Recently uploaded

cpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptcpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptrcbcrtm
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentationvaddepallysandeep122
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Mater
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 

Recently uploaded (20)

cpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptcpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.ppt
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentation
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 

RAFT Consensus Algorithm

  • 1. RAFT algorithm & Copycat 2015-08-17 Mobile Convergence LAB, Department of Computer Engineering, Kyung Hee University.
  • 2. Consensus Algorithm Mobile Convergence Laboratory 1 / 분산 컴퓨팅 분야에서 하나의 클러스터링 시스템에서 몇 개의 인스턴스가 오류가 발생하더라도 계속해서 서비스가 제공되도록 해주는 알고리즘 각 노드의 상태에 의존하는 어떤 값이 서로 일치하게 됨 각 노드가 네트워크 상의 이웃 노드들과 관련 정보를 공유하는 상호 규칙
  • 3. In Consensus… • Minority of servers fail = No problem • 정상 작동하는 서버가 과반수 이상이면 시스템은 정상 작동 • Key : Consistent storage system Mobile Convergence Laboratory 2 /
  • 4. Paxos • 1989년도에 발표 • Consensus Algorithm을 구현한 대표적인 프로토콜 • 이해하기 너무 어렵고, 실제 구현하기 어렵다라는 단점이 존재 3 /Mobile Convergence Laboratory
  • 5. Why Raft? • 너무 어려운 Paxos의 대안으로 주목받은 알고리즘 • 세분화되어 이해하기 쉽고, 구현하기 쉽게 개발(연구)됨 Mobile Convergence Laboratory 4 /
  • 7. Raft • “In Search of an Understandable Consensus Algorithm” • Diego Ongaro & John Ousterhout in Stanford • Best Paper Award at the 2014 USENIX Annual Technial Conference. • 이후 박사 학위 논문에서 확장하여 발표 (Consensus: Bridging Theory and Practice) Mobile Convergence Laboratory 6 / USENIX : Unix Users Group / 컴퓨터시스템 분야 세계 최고의 권위의 학술단체 첫 논문 : 18pages / 박사 논문 : 258pages
  • 8. Replicated State Machines (1) x3 y2 x1 Log Consensus Module State Machine Log Consensus Module State Machine Log Consensus Module State Machine Servers Clients x 1 y 2 x3 y2 x1 x 1 y 2 x3 y2 x1 x 1 y 2 Consensus Module Manage & Replicate the logs Log collection of commands State Machine Execute the commands & Produce result
  • 9. Replicated State Machines (2) x3 y2 x1 Log Consensus Module State Machine Log Consensus Module State Machine Log Consensus Module State Machine Servers Clients x 1 y 2 x3 y2 x1 x 1 y 2 x3 y2 x1 z6 x 1 y 2 z6 Record local machine Consensus Module Manage & Replicate the logs Log collection of commands State Machine Execute the commands & Produce result
  • 10. Replicated State Machines (3) x3 y2 x1 Log Consensus Module State Machine Log Consensus Module State Machine Log Consensus Module State Machine Servers Clients x 1 y 2 x3 y2 x1 x 1 y 2 x3 y2 x1 z6 x 1 y 2 Pass to other machines Consensus Module Manage & Replicate the logs Log collection of commands State Machine Execute the commands & Produce result
  • 11. Replicated State Machines (4) x3 y2 x1 z6 Log Consensus Module State Machine Log Consensus Module State Machine Log Consensus Module State Machine Servers Clients x 1 y 2 x3 y2 x1 z6 x 1 y 2 x3 y2 x1 z6 x 1 y 2 Replicate log Consensus Module Manage & Replicate the logs Log collection of commands State Machine Execute the commands & Produce result
  • 12. Replicated State Machines (5) x3 y2 x1 z6 Log Consensus Module State Machine Log Consensus Module State Machine Log Consensus Module State Machine Servers Clients x 1 y 2 z 6 x3 y2 x1 z6 x 1 y 2 z 6 x3 y2 x1 z6 x 1 y 2 z 6 Safely replicate log execute the command Consensus Module Manage & Replicate the logs Log collection of commands State Machine Execute the commands & Produce result
  • 13. Replicated State Machines (6) x3 y2 x1 z6 Log Consensus Module State Machine Log Consensus Module State Machine Log Consensus Module State Machine Servers Clients x 1 y 2 z 6 x3 y2 x1 z6 x 1 y 2 z 6 x3 y2 x1 z6 x 1 y 2 z 6 z6 Consensus Module Manage & Replicate the logs Log collection of commands State Machine Execute the commands & Produce result
  • 14. Raft 알고리즘의 핵심 • Leader Election • leader의 failure 발생 시, 새 leader 가 반드시 선출되야 한다. • Log Replication • client로부터 log entry를 받으면 클러스터의 노드에 복사해준다. • Safety • consistency(일관성), leader election 관련 안전성 Mobile Convergence Laboratory 13 /
  • 15. RPC for Raft AppendEntries RPC • Arguments • term • leaderID • prevLogIndex • prevLogTerm • entries[] RequestVote RPC • Arguments • term • candidateID • lastLogIndex • lastLogTerm Mobile Convergence Laboratory 14 /RPC : Remote Procedure Call entries값(data값)을 empty이면 Heartbeat
  • 16. Raft에서의 세 가지 상태 • Follower state • Candidate state • Leader state Mobile Convergence Laboratory 15 /
  • 17. Raft에서의 세 가지 상태 (cont) • Follower state • passive node; 모든 노드의 요청에 대한 응답만 수행 (issue no RPC) • 클라이언트가 follower에 접속하면 leader에게 리다이렉트 Mobile Convergence Laboratory 16 / Leader Follower Follower Follower Client
  • 18. Raft에서의 세 가지 상태 (cont) • Candidate state • follower가 timeout된 상태 • leader에게 heartbeat를 받지 못 했을 때 • candidate 상태로 전이 Mobile Convergence Laboratory 17 /
  • 19. Raft에서의 세 가지 상태 (cont) • Leader state • 모든 클라이언트의 요청을 처리 • 다른 노드(서버)의 Log replication 담당 • 반드시 가용한 leader 가 존재 Mobile Convergence Laboratory 18 /
  • 20. Leader Election • 기본적으로 노드들은 follower 로 시작 • leader는 heartbeat 이용 • heartbeat == Empty AppendEntries RPC • 150ms < timeout < 300ms • when timeout, follower -> candidate • candidate는 과반수의 표를 획득하면 leader 로 상태 전이 Mobile Convergence Laboratory 19 /
  • 21. Mobile Convergence Laboratory 20 / Heart beat Leader FollowerEmpty AppendEntries RPC Timeout 150~300ms Leader Election (cont)
  • 22. Leader Election (cont) • 일반적인 heartbeat • leader가 failure 되었을 경우 or leader 의 응답이 늦을 경우 • http://raftconsensus.github.io/ Mobile Convergence Laboratory 21 /
  • 23. Log replication • leader 가 AppendEntries RPC로 수행 • 다른 노드로 복사(동기화) • https://youtu.be/4OZZv80WrNk Mobile Convergence Laboratory 22 /
  • 26. Copycat! Why? • we chose to use Copycat because: • 순수 자바 기반의 구현물 • 라이선스가 부합한 오픈소스 • 확장성과 커스텀 가능성(customizability) • 최근까지 커밋, 지속적인 발전 • Well documentation Mobile Convergence Laboratory 25 By Madan Jampani
  • 27. copycat • distributed coordination framework • 수많은 Raft consensus protocol 구현물 중 하나 • Raft implement + α 26 /Mobile Convergence Laboratory
  • 28. Mobile Convergence Laboratory 27 / 22 • Active member • 리더가 될 수 있는 멤버 • Raft protocol • Synchronous log replication • Passive member • 리더 선출에 참여하지 않는 follower • Gossip protocol • Asynchronous log replication Copycat System Architecture
  • 29. Mobile Convergence Laboratory 28 / 22 Server Active Leader Follower Candidate Passive Follower Raft Protocol Gossip Protocol
  • 30. Gossip protocol • =epidemic protocol • messages broadcast • 주기적으로 랜덤한 타겟을 골라 gossip message 전송, 이것을 받아 infected 상태가 된 노드도 똑같이 행동 Mobile Convergence Laboratory 29 / 22
  • 31. Gossip protocol (1) • Gossiping = Probabilistic flooding • Nodes forward with probability, p Source
  • 32. Gossip protocol (2) • Gossip based broadcast • Nodes forward with probability, p Source
  • 33. Gossip protocol (3) • Gossip based broadcast • Nodes forward with probability, p Source
  • 34. Gossip protocol (4) • Gossip based broadcast • Nodes forward with probability, p Source
  • 35. Gossip protocol (5) • Gossip based broadcast • Nodes forward with probability, p Source
  • 36. Gossip protocol (6) • Gossip based broadcast • Nodes forward with probability, p Source
  • 37. Gossip protocol (7) • Gossip based broadcast • Nodes forward with probability, p Source
  • 38. Gossip protocol (8) • Gossip based broadcast • Nodes forward with probability, p Source
  • 39. Gossip protocol (9) • Gossip based broadcast • Nodes forward with probability, p Source
  • 40. Gossip protocol (10) • Gossip based broadcast • Nodes forward with probability, p Source
  • 41. Gossip protocol (11) • Gossip based broadcast • Nodes forward with probability, p Source 1. Simple, 2. Fault tolerant 3. Load-balanced