[Vitess: MySQL Clustering System - 1] 구조 뜯어보기
Vitess란 무엇인가? Vitess는 여러 MySQL 인스턴스들을 하나의 논리적인 데이터베이스처럼 사용할 수 있게 해주는 오픈소스 분산 데이터베이스 시스템이다. 애플리케이션은 MySQL 연결/프로토콜이 호환되는 VTGate 라는 게이트웨이에 연결하며, VTGate가 쿼리를 적절한 shard의 VTTablet으로 전달하는 구조이다.이를 통해 애플리케이션에 샤딩 로직을 직접 구현하지 않고도, 자유롭게 MySQL 수평 확장을 할 수 있다. 또한 리샤딩, 장애 복구, 복제, 백업, 온라인 스키마 변경 등 여러 운영 기능을 함께 제공한다. 관심을 갖게 된 계기? 회사에서 특정 Gateway를 개발하면서 DB에서 통신할 때 사용하는 wire protocol과 DB-aware Gateway의 동작 & 역할을 고민..