CockroachDB
콕로치DB(CockroachDB)는 전 구글 직원들이 대기업 데이터 솔루션을 오픈소스로 만들었다. 콕로치DB는 확장성이 뛰어나고 지리적으로 분산 복제되는 트랜잭션 데이터 스토어다.
구글은 글로벌 온라인 자산을 통해 거래되는 테라바이트 단위의 데이터를 유지하기 위해 스패너(Spanner)를 개발했다. 이 강력한 도구는 구글에게 확장성과 생존성, 트랜잭션 기능을 제공하는데, 콕로치DB 개발팀은 이러한 특성을 오픈소스 커뮤니티로 그대로 가져왔다. 실제 바퀴벌레(cockroach)와 마찬가지로 콕로치DB는 머리가 없어도 생존할 수 있다. 즉, 어느 노드에 장애가 발생하더라도 계속 운영이 가능하다. 이 오픈소스 프로젝트에는 베테랑 기여자들로 구성된 듬직한 커뮤니티가 있다. 또한, 설립자들은 소셜 미디어와 깃 허브, 네트워킹, 컨퍼런스, 모임 등을 통해 활발하게 커뮤니티를 조성하고 있다.
2025년을 위한 7개의 데이터베이스 중 하나
- Database#2025년을 위한 7개의 데이터베이스 (GeekNews) 참조
- CockroachDB는 글로벌 분산 데이터베이스
- PostgreSQL 와이어 프로토콜과 호환되며, 수평 확장과 강한 일관성을 지원
- Google Spanner에서 영감을 받은 설계로, 다중 지역에 걸친 데이터베이스 확장을 가능케 함
- 시간 동기화 기술:
- Google Spanner는 원자 시계와 GPS 시계를 사용하지만, CockroachDB는 일반 하드웨어에서도 동작하도록 설계
- NTP 기반 동기화 지연 보정, 노드 간 클록 드리프트 비교 및 최대 오프셋 초과 시 멤버 종료
- 다중 지역 구성:
- 테이블 로컬리티(Table Localities) 기능을 통해 읽기/쓰기 트레이드오프에 따른 최적화 가능
- 데이터가 사용자 지리적 위치에 맞게 분산되어 성능과 지연 시간을 개선
- MovR 예제 재구현:
- 원하는 언어와 프레임워크를 사용해 MovR(분산 애플리케이션 예제)을 구현
- CockroachDB의 다중 지역 및 스케일링 전략을 활용하여 글로벌 애플리케이션 설계 실험
- DynamoDB와 같은 다른 분산 데이터베이스와 달리 로컬 환경에서 무료로 실행 가능
- 강한 일관성과 글로벌 분산 지원이라는 차별화된 특성 제공
See also
Favorite site
- Github: cockroachdb project site
- CockroachDB web site
- CTO가 커리어를 걸고 비트 레벨까지 내려가서 DB를 해킹했던 이야기
- 데브시스터즈 역사상 가장 길었던 쿠키런: 킹덤의 36시간 장애
- 메인 분산 DB로 CockroachDB를 사용 : 4대의 노드, 12TB의 스토리지, 7개의 복제본
- 데이터베이스 확장 작업중 노드 절반이 다운
- 이로 인해 서비스 전체 장애가 발생, CockroachDB쪽 서포트 엔지니어는 복구가 불가능하다고 판단
- 그래서 직접 스토리지에 저장된 데이터를 찾기 위한 노력들을 정리한 글