에서 이전 게시물에서 Couchbase 5.0(베타 출시!)의 글로벌 보조 인덱스를 구동하는 새로운 고성능 스토리지 엔진으로 Plasma를 소개할 기회를 가졌습니다. Plasma의 몇 가지 기능과 최신 하드웨어 트렌드를 염두에 두고 어떻게 설계되어 인덱스 성능이 크게 향상되었는지 살펴보았습니다.
저희는 소프트웨어가 성공하기 위해서는 소프트웨어가 실행되는 기반 하드웨어의 많은 기능을 활용해야 한다고 믿습니다. 저희 엔지니어들은 문제를 처음부터 다시 살펴봄으로써 잠금 없는 데이터 구조와 기타 수많은 최적화를 활용했고, Plasma에서 메모리 우선 설계를 생각해냈습니다. 이를 통해 가장 낮은 지연 시간과 최고의 처리량을 요구하는 고객에게 최고의 경험을 제공할 수 있게 되었습니다.
스토리지 엔진을 처음부터 완전히 다시 작성하고 전체 구성 요소를 다시 설계했기 때문에, ForestDB와 Plasma를 비교하는 것은 본질적으로 사과와 사과를 비교하는 것이 아닙니다. ForestDB는 초당 최대 10~20만 개의 변이만 볼 수 있는 반면, Plasma는 초당 10만 개에 가까운 변이도 쉽게 처리할 수 있으며, 이는 훨씬 더 큰 데이터 세트에 대해서도 마찬가지입니다. 하지만 일부 사내 성능 테스트에서는 보조 인덱스 스캔을 관찰하기도 합니다:
- 지연 시간이 3배 이상 감소했습니다.
- 처리량 8배 향상
- stale=false(즉, 모든 돌연변이가 처리될 때까지 기다림)를 사용하면) : 지연 시간은 50배 단축되고 처리량은 120배 이상 향상됩니다.
메모리 사용량과 디스크 사용량이 크게 감소했습니다. 인메모리 워크로드(즉, 100% 메모리 상주)는 포레스트DB에 비해 최대 50~60%의 메모리를 덜 차지하며, 디스크 사용량은 경우에 따라 최대 90%까지 감소했습니다. 쓰기 증폭(업데이트를 지속하는 데 필요한 쓰기 횟수)이 낮기 때문에 SSD 장치의 수명도 향상되었습니다. 이러한 성능 수치를 통해 고객들이 Couchbase Server 5.0을 직접 사용해보고 실제 환경에서 어떤 성능을 발휘하는지 검증할 수 있는 기회가 열렸습니다. 여러분의 이야기를 기다리고 있습니다.
이 땅에서 성능은 뒷전이 아닙니다!
참고: EE 고객의 경우: 현재 ForestDB를 사용 중인 경우, Couchbase Server 5.0으로 업그레이드하는 동안 Plasma에서 자동으로 인덱스를 다시 생성합니다.