মূলত ৪ জুন, ২০১৮-এ ObjectRocket.com/blog-এ প্রকাশিত
আমরা স্কেলিং-কে মাছের লেজ বাদ দেওয়া হিসেবে সংজ্ঞায়িত করতে পারি। কিন্তু ডেটাবেসের সাথে, স্কেলিং বলতে স্টোরেজ, ডিস্ক, RAM, CPU, কম্পিউট সাইকেল, নেটওয়ার্কিং, বা অন্যান্য রিসোর্সে অতিরিক্ত চাহিদা মেটাতে বিস্তার করার ক্ষমতা বোঝায়।
আপনি কীভাবে বুঝবেন স্কেল করার সময় এসেছে?
আজ ডেটার দ্রুত বৃদ্ধি এবং অ্যাপ্লিকেশনের দ্রুত গ্রহণ হার দেখা সাধারণ, যেমন যখন অ্যাপ্লিকেশন ভাইরাল হয়ে যায় এবং ব্যবহার বেড়ে যায়। যখন এটা ঘটে, আপনি আপনার প্রাথমিক এনভায়রনমেন্টকে দ্রুত ছাড়িয়ে দিবেন। সেই বৃদ্ধি ফিজিক্যাল ডেটা স্টোরেজ চাহিদা, পারফরম্যান্স হিট, এবং অবনতি হতে পারে যা আরও রিসোর্স দাবি করবে। চিন্তা করুন CPU, RAM, নেটওয়ার্কিং, বা تلك সব এর কম্বিনেশন। আপনি বা אז প্রোঅ্যাক্টিভলি বৃদ্ধির জন্য পরিকল্পনা করতে পারেন, অথবা ছোটো পারফরম্যান্স হিট দেখা শুরু হলে স্কেল করতে পারেন।
প্রোঅ্যাক্টিভলি স্কেল করা
যখন আপনি প্রোঅ্যাক্টিভলি স্কেল করার পরিকল্পনা করেন, তখন কমপক্ষে দুটি সাধারণ প্যাটার্ন ঘটতে পারে:
- আপনার একটি বড় মার্কেটিং পুশ আসছে, এবং আপনি গ্রাহক বা ডেটার পরিমানে উল্লেখযোগ্য বৃদ্ধি দেখতে পাবেন।
- আপনার অ্যাপ্লিকেশন বা ব্যবসা সাইক্লিক্যাল (যেমন ক্রিসমাস কেনাকাটা, নববর্ষের রেজোলিউশন, ইত্যাদি), এবং আপনি একটি এক্টিভিটি বৃদ্ধি দেখছেন যা উচ্চ পরিমাণ ডেটা ক্যাপচার এবং রাখতে লীড করে।
আমাদের পোস্ট পড়ুন: আপনার MongoDB ইনস্ট্যান্স স্কেল করার সঠিক সময় কীভাবে নির্ধারণ করবেন।
রিঅ্যাক্টিভলি স্কেল করা
যদি আপনি বোতলগলায় পড়েন এবং আপনি আশা করেন যে আপনি বেড়ে যাবেন, তবে আপনাকে স্কেলিং সম্পর্কে চিন্তা করতে হবে।
সমস্যার সংকেত موارد নিম্নলিখিত:
- এন্ড-ইউজারদের জন্য কুয়েরি টাইম বৃদ্ধি
- লগইন টাইম বৃদ্ধি
- রিকোয়েস্ট এবং সার্ভার ফ্রিজ হয়ে যাওয়া
- ডেভেলপারদের ডেটাবেস আপত্তি
- धीম সার্ভার রেসপন্স টাইম
- হোস্টগুলোর লোড বৃদ্ধি
- আউট-অফ-মেমরি এরর
- অনিচ্ছাকৃত ইলেকশন
- লগগুলিতে এরর
যখন আপনি এই সংকেতগুলো দেখতে শুরু করবেন, তবে ডিমান্ডের সাথে তাল মিলিয়ে রাখতে এবং নিশ্চিত করতে যে আপনি গ্রাহক হারাচ্ছেন না, স্কেলিং শুরু করার সময়।
আপনি ভার্টিক্যালি (আপ) বা হরিজন্টালি (আউট) স্কেল করতে পারেন
ভার্টিক্যালি স্কেল করা
এটি প্রবাদের বড় লোহা পদ্ধতি: একটি বড় মেশিন जिसमें প্রচুর রিসোর্স থাকে (CPU কোর, উচ্চ CPU গতি, প্রচুর RAM, স্টোরেজ)। ভার্টিক্যাল স্কেলিং এর প্রধান সুবিধা হলো আর্কিটেকচারাল জটিলতা কম থাকা এবং রক্ষণাবেক্ষণের জন্য কম হোস্ট। এটি উপকারী যদি আপনার কাছে রক্ষণাবেক্ষণের কেউ না থাকে।
আজकल ভার্টিক্যালি স্কেল করার অনেক উপায় উপলব্ধ। কিছু অপশন হলো बेटার কমোডিটি হার্ডওয়্যার, সস্তা ডিস্ক এবং স্টোরেজ, बेटার স্টোরেজ অপশন, সস্তা মেমরি, बेटার সফ্টওয়্যার, এবং নেটওয়ার্কিং যাতে ফেইলওভার এবং ইন্টারাপশন আরও গ্রেসফুলি হ্যান্ডল করা যায়।
স্কেল আপ অনেক অ্যাপ্লিকেশন এবং চাহিদার জন্য আদর্শ, এবং আমরা পরের বিভাগে আলোচনা করা রিপ্লিকা সেট-কে রিকমেন্ড করি। একটি বড় রিপ্লিকা সেট ব্যবহার করার সময় একটা কথা মনে রাখবেন যে 거기에 লুকানো খরচ থাকতে পারে ভার্টিক্যাল স্কেলিং-এ। যদি আপনার এনভায়রনমেন্ট দ্রুত বেড়ে যাওয়া থাকে, তবে আপনাকে ধারাবাহিকভাবে বড় মেশিনে যেতে হতে পারে বা অতিরিক্ত রিসোর্স যোগ করতে হতে পারে যতক্ষণ না সেটি আর অপশন নয়। আপনাকে এইও বিবেচনা করতে হবে যে একটি একক বড় হোস্টের চেয়ে হরিজন্টালি স্কেল করা এনভায়রনমেন্টে আপগ্রেড সাইকেল বেশি কার্যকর। தொடரিত বৃদ্ধির সাথে, আপনাকে সিদ্ধান্ত নিতে হবে যে আপনি স্কেল আপ চালিয়ে যাবেন কিনা অথবা হরিজন্টাল স্কেলিং থেকে সুবিধা পাবেন কিনা।
হরিজন্টালি স্কেল করা
শার্ডিং হচ্ছে হরিজন্টাল স্কেলিং। শার্ডিং ডেটা একাধিক নোডে সংরক্ষণ করে, লোড এবং প্রসেস হোস্টগুলোর মধ্যে বিতরণ করে। রিপ্লিকেশন প্রাইমারি-রেপ্লিকা মডেল ব্যবহার করে হ্যান্ডল করা হয় যেখানে প্রয়োজন অনুযায়ী অতিরিক্ত নোড যোগ করা যায়।
লোড ব্যালেন্সার ডেটার চাঙ্কগুলো নোডের ডিস্কগুলোর মধ্যে বিতরণ করে।
এটি রিড এবং রাইট ক্যাপাসিটি বাড়ায় কারণ রিড এবং রাইট অপারেশনগুলো মেশিনের একটি গোষ্ঠীতে বিতরণ হয়, একটি মেশিনকে রাইট বা রিড দিয়ে হামলা করার বদলে। خوشবক্ত, লাস্ট কয়েক রিলিজে ব্যালেন্সার ফাংশনে বড় উন্নতি হয়েছে। হরিজন্টাল স্কেলিং MongoDB®-র বিল্ট-ইন শার্ডিং ক্ষমতা এবং সস্তা কমোডিটি হার্ডওয়্যার ব্যবহার করার সুবিধা নেয়।
যখন আপনি হরিজন্টালি স্কেল করেন, আপনি ফিজিক্যাল বা ভার্চুয়াল হোস্টের সাথে রিসোর্স যোগ করেন।
- ফিজিক্যাল – অনেক সস্তা কমোডিটি হার্ডওয়্যার
- ভার্চুয়াল – VM বা ক্লাউড ব্যবহার করে অতিরিক্ত CPU কোর বা নোড যোগ করা
- নেটওয়ার্কিং – লোড ব্যালেন্সার, অতিরিক্ত mongoS® প্রসেস, ইত্যাদি যোগ করা
উন্নত লোড ব্যালেন্সিং টেকনোলজি (হার্ডওয়্যার এবং সফ্টওয়্যার) ব্যবহার করে ট্রাফিক वहां পাঠানো যেখানে তার প্রয়োজন লোড ব্যালেন্সার ব্যবহার করে।
MongoDB-এ রিপ্লিকা সেটসহ স্কেলিং কীভাবে বাস্তবায়ন করবেন?
MongoDB এক বড় রিপ্লিকা সেট ব্যবহার করে হরিজন্টালি স্কেল আউট করতে পারে যাতে একটি প্রাইমারি এবং দুটি সেকেন্ডারি থাকে যাদের আপস ডাউন স্টেটের জন্য হার্টবিট কমিউনিকেশন থাকে। রিপ্লিকেশন সেকেন্ডারিগুলোর ওপর অপারেশনাল লজিস্টিক্সের মাধ্যমে হয়।
হরিজন্টাল স্কেলিং: রিপ্লিকা সেট নাকি শার্ডিং?
শার্ডিং-এর সাথে ট্রেড-অফ হলো সামগ্রিক জটিলতা বৃদ্ধি। কিন্তু শার্ডিং রক্ষণাবেক্ষণ সহজ করে দেয় একটি সুবিধা দিয়ে। এটি রোলিং আপগ্রেডের অনুমতি দেয় এবং আপনাকে কিছু অপারেশন যেমন ইন্ডেক্স বিল্ড সমান্তরালে আপনার শার্ড এবং নোড জুড়ে একসাথে করতে দেয়। নিচে বড় রিপ্লিকা সেট বনাম শার্ডেড ক্লাস্টারের মধ্যে কিছু তুলনা দেওয়া হলো:
| রিপ্লিকা সেট | শার্ডিং |
|---|---|
| সহজ | দক্ষতা দরকার |
| বিশাল ডেটা সেট জুড়ে অনেক রিড (স্ক্যাটার গ্যাথার চাই না) | খুব সারা রাইট এবং আপডেট (নির্দিষ্ট শার্ডে সরাসরি ফলাফলের জন্য যেতে চান) |
| খুব ডেটা, কম এক্টিভিটি রেট | খুব ডেটা, খুব এক্টিভিটি |
| সাধারণ রিসোর্স বেশি দরকার, যেমন ডিস্ক | সকল রিসোর্স বেশি দরকার, ডিস্ক, RAM, CPU, রাইট স্কোপস সহ |
কেন ObjectRocket-এ থেকে ম্যানেজড MongoDB বেছে নেবেন?
Rackspace ObjectRocket মানে দক্ষতা। আমরা শুরু থেকে বড় স্কেলে MongoDB ম্যানেজ করেছি। আমরা বড় রিপ্লিকা সেটের জন্য সমর্থন প্রদান করি, এবং আমরা বড় শার্ডেড MongoDB ক্লাস্টারের জন্য সমর্থন প্রদান করার প্রাথমিক প্রোভাইডারদের একজন ছিলাম। আমাদের ইঞ্জিনিয়ার এবং DBA-রা অভিজ্ঞ এবং তারা খুব জটিল বাধাগুলো ওপরাজিত করেছে—বাধা যা অন্য প্রোভাইডারদের জন্য সাধারণত অজানা।
আমাদের কিছু বড় কাস্টমার মার্কেটিং টেকনোলজি ভার্টিক্যালে (মোবাইল অ্যানালিটিক্স, মিডিয়া, ইমেইল ক্যাম্পেইন, মোবাইল অ্যাডভারটাইজিং ফ্রড ডিটেকশন, এবং ডিজিটাল মিডিয়া) প্রায়শই olyan বাগের শিকার হন যা অন্য কেউ দেখে না বা কীভাবে ফিক্স করবেন জানে না। متنوعة কাস্টমার থেকে বিলিয়ন বিলিয়ন মেসেজ এবং ডকুমেন্ট, হাজার হাজার বড় এবং ছোট ক্যাম্পেইন—আমাদের প্ল্যাটফর্ম সকল হোস্ট করে।
আমরা যে সার্ভিস দিই সেটি অন্তর্ভুক্ত করে:
- ইনফ্রাস্ট্রাকচার
- স্টোরেজ
- IOPS
- নেটওয়ার্ক
- সেরা হ্যান্ডস-অন সমর্থন, হ্যান্ডস-ডাউন। সঠিক রেসপন্স ২৪×৭।
প্ল্যান এবং প্রাইসিং দেখুন।
আমরা এমন ক্লাউড সমাধান প্রদান করার লক্ষ্য রাখি যা পূর্ণরূপে রবাস্ট সেটআপ অফার করে এবং আপনার সেকেন্ডারি-কে ভার্চুয়াল ভলিউমে প্রোভিশন করে না। এইভাবে আমরা পারফরম্যান্স সমস্যা এড়িয়ে যাই যা হতে পারে যদি একটি ইলেকশন ঘটে এবং আপনার প্রাইমারি কম রবাস্ট হোস্টে চলে যায় যা শুধু সেকেন্ডারির জন্য প্রোভিশন করা হয়েছিল। স্কেলিং-এর জন্য এটেই থাকলো। আপনার MongoDB ইনস্ট্যান্স কখন স্কেল করবেন, শার্ডিং টিপস, সেরা শার্ড কী সিলেক্ট করা, এবং আরও অনেক কিছু শিখতে ভুলবেন না।
Rackspace DBA সার্ভিস সম্পর্কে আরও জানুন।
যেকোনো মন্তব্য বা প্রশ্নের জন্য Feedback ট্যাব ব্যবহার করুন। আপনি Sales Chat-এ ক্লিক করেও এখনই চ্যাট শুরু করতে পারেন।