Choose a default theme

You can change your theme from the menu

MyRocks

Earlier revision · 1View current content

MyRocks는 RocksDB를 기반으로 SQL 서버의 테이블과 인덱스를 저장하는 엔진이다. 쓰기 증폭과 압축 효율을 중요한 설계 대상으로 삼는다. RocksDB 자체와 달리 관계형 데이터를 키·값 레코드로 변환하는 계층이 포함된다.

분야

RocksDB 기반 SQL 저장 엔진

구성 계층

SQL 서버는 문장 처리와 관계형 인터페이스를 제공하고, MyRocks는 테이블·인덱스 표현을 RocksDB의 키와 값으로 대응시킨다. 예를 들어 기본 키로 행을 찾는 연산과 보조 인덱스로 후보를 찾는 연산에는 서로 다른 키 구성이 사용된다.

공개된 초기 레코드 형식 자료에서는 인덱스 식별자와 키 값을 결합하고, 보조 인덱스 키에 기본 키 정보를 포함하는 구조를 설명한다. 이 자료는 구현 이해를 위한 역사적 자료이며, 모든 배포판의 현재 파일 형식이나 제약을 보증하는 명세로 취급해서는 안 된다.

성능 특성과 비용

RocksDB 기반이라는 특성 때문에 컴팩션, 압축, 저장 장치의 쓰기량이 성능 분석의 주요 대상이 된다. 압축률이나 쓰기 증폭 개선 가능성이 곧 모든 쿼리에서 InnoDB보다 빠르다는 뜻은 아니다. 범위 조회, 갱신 패턴, 보조 인덱스 수, CPU 사용량을 포함해 실제 부하를 비교해야 한다.

배포판별 차이

MariaDB 문서는 MyRocks를 외부 상위 프로젝트에 기반한 커뮤니티 기여 엔진으로 설명한다. Facebook의 MySQL 계열 구현, MariaDB, Percona Server의 구현은 기능과 설정, 포함된 RocksDB 버전이 같다고 가정할 수 없다. 도입 여부는 사용할 서버 배포판과 지원 버전을 기준으로 판단한다.

Facebook의 mysql-5.6 저장소는 조사 시점에 보관 처리된 상태였다. 과거 위키의 벤치마크나 제약을 최신 배포판 전체에 적용하지 않고, 선택한 배포판의 문서와 릴리스 정보를 추가로 대조해야 한다.

이전 검토

다른 엔진에서 이전할 때에는 SQL 문법의 수용 여부뿐 아니라 격리 수준, 잠금, 지원 데이터 형식, 백업·복구와 복제 경로를 검토한다. 같은 행 수를 적재하는 시험 외에도 동시 갱신과 장애 복구를 포함한 검증이 필요하다.

함께 읽기

RocksDB · MySQL · InnoDB

참고 자료