Back-End/RocksDB

[RocksDB] RocksDB dbpath directory에 생성 되는 파일 정리

psy_er 2024. 8. 2. 14:55
728x90

[RocksDB] RocksDB dbpath directory에 생성 되는 파일 정리

1. CURRENT 파일

  • 현재 사용 중인 MANIFEST 파일의 이름을 담고 있는 단일 라인 텍스트 파일입니다.
  • RocksDB가 재시작될 때, 어떤 MANIFEST 파일이 사용 중인지 확인하는 데 사용됩니다.

2. MANIFEST 파일

  • 데이터베이스의 메타데이터와 SST 파일의 위치, 레벨 등 중요한 정보를 기록합니다.
  • MANIFEST 파일은 지속적으로 업데이트되며, 새로운 버전이 생성될 때마다 이전 상태를 기록합니다.
  • 파일 이름 형식은 MANIFEST-<number>입니다.

3. LOG 파일

  • DB가 열릴 때, DB의 활동 로그를 기록합니다.
  • 디버깅과 문제 해결에 유용합니다.
  • 파일 이름 형식은 LOG 또는 LOG.old.<timestamp>입니다.

4. OPTIONS 파일

  • RocksDB의 옵션 설정 정보를 담고 있습니다.
  • 옵션 변경 기록이 저장되며, 디버깅과 성능 튜닝에 유용합니다.
  • 파일 이름 형식은 OPTIONS-<number>입니다.

5. SST (Sorted String Table) 파일

  • 실제 키-값 데이터를 저장하는 파일입니다.
  • SST 파일은 불변(immutable)이며, 데이터가 정렬된 상태로 저장됩니다.
  • 파일 이름 형식은 00000<file_number>.sst입니다.

6. Write Ahead Log (WAL) 파일

  • MemTable에 기록되는 데이터가 먼저 WAL에 기록됩니다.
  • 시스템 장애 시 데이터 복구에 사용됩니다.
  • 파일 이름 형식은 00000<file_number>.log입니다.

7. LOCK 파일

  • RocksDB 인스턴스가 해당 데이터베이스를 독점적으로 사용하는 것을 보장합니다.
  • 동일한 데이터베이스 경로를 여러 인스턴스가 동시에 열지 못하게 합니다.
  • 파일 이름은 단순히 LOCK입니다.

8. IDENTITY 파일

  • 데이터베이스의 유니크한 식별자입니다.
  • 복제된 DB 환경에서 유니크 식별을 위해 사용됩니다.
  • 파일 이름은 IDENTITY입니다.

9. LDB 파일

  • RocksDB의 일부 버전에서 사용되며, SST 파일과 비슷한 역할을 합니다.
  • 파일 이름 형식은 00000<file_number>.ldb입니다.

10. MERGE_OPERANDS 파일

  • 병합 연산의 중간 결과를 저장합니다.
  • RocksDB의 병합 연산이 필요할 때 사용됩니다.
  • 파일 이름 형식은 00000<file_number>.merge입니다.

 

 

 

<참고 문서>

 

RocksDB 아키텍처, 3번 참조
https://github.com/facebook/rocksdb/wiki/RocksDB-Overview

기타 파일
https://github.com/facebook/rocksdb/wiki/Terminology

Options file
https://github.com/facebook/rocksdb/wiki/RocksDB-Options-File

Log file
https://github.com/facebook/rocksdb/wiki/Write-Ahead-Log-File-Format

SST file
https://github.com/facebook/rocksdb/wiki/Rocksdb-BlockBasedTable-Format 입니다.

728x90