โดยส่วนตัวแล้วฉันชอบเอ็นจิ้นการจัดเก็บ mmapv1 ตอนนี้ด้วยเหตุผลสามประการ
เหตุผลที่ 1: ครบกำหนด
มันไม่ใช่ว่า WiredTiger ยังไม่บรรลุนิติภาวะ แต่ mmapv1 นั้นเป็นที่เข้าใจกันดีและมีการทดสอบการต่อสู้ทั้งทางขึ้นและลงกลับไปกลับมาและอื่น ๆ WiredTiger มีปัญหาร้ายแรงบางอย่าง (ดูhttp://jira.mongodb.comเพื่อดูรายละเอียด) ค่อนข้างเร็วและฉันไม่เต็มใจที่จะให้ลูกค้าของฉันค้นหาต่อไปอย่างยากลำบาก
เหตุผลที่ 2: คุณสมบัติ
ป.ร. ให้ไว้ว่า WT มีคุณสมบัติบางอย่างที่ยอดเยี่ยม ... สิ่งคือ: ฉันไม่เคยเห็นใครได้รับประโยชน์จากพวกเขา การบีบอัด? ไม่ว่าจะด้วยวิธีใดคุณต้องเสียสละอย่างหนักเพื่อให้ได้ประสิทธิภาพในการใช้พื้นที่ดิสก์ที่ค่อนข้างถูก ไม่มีปัญหาการย้ายเอกสารสำหรับการขยายเอกสาร? เรายังมีขีด จำกัด ขนาด 16MB และเพิ่มความซับซ้อนสำหรับเอกสารฝังตัวโดยเฉพาะเมื่อการฝังเกินไป
ผมไม่เห็นว่าจะได้รับประโยชน์มากจากพวกเขามีคุณสมบัติอื่น ๆ ทั่วไป แต่ณ ขณะนี้
เหตุผลที่ 3: ต้นทุนการเป็นเจ้าของทั้งหมด
สำหรับโครงการใหม่ WT อาจใช้ได้โดยเฉพาะอย่างยิ่งตั้งแต่ 3.2 เนื่องจากไม่มีการใช้งานต่อไปนี้
การย้ายข้อมูลมีราคาแพง. จะต้องมีการวางแผนแผนจะต้องได้รับความเห็นชอบจากผู้มีส่วนได้ส่วนเสียทุกแผนฉุกเฉินจะต้องมีการสร้างและตกลงการโยกย้ายจะต้องเตรียมดำเนินการและตรวจสอบ ตอนนี้คูณเวลาที่จำเป็นกับผู้มีส่วนได้เสียที่เป็นส่วนหนึ่งของกระบวนการนี้และค่าใช้จ่ายสำหรับการโยกย้ายข้อมูลพุ่งสูงขึ้น ผลตอบแทนจากการลงทุนในทางกลับกันค่อนข้างน้อย คุณสามารถปรับขนาดได้เล็กน้อยแทนที่จะทำการย้ายข้อมูลหากคุณคำนึงถึงปัจจัยเหล่านั้นด้วย เพื่อให้การแสดงผลแก่คุณ: ฉันประมาณ "หนึ่งสัปดาห์ต่อคน" ต่อผู้มีส่วนได้ส่วนเสียหากมีการวางแผนดำเนินการและตรวจทานอย่างเหมาะสม ด้วยค่าใช้จ่าย $ 100 ต่อชั่วโมงต่อคนและมีเพียงสามคนที่เกี่ยวข้อง (ผู้จัดการ DBA และนักพัฒนา) ซึ่งมีจำนวน $ 12.000 โปรดทราบว่านี่เป็นประมาณการแบบอนุรักษ์นิยม
ข้อสรุป
ปัจจัยทั้งหมดข้างต้นทำให้ฉันได้ข้อสรุปว่าอย่าใช้ WT เลย ในขณะนี้
ปรับปรุง
โพสต์นี้เก่าแล้วบางเดือนจึงสมควรได้รับการอัปเดต
เมื่อครบกําหนด
ความคิดเห็นดั้งเดิมของฉันเกี่ยวกับวุฒิภาวะนั้นล้าสมัย WiredTiger ยังไม่มีปัญหาสำคัญใด ๆ ในขณะนี้และได้กลายเป็นเอ็นจิ้นการจัดเก็บเริ่มต้น ณ MongoDB 3.2
เกี่ยวกับคุณสมบัติ
ความคิดเห็นดั้งเดิมของฉันยังคงมีความถูกต้องอยู่บ้าง imho
การอัด
อย่างไรก็ตามเมื่อมีงบประมาณ จำกัด หรือโดยทั่วไปการพูดไม่ได้เป็นปัญหาหลักประสิทธิภาพของการแลกเปลี่ยนค่อนข้างน้อยและโดยทั่วไปคุณมีผลกระทบต่อประสิทธิภาพเล็กน้อย (เมื่อเทียบกับ WT ที่ไม่ได้บีบอัด) สำหรับพื้นที่ดิสก์ รอบ ๆ : ซีพียู
การเข้ารหัสลับ
MongoDB 3.2 Enterprise นำเสนอความสามารถในการเข้ารหัสที่เก็บสาย WiredTiger สำหรับข้อมูลที่มีความต้องการด้านความปลอดภัยที่เพิ่มขึ้นนี่เป็นคุณสมบัตินักฆ่าและทำให้ WT เป็นเครื่องมือจัดเก็บข้อมูลตัวเดียวที่เลือกได้ทั้งในทางเทคนิค (MMAPv1 ไม่รองรับการเข้ารหัส) และแนวคิด นอกจากความเป็นไปได้ของพาร์ติชั่นดิสก์ที่เข้ารหัสแล้วถึงแม้ว่าคุณอาจไม่มีตัวเลือกนั้นในบางสภาพแวดล้อม
การล็อคระดับเอกสาร
ฉันต้องยอมรับว่าโดยทั่วไปฉันไม่ได้ใช้คุณลักษณะของ WT ในการวิเคราะห์ข้างต้นเนื่องจากส่วนใหญ่ไม่ได้ใช้กับฉันหรือลูกค้าของฉันเมื่อฉันเขียนคำตอบดั้งเดิม
คุณสมบัตินี้อาจให้ประสิทธิภาพที่ยอดเยี่ยมทั้งนี้ขึ้นอยู่กับการตั้งค่าของคุณส่วนใหญ่เมื่อคุณมีไคลเอ็นต์การเขียนพร้อมกันจำนวนมาก
เกี่ยวกับต้นทุนการเป็นเจ้าของ
การย้ายข้อมูลยังคงมีราคาแพง อย่างไรก็ตามเมื่อพิจารณาถึงการเปลี่ยนแปลงในวุฒิภาวะและมุมมองที่เปลี่ยนแปลงเกี่ยวกับคุณลักษณะต่างๆการโอนย้ายอาจคุ้มค่ากับการลงทุนหาก:
- คุณต้องเข้ารหัส (Enterprise Edition เท่านั้น!)
- ประสิทธิภาพไม่ใช่ความกังวลหลักของคุณแน่นอนและคุณสามารถประหยัดเงินในระยะยาว (คำนวณอย่างระมัดระวัง) โดยใช้การบีบอัด
- คุณมีกระบวนการจำนวนมากที่เขียนพร้อมกันเนื่องจากการเพิ่มประสิทธิภาพอาจช่วยให้คุณปรับขนาดแนวตั้งหรือแนวนอนได้
อัปเดตข้อสรุป
สำหรับโครงการใหม่ฉันใช้ WiredTiger ทันที เนื่องจากการโยกย้ายจากที่บีบอัดไปยังที่เก็บข้อมูล WiredTiger ที่ไม่มีการบีบอัดนั้นค่อนข้างง่ายฉันจึงเริ่มต้นด้วยการบีบอัดเพื่อเพิ่มประสิทธิภาพการใช้งาน CPU หากการบีบอัดมีผลกระทบต่อประสิทธิภาพการทำงานหรือ UX ที่เห็นได้ชัดเจนฉันจะย้ายไปยัง WiredTiger ที่ไม่มีการบีบอัด
สำหรับโครงการที่มีนักเขียนหลายคนพร้อมกันคำตอบสำหรับการโยกย้ายหรือไม่ก็เกือบจะ "ใช่" เช่นกัน - ยกเว้นว่างบประมาณของโครงการจะห้ามการลงทุน ในระยะยาวการเพิ่มประสิทธิภาพควรจะจ่ายเองหากมีการวางแผนการใช้งานอย่างสมเหตุสมผล อย่างไรก็ตามคุณต้องเพิ่มเวลาการพัฒนาในการคำนวณเนื่องจากในบางกรณีไดรเวอร์จำเป็นต้องได้รับการอัปเดตและอาจมีปัญหาที่ต้องจัดการ
สำหรับโครงการที่มีงบประมาณ จำกัด และไม่สามารถมีพื้นที่ดิสก์เพิ่มขึ้นได้ในขณะนี้การย้ายไปยัง WiredTiger ที่ถูกบีบอัดอาจเป็นตัวเลือก นอกจากนี้ค่าใช้จ่ายในการย้ายถิ่นอาจมีราคาแพงสำหรับโครงการดังกล่าว