একটি সাম্প্রতিক ব্লগ পোস্টে, আমি আলোচনা করেছি যখন আপনাকে MongoDB স্কেল করতে হবে। এই পোস্টে, কিভাবে MongoDB স্কেল করা যায় তার উপর ফোকাস করা হয়েছে।
MongoDB সংস্করণ 3.0 ডিফল্ট স্টোরেজ ইঞ্জিন হিসাবে WiredTiger চালু করেছে। মঙ্গোডিবি তখন থেকে স্কেলেবিলিটির ক্ষেত্রে দুটি পন্থা প্রদান করতে সক্ষম হয়েছে। মঙ্গো এখন উল্লম্ব এবং অনুভূমিকভাবে প্রসারিত করতে সক্ষম। উভয় পন্থা একটি ঘনিষ্ঠ চেহারা নিশ্চিত.
উল্লম্বভাবে স্কেলিং
উল্লম্বভাবে স্কেলিং কম্পিউটিং সংস্থান বাড়ায়, যেমন CPU-র সংখ্যা এবং প্রকার, বা RAM বা ডিস্কের স্থানের পরিমাণ। এটি মাথায় রেখে, WiredTiger-এর সাথে উল্লম্বভাবে স্কেল করার সময়, আপনাকে সনাক্ত করতে হবে কোন সংস্থানটি কোন বাধার জন্য অবদান রাখছে (সেটি CPU/RAM/ ডিস্ক স্পেস হোক বা এর কিছু সংমিশ্রণ হোক)।
ওয়্যারডটাইগার RAM এ নোট
যদি বরাদ্দকৃত RAM 1GB-এর কম হয়, WiredTiger সাধারণত 256MB বা উপলব্ধ RAM এর 50 শতাংশ ডিফল্ট করে। ফলস্বরূপ, আরও RAM বরাদ্দ করা হলে WiredTiger ক্যাশের আকার পরিবর্তন করতে হবে৷
অনুভূমিকভাবে স্কেলিং
স্কেলিং অনুভূমিকভাবে একটি নেটওয়ার্ক জুড়ে কম্পিউটিং সংস্থান বিতরণ করে, সাধারণত সার্ভার যোগ করে। একাধিক নোড যোগ করার সাথে সাথে ডেটা বিতরণ করতে, MongoDB শার্ডিং নামে একটি ডাটাবেস আর্কিটেকচার ব্যবহার করে, যা একাধিক ডাটাবেস দৃষ্টান্তের মধ্যে বিতরণ করা ডেটা পার্টিশনে কী রেঞ্জ ব্যবহার করে।
শার্ডিং পরিকাঠামো সেট আপ করা
একটি শার্ডিং কনফিগারেশন সেট আপ করার সাথে জড়িত শারীরিক উপাদানগুলির জন্য নিম্নলিখিত আইটেমগুলির প্রয়োজন৷
- মঙ্গোস ক্যোয়ারী রাউটার হিসাবে কাজ করে।
- সার্ভার কনফিগার করুন শার্ডিং মেটাডেটা ধরে রাখুন।
- ডেটা নোড প্রকৃত তথ্য ধরে রাখুন।
শারীরিক উপাদান সম্পর্কে আরও তথ্যের জন্য, আমাদের MongoDB ওভারভিউ দেখুন।
শার্ড কী সংজ্ঞায়িত করা
আপনি শারীরিক শার্ডিং অবকাঠামো সেট আপ করার পরে, শার্ডিংয়ের যৌক্তিক দিকের উপর ফোকাস করুন। শার্ড কীগুলি একটি সংগ্রহের মধ্যে বিভিন্ন ক্ষেত্রের প্রতিনিধিত্ব করে যা MongoDB ডেটা বিভাজন করতে ব্যবহার করে। সুবিধামত, মঙ্গো আপনাকে এই কীগুলি সংজ্ঞায়িত করতে দেয়৷
৷শার্ড কীগুলি প্রয়োগ করার সাথে জড়িত ক্ষেত্রগুলি সনাক্ত করতে:
- শার্ডে সংগ্রহগুলি চিহ্নিত করুন। সংগ্রহগুলি যেগুলি 200MB-এর থেকে বড় এবং যার ডেটা সমানভাবে বিতরণ করা যেতে পারে সেগুলি শার্ডিংয়ের জন্য ভাল প্রার্থীদের প্রতিনিধিত্ব করে৷
- একটি উপযুক্ত শার্ড কী তৈরি বা তৈরি করুন। একটি শার্ড কী তৈরি করার সময়, নিম্নলিখিত সুপারিশ এবং প্রশ্নগুলি বিবেচনা করুন:
- অ্যাপ্লিকেশনটি যেভাবে ডাটাবেসের সাথে ইন্টারঅ্যাক্ট করে সে সম্পর্কে কিছু অন্তর্দৃষ্টি অর্জন করুন।
- বিবেচনা করুন যে অ্যাপ্লিকেশনটি বেশি পড়া- বা লেখা-ভারী, বা এটি সমানভাবে ভারসাম্যপূর্ণ কিনা।
- ডাটাবেসের বিরুদ্ধে সবচেয়ে গুরুত্বপূর্ণ কার্যকলাপ কি? উদাহরণস্বরূপ, অ্যাপ্লিকেশনটি ডাটাবেসে প্রচুর পরিমাণে ডেটা লিখতে পারে, তবে সবচেয়ে গুরুত্বপূর্ণ ক্রিয়াকলাপটি 100 ms এর কম সময়ে ডেটা ফেরত দেওয়ার প্রশ্নগুলিকে অন্তর্ভুক্ত করতে পারে৷
- ডেটা বৃদ্ধির প্রত্যাশিত সাপ্তাহিক এবং মাসিক প্যাটার্নগুলি কী কী?
- কোন ব্যাথা বা সমস্যার ক্ষেত্রগুলিকে সম্বোধন করা দরকার, যেমন ধীরগতির প্রশ্ন?
- দিন, সপ্তাহ, মাস বা বছরের নির্দিষ্ট সময়গুলিতে অ্যাপ্লিকেশনটি কি ব্যস্ত থাকে? এটা কি সব সময় ব্যস্ত?
আপনি এই সমস্যাগুলি তদন্ত করার পরে, আপনি আরও বিশদ বিশ্লেষণ শুরু করতে পারেন। আমাদের পরবর্তী ব্লগ পোস্টে আলোচনা করা হবে কিভাবে সঠিক শার্ড কী খুঁজে পাওয়া যায়।