ที่ MongoDB World เมื่อเดือนที่แล้ว ผู้ก่อตั้ง MongoDB และ CTO Eliot Horowitz ได้ประกาศการสนับสนุนเอ็นจิ้นการจัดเก็บข้อมูลแบบเสียบได้ซึ่งกำหนดไว้สำหรับการเปิดตัว 2.8 นี่เป็นสิ่งที่น่าตื่นเต้นเพราะหมายความว่าผู้ใช้ mongo จะสามารถเลือกเอ็นจิ้นการจัดเก็บข้อมูลที่เหมาะสมกับปริมาณงานมากที่สุด และด้วยแผน API ที่จะรองรับฟีเจอร์ทั้งหมดของ MongoDB ในขณะที่ไม่ต้องละทิ้งฟังก์ชันการทำงานปัจจุบันที่พวกเขา เพลิดเพลิน. ไม่เพียงเท่านั้น แต่โหนดในชุดแบบจำลองเดียวกันจะสามารถใช้เอ็นจิ้นการจัดเก็บข้อมูลที่แตกต่างกัน ทำให้สามารถกำหนดค่าที่น่าสนใจได้ทุกประเภทสำหรับความต้องการที่แตกต่างกัน
สิ่งที่ยอดเยี่ยมเกี่ยวกับ MongoDB ที่เป็นโอเพ่นซอร์สอย่างสมบูรณ์คือเราไม่ต้องรอจนกว่า 2.8 จะเปิดตัวจริงเพื่อเล่นกับคุณสมบัติทดลองเหล่านี้ สามารถโคลนซอร์สโค้ด MongoDB ทั้งหมดจาก GitHub และคอมไพล์เพื่อรวมคุณลักษณะทดลองที่กำลังทำงานอยู่ได้
ในตัวอย่างด้านล่าง ฉันจะแสดงวิธีสร้าง mongo ด้วยเครื่องมือจัดเก็บตัวอย่าง rocksdb ที่นำเสนอในโลกของ MongoDB
เริ่มต้นจากอินสแตนซ์ระบบคลาวด์ CentOS 6.5 ที่เพิ่งติดตั้งใหม่ เราจะรวบรวมการพึ่งพาพื้นฐาน:
$ yum groupinstall 'Development Tools'
$ yum install git glibc-devel scons`
ถัดไปจะได้รับซอร์สโค้ด MongoDB จาก GitHub:
$ git clone https://github.com/mongodb/mongo.git
ที่เหลือก็แค่คอมไพล์ซอร์สโดยเปิดใช้การรองรับ RocksDB:
$ scons --rocksdb=ROCKSDB mongo mongod
หรือเร่งความเร็วโดยใช้ตัวเลือก -j เพื่อระบุจำนวนงานคู่ขนานที่จะใช้ หากคุณวางแผนที่จะอุทิศระบบที่คุณคอมไพล์ในช่วงเวลาที่เป็นตัวบ่งชี้ที่ดีคือจำนวนคอร์ในเครื่องของคุณ +1 ของฉันดู ชอบ:
$ scons -j 17 --rocksdb=ROCKSDB mongo mongod
เป็นที่น่าสังเกตว่าการรองรับเอ็นจิ้นการจัดเก็บข้อมูลแบบเสียบได้และเอ็นจิ้น RocksDB อยู่ในขั้นทดลองอย่างสมบูรณ์ ณ จุดนี้ ดังนั้นมีโอกาสดีที่คุณจะพบข้อผิดพลาดและไม่สามารถคอมไพล์จากมาสเตอร์ได้ ซึ่งคาดว่าจะเกิดขึ้นในขั้นตอนนี้ หากคุณต้องการดูว่าสิ่งต่างๆ ดำเนินไปอย่างไร รายชื่อผู้รับจดหมายสำหรับนักพัฒนาซอฟต์แวร์ MongoDB เป็นจุดเริ่มต้นที่ดี
เมื่อคอมไพล์เสร็จสิ้น คุณจะต้องเริ่มต้นกระบวนการ mongod โดยใช้พารามิเตอร์ –storageEngine ใหม่:
$ ./mongod --storageEngine rocksExperiment
และสุดท้าย คุณสามารถทดสอบทุกอย่างโดยเชื่อมต่อและแทรกเอกสารธรรมดา จากนั้นใช้ db.stats() คุณควรเห็นสถิติ RocksDB ส่งกลับมาหากทุกอย่างเป็นไปตามแผนที่วางไว้
อย่างที่คุณเห็นมันค่อนข้างง่ายที่จะเริ่มต้นและใช้งานคุณลักษณะทดลองที่เปิดใช้งาน ฉันตื่นเต้นมากที่ได้เห็นความคืบหน้าของรหัสเครื่องมือจัดเก็บข้อมูลแบบเสียบได้ และเห็นเครื่องมือใหม่ๆ ที่ประกาศเมื่อเราเข้าใกล้รุ่น 2.8 มากขึ้น