
Kvrocks는 RocksDB를 스토리지 엔진으로 사용하고 Redis프로토콜과 호환되는 분산 키-밸류 NoSQL데이터베이스 이다.
Redis비용 문제를 해결하기 위해서 만들어 졌다. Redis는 모든 데이터를 메모리에 올려두고 사용하기 때문에 데이터가 커질수록 비용이 급격하게 올라간다. (메모리값...) 하지만 Kvrocks는 메모리 비용을 줄이면서 저장용량을 늘리는 것을 목표로한다.
원래 중국의 Meitu(메이투)에서 개발했으며, Trip.com, Baidu 등 여러 기업이 프로덕션 환경에서 사용하고 있다. 현재는 Apache 재단 프로젝트로 Apache 2.0 라이선스로 공개되어 있다.
Redis호환성이 있어 기존 Redis 클라이언트를 통해 그대로 접근 할 수 있다. 네임스페이스를 통한 데이터 격리, MySQL과 유사한 binlog기반 비동기복제, Redis Sentinel을 활용한 고가용성, 클러스터링 모드를 지원한다.
Redis처럼 다양한 자료구조가 필요하지만 데이터 규모가 커서 전부 메모리에 올리기 부담스러운 경우에 적합하다.
현재 서버의 RAM 용량이 DB, WebServer, Cache 등 여러 VM에 자원을 할당하기엔 매우 작음으로 Nvme SSD를 이용해서 캐시서버의 RAM할당량을 줄이고 SSD의 의존도를 높여는 비록 속도는 RAM보다 조금 느리지만 용량을 많이 사용 할 수 있도록 트레이트오프를 하여 운영할 예정이다.