'raft'에 해당되는 글 1건

  1. 2018.03.21 Apache Ratis 소개 3
반응형

얼마 전 업무를 하다가

Apache HBase 에서는 client 와 Region Server 사이에서 통신은 어떻게 이루어질까 하는 의문이 들었다.

그래서 HBase 소스를 보니 HBase 에서는 모든 통신을 ZooKeeper 를 통해서 한다는걸 알았다.

소스 상에서는 ZooKeeper 에다가 node 에 변경을 가하고 끝이다.

그러면 HBase 를 띄울 때 같이 실행된 ZKWatcher 에서는 해당 node 를 계속 listen 하고 있다가 node 가 변경되면 뭔가의 작업이 이루어지는 구조였다.

그래서 mapper 가 많은데 mapper 에서 HTable 을 열어서 뭔가의 작업을 하면 항상 ZooKeeper max connection 에러가 나서 Region Server 가 몇개 죽거나 그랬다

애초에 mapper 에서 HTable.delete() 를 한다는게 말이 안되는 거였다.

왜냐하면 HTable 을 열고 뭔가 작업을 하면 HBase cluster 전체에 있는 Region Server 전체가 실행할 것이다 근데 그걸 모든 mapper 에서 실행했으니 ZooKeeper max connection 을 초과하는게 당연한 얘기일 것이다.


그리고 가끔 Apache incubator project list 를 보는데 Ratis 라는 project 를 보니 ZooKeeper 와 비슷한 project 였다.

Ratis project 는 Raft 알고리즘의 구현체이다.

Raft 알고리즘은 대표적인 합의 알고리즘(Consensus algorithm)인 Paxos 보다 이해가 쉽고 구현이 쉬운 알고리즘이라고 소개하고 있다.

구글링 해보면 합의 알고리즘이란 분산환경에서 신뢰성을 보장하도록 하는 알고리즘으로 최근 블록체인이 이슈가 되면서 합의 알고리즘 포스팅도 많아진 것 같다.


다음 포스팅은 Raft Protocol 논문을 읽고 요약해봐야겠다

반응형
Posted by FeliZ_하늘..
,