গত মাসে MongoDB World-এ MongoDB ফাউন্ডার এবং CTO Eliot Horowitz প্লাগেবল স্টোরেজ ইঞ্জিন সাপোর্ট ঘোষণা করেছেন 2.8 রিলিজের জন্য। এটি এক্সাইটিং বিষয় কারণ এখন MongoDB ব্যবহারকারীরা একটি স্টোরেজ ইঞ্জিন বেছে নিতে পারবেন যা তাদের ওয়ার্কলোডের জন্য সবচেয়ে ভালো সিউট করে এবং API-তে প্ল্যান করা হয়েছে All MongoDB ফিচারগুলির ফুল সাপোর্ট, বর্তমান ফাংশনালিটি যেগুলো তারা উপভোগ করে সেগুলো ছাড়া দিয়ে। শুধু সেটি নয়, একই রেপ্লিকা সেটের নোডগুলো ভিন্ন ভিন্ন স্টোরেজ ইঞ্জিন ব্যবহার করতে পারবে, সব ধরনের ইন্টারেস্টিং কনফিগারেশন এনাবল করে বিভিন্ন প্রয়োজনের জন্য।
MongoDB ফুলি ওপেন সোর্স হওয়ার জন্য মজা হলো আমাদের 2.8 আসলে রিলিজ হওয়ার জন্য অপেক্ষা করতে হয় না এই খুব এক্সপেরিমেন্টাল ফিচারগুলো নিয়ে খেলায়। MongoDB সোর্স কোডের সম্পূর্ণতা GitHub থেকে ক্লোন করা যায় এবং কম্পাইল করা যায় যেকোনো এক্সপেরিমেন্টাল ফিচার ইনক্লুড করে যা বর্তমানে কাজ করছে।
নিচের উদাহরণে আমি দেখাবো কীভাবে mongo বিল্ড করবেন rocksdb এক্সাম্পল স্টোরেজ ইঞ্জিন দিয়ে যা MongoDB World-এ প্রেজেন্ট করা হয়েছিল।
একটি ফRESHLY ইনস্টল্ড 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 ইঞ্জিন সম্পূর্ণ এক্সপেরিমেন্টাল এই পয়েন্টে তাই এটা খুব সম্ভাব্য আপনি এরর এনকাউন্টার করবেন এবং master থেকে কম্পাইল করতে পারবেন না, এই স্টেজে এটা এক্সপেক্টেড। আপনি যদি চান দেখতে কীভাবে প্রগ্রেস করছে, MongoDB dev মেইলিং লিস্ট একটি ভালো জায়গা শুরু করার জন্য।
একবার কম্পাইল ফিনিশ হলে আপনি mongod প্রসেস শুরু করতে চাইবেন নতুন --storageEngine প্যারামিটার ব্যবহার করে:
$ ./mongod --storageEngine rocksExperiment
এবং চূড়ান্তে আপনি সব কিছু টেস্ট করতে পারেন কানেক্ট করে এবং একটি সিম্পল ডকুমেন্ট ইনসার্ট করে, তারপর db.stats() ব্যবহার করে। আপনি RocksDB পরিসংখ্যান পাইপড ব্যাক দেখতে পাবেন আপনার কাছে যদি সব কিছু প্ল্যান অনুযায়ী হয়।
আপনি দেখতে পাচ্ছেন এক্সপেরিমেন্টাল ফিচার ইনাবল করে আপ 앤 রানিং হওয়া কত সহজ। আমি খুব এক্সাইটেড প্লাগেবল স্টোরেজ ইঞ্জিন কোড প্রগ্রেস দেখতে এবং আরও নতুন ইঞ্জিন ঘোষণা দেখতে 2.8 রিলিজের কাছাকাছি যাওয়ার সাথে সাথে।