백엔드
비트윈의 HBase 스키마 해부
두줄요약
비트윈의 HBase 저장 구조와 Datastore 기반 접근 방식을 설명했습니다. 트랜잭션·인덱스·키 설계로 성능과 무결성을 확보했습니다.
구조와 흐름
- 데이터 종류별 테이블 분리와 관련 데이터의 단일 Row 집합
- Thrift 직렬화, Datastore 추상화, 부모-자식 Key 기반 데이터 접근
- Column Qualifier로 객체·자식 객체·컬렉션 메타데이터를 논리적 트리 형태로 구성
선택 이유
- 타입별 데이터 연속 배치로 자식 객체 Scan과 Sequential Read 최적화
- Metadata의 컬렉션 선두 배치로 빈번한 동시 접근 데이터의 인접성 확보
- Trigger와 Haeinsa 트랜잭션을 통한 Secondary Index 원자적 갱신
성능/운영 포인트
- 테이블별 Row 부하 분리로 Region Split 정책 단순화
- 동일 Row 연산의 단일 RPC 커밋과 Block Cache 적중률 향상
- 랜덤 Root ID 기반 Row Key로 Region 서버 부하 분산
주의할 점
- Thrift 신규 필드와 롤링 업데이트 조합에서 구버전 서버 재저장 시 신규 값 유실 가능성
- 신규 Thrift 적용 구버전 선배포 후 업데이트 서버 롤링 배포 방식으로 호환성 관리
