SlideShare une entreprise Scribd logo
1  sur  41
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

An Introduction to Apache Kafka
An Introduction to Apache KafkaAn Introduction to Apache Kafka
An Introduction to Apache KafkaAmir Sedighi
 
Introduction to the Disruptor
Introduction to the DisruptorIntroduction to the Disruptor
Introduction to the DisruptorTrisha Gee
 
syzkaller: the next gen kernel fuzzer
syzkaller: the next gen kernel fuzzersyzkaller: the next gen kernel fuzzer
syzkaller: the next gen kernel fuzzerDmitry Vyukov
 
Building Microservices with Apache Kafka
Building Microservices with Apache KafkaBuilding Microservices with Apache Kafka
Building Microservices with Apache Kafkaconfluent
 
Asynchronous stream processing with Akka Streams
Asynchronous stream processing with Akka StreamsAsynchronous stream processing with Akka Streams
Asynchronous stream processing with Akka StreamsJohan Andrén
 
Networking in Java with NIO and Netty
Networking in Java with NIO and NettyNetworking in Java with NIO and Netty
Networking in Java with NIO and NettyConstantine Slisenka
 
Event Sourcing - Greg Young
Event Sourcing - Greg YoungEvent Sourcing - Greg Young
Event Sourcing - Greg YoungJAXLondon2014
 
Identity Days 2022 - Quel est l’avenir de l’annuaire Active Directory ?
Identity Days 2022 - Quel est l’avenir de l’annuaire Active Directory ?Identity Days 2022 - Quel est l’avenir de l’annuaire Active Directory ?
Identity Days 2022 - Quel est l’avenir de l’annuaire Active Directory ?Identity Days
 
Adopting Domain-Driven Design in your organization
Adopting Domain-Driven Design in your organizationAdopting Domain-Driven Design in your organization
Adopting Domain-Driven Design in your organizationAleix Morgadas
 
Paxos introduction
Paxos introductionPaxos introduction
Paxos introduction宗志 陈
 
ITLC HN 14 - Bizweb Microservices Architecture
ITLC HN 14  - Bizweb Microservices ArchitectureITLC HN 14  - Bizweb Microservices Architecture
ITLC HN 14 - Bizweb Microservices ArchitectureIT Expert Club
 
Messaging queue - Kafka
Messaging queue - KafkaMessaging queue - Kafka
Messaging queue - KafkaMayank Bansal
 
Effectively-once semantics in Apache Pulsar
Effectively-once semantics in Apache PulsarEffectively-once semantics in Apache Pulsar
Effectively-once semantics in Apache PulsarMatteo Merli
 
RabbitMQ vs Apache Kafka - Part 1
RabbitMQ vs Apache Kafka - Part 1RabbitMQ vs Apache Kafka - Part 1
RabbitMQ vs Apache Kafka - Part 1Erlang Solutions
 
Python과 Git으로 만드는 모바일 게임 패치 시스템
Python과 Git으로 만드는 모바일 게임 패치 시스템Python과 Git으로 만드는 모바일 게임 패치 시스템
Python과 Git으로 만드는 모바일 게임 패치 시스템Youngtaek Oh
 
Drools 6.0 (Red Hat Summit)
Drools 6.0 (Red Hat Summit)Drools 6.0 (Red Hat Summit)
Drools 6.0 (Red Hat Summit)Mark Proctor
 
Kafka Security 101 and Real-World Tips
Kafka Security 101 and Real-World Tips Kafka Security 101 and Real-World Tips
Kafka Security 101 and Real-World Tips confluent
 
Distributed stream processing with Apache Kafka
Distributed stream processing with Apache KafkaDistributed stream processing with Apache Kafka
Distributed stream processing with Apache Kafkaconfluent
 

Tendances (20)

An Introduction to Apache Kafka
An Introduction to Apache KafkaAn Introduction to Apache Kafka
An Introduction to Apache Kafka
 
Introduction to the Disruptor
Introduction to the DisruptorIntroduction to the Disruptor
Introduction to the Disruptor
 
syzkaller: the next gen kernel fuzzer
syzkaller: the next gen kernel fuzzersyzkaller: the next gen kernel fuzzer
syzkaller: the next gen kernel fuzzer
 
Building Microservices with Apache Kafka
Building Microservices with Apache KafkaBuilding Microservices with Apache Kafka
Building Microservices with Apache Kafka
 
Asynchronous stream processing with Akka Streams
Asynchronous stream processing with Akka StreamsAsynchronous stream processing with Akka Streams
Asynchronous stream processing with Akka Streams
 
Networking in Java with NIO and Netty
Networking in Java with NIO and NettyNetworking in Java with NIO and Netty
Networking in Java with NIO and Netty
 
Event Sourcing - Greg Young
Event Sourcing - Greg YoungEvent Sourcing - Greg Young
Event Sourcing - Greg Young
 
Identity Days 2022 - Quel est l’avenir de l’annuaire Active Directory ?
Identity Days 2022 - Quel est l’avenir de l’annuaire Active Directory ?Identity Days 2022 - Quel est l’avenir de l’annuaire Active Directory ?
Identity Days 2022 - Quel est l’avenir de l’annuaire Active Directory ?
 
Adopting Domain-Driven Design in your organization
Adopting Domain-Driven Design in your organizationAdopting Domain-Driven Design in your organization
Adopting Domain-Driven Design in your organization
 
Paxos introduction
Paxos introductionPaxos introduction
Paxos introduction
 
Event storming recipes
Event storming recipesEvent storming recipes
Event storming recipes
 
ITLC HN 14 - Bizweb Microservices Architecture
ITLC HN 14  - Bizweb Microservices ArchitectureITLC HN 14  - Bizweb Microservices Architecture
ITLC HN 14 - Bizweb Microservices Architecture
 
Messaging queue - Kafka
Messaging queue - KafkaMessaging queue - Kafka
Messaging queue - Kafka
 
Effectively-once semantics in Apache Pulsar
Effectively-once semantics in Apache PulsarEffectively-once semantics in Apache Pulsar
Effectively-once semantics in Apache Pulsar
 
RabbitMQ vs Apache Kafka - Part 1
RabbitMQ vs Apache Kafka - Part 1RabbitMQ vs Apache Kafka - Part 1
RabbitMQ vs Apache Kafka - Part 1
 
Kafka 101
Kafka 101Kafka 101
Kafka 101
 
Python과 Git으로 만드는 모바일 게임 패치 시스템
Python과 Git으로 만드는 모바일 게임 패치 시스템Python과 Git으로 만드는 모바일 게임 패치 시스템
Python과 Git으로 만드는 모바일 게임 패치 시스템
 
Drools 6.0 (Red Hat Summit)
Drools 6.0 (Red Hat Summit)Drools 6.0 (Red Hat Summit)
Drools 6.0 (Red Hat Summit)
 
Kafka Security 101 and Real-World Tips
Kafka Security 101 and Real-World Tips Kafka Security 101 and Real-World Tips
Kafka Security 101 and Real-World Tips
 
Distributed stream processing with Apache Kafka
Distributed stream processing with Apache KafkaDistributed stream processing with Apache Kafka
Distributed stream processing with Apache Kafka
 

En vedette

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
 

En vedette (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
 

Similaire à 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
 

Similaire à 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
 

Plus de 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
 

Plus de 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
 

Dernier

Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Bert Jan Schrijver
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesVictorSzoltysek
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...Shane Coughlan
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is insideshinachiaurasa2
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfonteinmasabamasaba
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastPapp Krisztián
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in sowetomasabamasaba
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...masabamasaba
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 

Dernier (20)

Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 

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