오늘 Thumbtack Technology는 NoSQL 벤치마크의 최종 결과를 강조하는 블로그 게시물을 발표했습니다(링크).
6월에는 4대의 물리적 서버에서 데이터베이스를 벤치마킹했습니다. 백미러에서 MongoDB와 DataStax를 볼 수 있었습니다(링크). 그런 다음 4, 6, 8개의 물리적 서버에서 데이터베이스를 벤치마킹했습니다.
성능 테스트는 두 가지 워크로드로 실행되었습니다.
- 읽기 집약적(95% 읽기 / 5% 쓰기)
- 밸런스드(50% 읽기/50% 쓰기)
읽기 집중
MongoDB는 서버 4대로 초당 13만 작업에서 서버 8대로 초당 22만 7천 작업으로 확장되었습니다. 평균 지연 시간은 1밀리초 미만이었습니다. 지연 시간은 훌륭하고 처리량은 다음과 같습니다. not.
Apache Cassandra(DataStax)는 서버 4대로 초당 60만 작업에서 서버 8대로 초당 99만 작업으로 확장되었습니다. 평균 지연 시간은 다음과 같습니다. 3ms. 지연 시간도 좋지 않고 처리량도 좋지 않습니다.
카우치베이스 서버는 서버 4개로 초당 903만 작업에서 서버 8개로 초당 171만 작업으로 확장되었습니다. 평균 지연 시간은 1밀리초 미만이었습니다. 지연 시간도 훌륭하고 처리량도 훌륭합니다.
균형 잡힌
MongoDB는 서버 4대로 초당 50만 작업에서 8대의 서버로 초당 85만 작업으로 확장되었습니다. 평균 지연 시간은 2ms 미만이었습니다. 지연 시간도 꽤 괜찮고, 처리량도 꽤 괜찮습니다. 나쁜.
Apache Cassandra(DataStax)는 서버 4대로 초당 53K 작업에서 8대의 서버로 초당 89K 작업으로 확장되었습니다. 평균 지연 시간은 1밀리초 미만이었습니다. 지연 시간은 훌륭하고 처리량은 다음과 같습니다. not.
카우치베이스 서버는 서버 4대로 초당 80만 작업에서 서버 8대로 초당 124만 작업으로 확장되었습니다. 평균 지연 시간은 2밀리초 미만이었습니다. 지연 시간도 꽤 괜찮고 처리량도 훌륭합니다.
결론
Apache Cassandra(DataStax)는 낮은 처리량에서 쓰기 요청에 대한 짧은 지연 시간 요구 사항을 충족합니다. 읽기 성능을 위해 설계되지 않았습니다. 메모리를 효과적으로 활용하지 못합니다(링크). 아파치 카산드라는 서버의 메모리와 회전 디스크가 거의 없던 시대를 위해 설계되었습니다.
MongoDB는 낮은 처리량에서 읽기 요청에 대한 짧은 지연 시간 요구 사항을 충족합니다. 쓰기 성능을 위해 설계되지 않았습니다. 마스터/슬레이브 토폴로지, 데이터베이스 전체 잠금(인스턴스당 db당 하나) 등으로 인해 제한됩니다. MongoDB는 무엇을 위해 설계되었는지... 잘 모르겠습니다.
카우치베이스 서버는 읽기에 대한 짧은 지연 시간 요구 사항을 충족합니다. 그리고 쓰기 요청을 any 처리량. MongoDB와 달리 토폴로지 및 잠금 문제가 없습니다. Apache Cassandra와 달리 통합된 관리형 객체 캐시를 통해 메모리를 효과적으로 활용합니다. 카우치베이스 서버는 읽기용으로 설계되었습니다. 그리고 쓰기 성능.
MongoDB와 DataStax가 보이지 않습니다. 더 이상은 안 보입니다. 어디 계세요?
백서에 모두 나와 있습니다(여기).
더그의 벤치마크 결과 분석(여기).
NoSQL DB용 콘텐츠를 개발하는 경우/개발한 후에 Couchbase 섹션이 필요할 수도 있습니다.