Facebook에서 고속 스토리지용으로 개발 사용한 임베디드 형식의 영구 저장형 Key-Value 저장소.

오픈소스로 공개 되었음.

 

Google이 오픈소스로 공개한 Key-Value형 데이터베이스 라이브러리 ‘LevelDB’를 기초로 해서 다수의 CPU 코어을 탑재한 서버에서 운용할 수 있도록 확장성, 고속 스토리지의 효율적인 이용, 기술혁신을 위한 유연성, I/O 바운드나 인 메모리, Write Once WorkLoad 지원을 목표.

 

C++ 라이브러리로서 구축되어 Key Value를 연속적으로 보존한다.

 

Plugable한 아키텍처를 채용하여 시스템 전체의 아키텍처에 영향을 미치지 않으면서 파츠 교환이 가능하다. 예를 들면 RocksDB 코드를 변경하지 않아도 snappy, zlib, bzip 등의 다양한 데이터 압축 라이브러리를 이용하여 워크로드 마다 다른 압축 알고리즘을 설정할 수 있다. 현 시점에서는 level style universal style 2종류의 압축을 지원하고 있다.

 

LevelDB와 비교하면 플래쉬 스토리지를 고속의 액세스 성능을 풀 활용할 수 있기 때문에 랜덤 읽기/쓰기나 대량 업로드 전반에 걸쳐서 고속화 할 수 있다. 랜덤 쓰기와 대량 업로드에서는 10, 랜덤 읽기에서는 30%의 고속화를 실현하고 있다.

LevelDB의 싱글스레드 압축 프로세스가 특정 서버 워크로드에 대해서 적절하게 기능하지 않는 것에 비해 RocksDB는 이런 I/O 바운드 워크로드에서 LevelDB을 상회하는 성능을 발휘한다.

 

용도로는 열람 이력, 유저 상태를 보존하는 웹사이트의 애플리케이션, 스팸 검출 애플리케이션, 그래프 검색 쿼리, Hadoop으로의 리얼타임 쿼리가 필요한 애플리케이션 등 낮은 지연의 데이터베이스 액세스가 필요한 애플리케이션.

Facebook에서는 현재 각종 애플리케이션의 페타바이트에 가까운 데이터를 RocksDB로 관리하고 있다고 한다.

 

 

출처: http://www.atmarkit.co.jp/ait/articles/1311/25/news096.html

 

 

 

저작자 표시
신고
by 흥배 2013.11.26 09:16
| 1 |