데이터 & 인프라

Kudu Failover Architecture

작성자: 김영찬

  • Kudu는 Master Server와 Tablet Server로 구성
  • Tablet은 table의 일부를 저장하는 저장소
  • Tablet Server는 데이터 저장과 처리를 책임
  • Master Server는 데이터는 저장하지 않고 메타데이터(스키마) 관리만 책임짐
  • HA 모델에서는 복수(기본 3대)의 Master Server와 Tablet Server cluster로 구성
  • 복수 Master Server에서 1대의 Leasder를 홀수의 Master 사이에서 선출. Leader Master는 client의 데이터 접근에 대한 책임을 짐
  • Leader가 아닌 Master는 Follower라고 하고 leader의 cluster metadata를 동기화함
  • 각각의 table은 최소 3대의 각기 다른 tablet serve로 복제되어 fault tolerant를 보장함
  • Master Server와 마찬가지로 Tablet server간에서도 Leader Tablet Server를 선출함. 나머지는 Follower가 됨
  • Leader와 follower 모두 읽기를 지원하나 쓰기는 Leader에서만 지원함
  • Leader는operation를 follower에 확산하여 항상 동기화가 되고, Leader 중지시 Follower에서 다시 Leader를 선출함