컴퓨터/DB
KyotoCabinet 테스트 결과
반응형
KyotoCabinet은 TokyoCabinet->KyotoCabinet->KyotoTycoon 계보로 이어지는 embedded 형태의 key-value db인데
tokyoCabinet과는 달리 자체적으로 multi-thread를 지원하고
좀 더 다양한 데이터 관리 타입을 지원한다.
최근에 이걸 쓸 일이 있어서 성능 테스트를 좀 해봤는데
환경은
- CPU I7-2700K (3.5Ghz)
- HDD (SSD -850pro- 로도 해봤는데 의외로 속도차이가 거의 없다?)
- HashDB ( persistent type )
class | persistence | algorithm | complexity | sequence | lock unit |
ProtoHashDB | volatile | hash table | O(1) | undefined | whole (rwlock) |
ProtoTreeDB | volatile | red black tree | O(log N) | lexical order | whole (rwlock) |
StashDB | volatile | hash table | O(1) | undefined | record (rwlock) |
CacheDB | volatile | hash table | O(1) | undefined | record (mutex) |
GrassDB | volatile | B+ tree | O(log N) | custom order | page (rwlock) |
HashDB | persistent | hash table | O(1) | undefined | record (rwlock) |
TreeDB | persistent | B+ tree | O(log N) | custom order | page (rwlock) |
DirDB | persistent | undefined | undefined | undefined | record (rwlock) |
ForestDB | persistent | B+ tree | O(log N) | custom order | page (rwlock) |
TextDB | persistent | plain text | undefined | stored order | record (rwlock) |
24 thread 정도에서 1.1k 정도의 데이터를 읽기/쓰기를 반복한 결과
대충 406000 count/s 정도 성능
journal을 WAL을 사용하는 sqlite3이 3000~4000 c/s 인 것에 비하면 상당히 빠른 속도.
CacheDb도 한번 테스트해 보았는데 1660000 c/s 라는 어마어마한 성능이 나왔다.
반응형
댓글