개인적으로 지금은 세 가지 이유로 mmapv1 스토리지 엔진을 선호합니다.
이유 1 : 성숙
WiredTiger가 미성숙 한 것은 아닙니다. 그러나 mmapv1은 잘 이해되어 있으며, 앞뒤로, 위아래로 모든 방법으로 전투 테스트를 거쳤습니다. WiredTiger는 최근 몇 가지 심각한 문제를 겪었으며 (자세한 내용은 http://jira.mongodb.com 참조) 고객이 다음 단계를 어렵게 찾을 수는 없습니다.
이유 2 : 특징
WT는 기본적으로 멋진 기능을 가지고 있습니다. 문제는 : 나는 그들로부터 혜택을받는 사람을 본 적이 없습니다. 압축? 어느 쪽이든, 당신은 다소 저렴한 디스크 공간에 대한 성능을 달성하기 위해 오히려 열심히 희생합니다. 문서를 확장하기위한 문서 마이그레이션 문제가 부족합니까? 글쎄, 우리는 여전히 16MB의 크기 제한을 가지고 있으며 특히 임베딩이 과도하게 진행되는 경우 임베드 된 문서에 복잡성을 추가했습니다.
다른 기능이 있지만 일반적으로 다음과 같은 특징 이 있습니다 .
이유 3 : 총 소유 비용
새로운 프로젝트의 경우 WT는 다음과 같은 사항이 적용되지 않기 때문에 특히 3.2 이후로는 괜찮을 수 있습니다.
데이터 마이그레이션은 비싸다. 계획을 세우고 계획을 모든 이해 당사자들이 합의해야하며 비상 사태 계획을 수립하고 합의해야하며 이주를 준비, 실행 및 검토해야합니다. 이제이 프로세스의 일부인 이해 관계자와 필요한 시간과 데이터 마이그레이션 비용이 크게 증가합니다. 반면에 투자 수익률은 다소 작습니다. 이러한 요소를 고려하면 마이그레이션을 수행하는 대신 상당히 확장 할 수 있습니다. 인상을주기 위해 : 마이그레이션을 계획하고 실행하고 제대로 검토 한 경우 이해 관계자 당 약 1 주일 정도의 시간을 예상합니다. 1 인당 시간당 $ 100의 비용과 3 명 (관리자, DBA 및 개발자)만이 $ 12.000에 달합니다. 이것은 보수적 인 추정치입니다.
결론
위의 모든 요인으로 인해 WT를 사용하지 않는 결론에 도달했습니다. 현재
최신 정보
이 게시물은 몇 달 전에 업데이트되었으므로 업데이트해야합니다.
성숙에
성숙에 대한 나의 원래 의견은 쓸모없는 것입니다. WiredTiger는 현재로서는 큰 문제가 없었으며 MongoDB 3.2에서 기본 스토리지 엔진이되었습니다.
기능
내 원래 의견에는 여전히 타당성이 있습니다.
압축
그러나 예산이 부족하거나 더 일반적으로 말하면 성능이 주요 관심사가 아니며 성능 균형이 다소 작으며 기본적으로 디스크 공간에 대해 약간의 성능 영향 (압축되지 않은 WT와 비교할 때)을 사용하여 유휴 상태 인 것을 활용합니다. 주위 : CPU.
암호화
MongoDB 3.2 Enterprise는 WiredTiger 스토리지를 암호화하는 기능을 도입했습니다. 보안 요구가 강화 된 데이터의 경우 이는 킬러 기능이며 WT를 기술적으로 (MMAPv1은 암호화를 지원하지 않음) 개념적으로 선택하는 유일한 스토리지 엔진입니다. 물론 일부 환경에서는 해당 옵션이 없을 수도 있지만 암호화 된 디스크 파티션의 가능성을 따로 설정하십시오.
문서 레벨 잠금
위의 분석에서 WT의 기능을 기본적으로 생략했음을 인정해야합니다. 주로 원래 답변을 작성할 때 나와 고객에게 적용되지 않았기 때문입니다.
설정에 따라, 주로 동시 쓰기 클라이언트가 많은 경우이 기능은 성능을 크게 향상시킬 수 있습니다.
총 소유 비용
마이그레이션은 여전히 비쌉니다. 그러나 성숙도의 변화와 기능에 대한 변화된 견해를 고려하면 다음과 같은 경우 마이그레이션이 투자 가치가있을 수 있습니다.
- 암호화가 필요합니다 (Enterprise Edition 만 해당)
- 성능은 절대적인 주요 관심사가 아니며 압축을 사용하여 장기적으로 (보수적으로 계산) 비용을 절감 할 수 있습니다.
- 성능이 향상되면 수직 또는 수평 스케일링이 절약 될 수 있으므로 많은 프로세스가 동시에 작성됩니다.
업데이트 된 결론
새 프로젝트의 경우 지금 WiredTiger를 사용합니다. 압축에서 압축되지 않은 WiredTiger 스토리지로의 마이그레이션은 다소 쉬우므로 CPU 사용률을 높이기 위해 압축을 시작하는 경향이 있습니다 ( "벅"에 더 많은 영향을 미침). 압축이 성능이나 UX에 현저한 영향을 미치면 압축되지 않은 WiredTiger로 마이그레이션합니다.
동시 작가가 많은 프로젝트의 경우 프로젝트 예산으로 투자를 금지하지 않는 한 마이그레이션 여부에 대한 대답은 거의 항상 "예"입니다. 장기적으로는 배치가 합리적으로 계획된 경우 성능 향상에 대한 비용을 지불해야합니다. 그러나 경우에 따라 드라이버를 업데이트해야하고 처리해야하는 문제가있을 수 있으므로 계산에 약간의 개발 시간을 추가해야합니다.
예산이 부족하고 현재 디스크 공간을 확보 할 수없는 프로젝트의 경우 압축 된 WiredTiger로 마이그레이션하는 것이 옵션이 될 수 있지만 압축은 CPU에 약간의 부하를가합니다. 또한 이러한 프로젝트의 경우 마이그레이션 비용이 엄청나게 비쌀 수 있습니다.