프로젝트 소개
FrogDB는 Rust로 작성된 메모리 우선 데이터베이스로, Redis 8.0과의 완전한 호환성을 지향합니다. 비동기 엔진으로 Tokio를 기반으로 구축되었으며 RESP2와 RESP3 유선 프로토콜을 모두 구현하여, 클러스터 인식 클라이언트를 포함한 모든 기존 Redis 클라이언트를 수정 없이 연결할 수 있습니다.
상태: FrogDB는 사전 출시(pre-release) 소프트웨어이며 주요 변경 사항이 예상됩니다. README에 따르면 일관성 모델이 재작성 및 강화 중이고, 클러스터 및 복제 코드도 재작성 중이므로 해당 영역의 동작과 API는 변경될 수 있습니다.
데이터 타입 및 명령
- 핵심 구조: Strings, Lists, Sets, Sorted Sets, Hashes, Streams
- 비트맵 및 비트필드: BITCOUNT, BITOP, BITPOS, BITFIELD
- JSON: JSONPath를 지원하는 RedisJSON 호환 문서 저장소
- 시계열: 집계 및 다운샘플링을 지원하는 Gorilla 압축 시계열
- 벡터 셋: 근사 최근접 이웃 검색
- 확률론적 구조: Bloom 및 Cuckoo 필터, HyperLogLog, Count-Min Sketch, Top-K, T-Digest
- 지리 공간: Geohash 인덱싱 및 거리 쿼리
- 채널 및 패턴 구독을 지원하는 Pub/Sub, 이벤트 소싱(event sourcing) 포함
- Lua 스크립팅 및 MULTI/EXEC 트랜잭션
- 검색: 전문 검색, 보조 인덱싱, 벡터 검색, 집계, JSON 문서
- 크로스 슬롯 작업(MULTI/EXEC, MGET 등)은 단일 노드 운영 시 허용됨
클러스터링 및 복제
- 크기 조정 및 읽기 복제본을 지원하는 클러스터 운영
- 클러스터 상태 조정을 위한 Raft 기반 합의
- 자동 클러스터 리밸런싱은 TODO로 표기됨
영속성
- 저장소와 복제 모두에 사용되는 RocksDB 기반 선행 기록 로그(write-ahead log)
- 구성 가능한 내구성 모드(라이트 스루(write-through) 또는 비동기)
- 프로젝트 설명에는 핫/웜 티어링(hot/warm tiering)도 언급됨
운영 및 관찰 가능성
- 다수 값에 대한 온라인 구성 변경
- Prometheus 메트릭 및 알람 지원, Grafana 대시보드 템플릿, OpenTelemetry 메트릭·트레이싱·로깅
- JSON API, 모니터링 UI, 구성을 갖춘 HTTP 디버그 페이지
- DTrace 프로브와 광범위하게 구성 가능한 통계, 로그, 디버깅 출력
- 진행 중인 작업: 무중단 롤링 업그레이드, Kubernetes 지원, TLS
테스트 및 CI
- 광범위한 단위 및 통합 테스트, Shuttle과 Turmoil을 활용한 결정론적 동시성 테스트
- Redis 회귀 호환성 스위트, 부하 테스트 및 벤치마킹, 퍼징 테스트
- Knossos(선형화 가능성)와 Elle(직렬화 가능성)를 사용한 Jepsen 검증
- Docker를 통해 로컬에서 워크플로를 실행하는 자체 호스팅 GitHub Actions 러너
- 커스텀 인과 프로파일러 지원을 통한 프로파일링; Redis, Valkey, Dragonfly와의 비교 벤치마킹이 진행 중이며, io_uring/대체 런타임은 향후 작업으로 표기됨
시작하기
- Docker: frogdb/frogdb:latest(안정 버전) 또는 ghcr.io/frogdb/frogdb:dev(최신 개발 버전)를 포트 6379를 노출하여 실행한 후 redis-cli 같은 모든 Redis 클라이언트로 연결
- 소스에서 빌드: 언어 런타임과 개발 도구는 .mise.toml을 통해 mise로 관리하고, 시스템 라이브러리는 Brewfile, shell.nix 또는 OS 패키지에서 제공; just build와 just run으로 컴파일하고 서버를 시작하며, just test, just lint, just fmt로 테스트 및 품질 검사 수행
문서는 프로젝트 웹사이트에서 호스팅되며, 사용자(명령, 스크립팅, pub/sub, 이벤트 소싱, 트랜잭션), 운영자(구성, 배포, 영속성, 복제, 모니터링), 기여자(아키텍처, 동시성 모델, 스토리지 엔진)를 위해 구성되어 있습니다.
라이선스: FrogDB는 삼중 라이선스입니다. BSL-1.1은 경쟁 데이터베이스 제품에 대한 제한 조건과 함께 무료 사용을 허용하며 4년 후 Apache 2.0으로 전환됩니다; AGPLv3는 OSI 승인 카피레프트 옵션이 필요한 사용자를 위해 제공됩니다; 상업적 조건은 맞춤형 요구 사항에 대해 제공됩니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.