MongoDB কি?
MongoDB হল, অন্যান্য জিনিসের মধ্যে, একটি নথি-ভিত্তিক NoSQL ডাটাবেস। এর মানে হল যে এটি ডেটা ম্যানেজমেন্ট এবং সংস্থার জন্য একটি নমনীয়, অনুভূমিকভাবে স্কেলিং মডেল উপস্থাপন করতে ঐতিহ্যগত, সম্পর্কযুক্ত মডেল থেকে বিচ্যুত হয়।
AEM এর সাথে MongoDB কিভাবে কাজ করে?
MongoDB Adobe Experience Manager (AEM)-এর সাথে crx3mongo রানমোড এবং JVM বিকল্পগুলির মাধ্যমে একীভূত করে:-Doak.mongo.uri এবং -Doak.mongo.db
আমি কেন MongoDB করব?
প্রাথমিকভাবে MongoDB পুরানো CRX ক্লাস্টার কনফিগারেশনের জন্য একটি বিকল্প HA কনফিগারেশন প্রদান করে। বাস্তবে, আর্কিটেকচারটি সত্যিকারের ক্লাস্টারিংয়ের চেয়ে NFS orto NetApp-এ একটি ভাগ করা ক্যাটালগের মতো বেশি। মঙ্গোডিবি ব্যবহার করে লেখক এবং প্রকাশকরা একে অপরের সম্পর্কে অবগত নন।
চলুন এটাকে বাদ দেওয়া যাক - CRX ক্লাস্টারিং এর কোনো দাগহীন ট্র্যাক রেকর্ড নেই। শুধুমাত্র স্থানীয় বস্তুর ক্যাটালগের অন্তর্নিহিত চ্যালেঞ্জগুলির মধ্যে একটি হল, স্কেলে, একটি একক ক্যাটালগ বিভিন্ন সুবিধা উপস্থাপন করে:
- ডেটার ডুপ্লিকেশন কমে গেছে
- পারফরম্যান্স বিশ্লেষণ এবং টিউনিংয়ের জন্য কেন্দ্রীভূত সুযোগ
- মাল্টি-নোড ইন্টারঅ্যাকশনের প্রয়োজন ছাড়াই HA প্রাপ্যতা
- অপ্রয়োজনীয়তা এবং কর্মক্ষমতার জন্য অনুভূমিক স্কেলিং
এমনকি একটি নিখুঁতভাবে কাজ করা CRX ক্লাস্টারের সাথেও, এই সুবিধাগুলির কোনটিই সম্বোধন করা হয় না। ভাগ করা ডেটা স্তরের এত পুরানো দিনগুলি লিখুন৷
৷5.6.1 এবং তার আগে, বড় এবং ক্রমবর্ধমান স্থাপনাগুলি শেয়ার্ড NFS হিসাবে তাদের অবজেক্ট্রেপোজিটরি মাউন্ট করতে পারে, যেখানে প্রোটোকল, বা NFS সার্ভার, কম সংঘর্ষের সাথে মাল্টি-রাইট আচরণের জন্য লকিং সমর্থন প্রদান করে। এটি এখনও একটি কার্যকর বিকল্প, কিন্তু, NetApp ব্যবহার না করলে, প্রায়শই কন্ট্রোলারে একক পয়েন্ট ব্যর্থতার ঝুঁকি থাকে, বা ডেটা স্তর, যা n*9 আর্কিটেকচারকে ধরে রাখে।
AEM 6.x-এ MongoDB মাইক্রোকার্নেলের প্রবর্তন মূলত একই আর্কিটেকচার প্রদান করে যা আমরা পছন্দ করি এমন আরও বাজওয়ার্ড-ভারী ডাটাবেস।
MongoMK-এর জন্য প্রাথমিক ব্যবহার-কেস হল AEM লেখক দৃষ্টান্তগুলির সাথে, যেখানে সক্রিয় ব্যবহারকারীর সীমা(~25-30) এর অর্থ হল অনুভূমিক স্কেলিংকে প্রথমে কনকারেন্সি সমস্যাটি সমাধান করতে হবে। এখানে, ভাগ করা ডেটা স্তরটি সবচেয়ে উজ্জ্বল হয়ে ওঠে কারণ কর্মক্ষমতা স্কেল এবং ধারাবাহিকতার দ্বিতীয় বেহাল এবং একই সাথে নোড-টু-নোড যোগাযোগের প্রয়োজনীয়তা দূর করে৷
প্রকাশকদের সাথে একইভাবে যোগদান করা অবশ্যই সম্ভব, তবে, একটি সমসাময়িক সমস্যা (অর্থাৎ আরও স্কেলের জন্য আরও প্রকাশক যোগ করুন) এবং একটি অ-স্থানীয় ক্যাটালগের কার্যকারিতা শাস্তির কারণে সুবিধাগুলি হ্রাস পেয়েছে৷
তাহলে এটাই! অসীম এবং তার বাইরে স্কেল!
ধীরে চলুন, Buzz Lightyear, একটি সমস্যা আছে। একক-সাইট মঙ্গোডিবি দ্রুত-অ্যাক্সেস ডেটা এবং ইন-লাইন নেটওয়ার্কিংয়ের জন্য এটির বিকল্পটি খুব কার্যকরভাবে স্কেল করবে বলে আশা করা হচ্ছে। এখানে, আকাশ সীমা হতে পারে. যদিও, একটি মাল্টি-সাইট স্থাপনার কথা বিবেচনা করুন যেখানে MongoDB রেপ্লিকেসেটগুলিকে আলাদা ডেটা সেন্টার এবং ফাইবারের অজানা মাইল জুড়ে যোগাযোগ করতে হবে। অপারেশন লগ লিখুন (অপলগ)।
অপলগ হল প্রতিলিপিগুলিকে সিঙ্ক্রোনাইজ করার জন্য মধ্যস্থতাকারী; ক্রমানুসারে প্রয়োগ করার জন্য মূলত ডেল্টা অপারেশনের সিরিজ প্রদান করে। এটি নির্দিষ্ট অন্যান্য ডেটাবেস ক্লাস্টার কনফিগারেশনের সাথে মোটামুটি অনুরূপ।
অপ্টিমাইজ করা অপারেশন চলাকালীন, অপলগটি প্রাথমিক সম্ভবের সাথে রিয়েলটাইমের কাছাকাছি হিসাবে কার্যকর করা হয়, যদিও MongoDB ড্রিফটের অনুমতি দেয়। মাল্টি-সাইট অপারেশন চলাকালীন, তবে, ওয়্যারলেটেন্সি এবং অপারেশন লেটেন্সি বৃহত্তর ড্রিফ্ট চালু করতে এবং এই কনফিগারেশনে নিম্নলিখিত চ্যালেঞ্জগুলি উপস্থাপন করতে স্ট্যাক করতে পারে:
- অপলগ কার্যকরীভাবে কমান্ডের একটি স্ট্যাক।
- অনেক স্ট্যাকের মতো, এটি ফার্স্ট-ইন - ফার্স্ট-আউট।
- স্ট্যাক আচরণ নির্দেশ করে যে, যখন পরবর্তী পুশ একটি আন-পপড রেকর্ড ওভাররাইট করবে, তখন ডেটা ক্ষতি হবে।
মঙ্গোডিবি প্রোগ্রামাররা পুনর্নির্মাণের পর (নতুন) অপলগ থেকে রেপ্লিকাহল্ট, পুনঃনির্মাণ এবং সিঙ্ক ফরওয়ার্ড করে এই পরিস্থিতিকে ধরতে এবং মোকাবেলা করার জন্য নির্বাচন করেছে।
পৃষ্ঠে, এই অপারেশন সম্পর্কে বহিরাগত বা বিপজ্জনক কিছুই নেই। প্রথমে বিল্ড অপারেশন বিবেচনা করুন, যা সমস্ত ডেটা মুছে দেয় এবং তারপর পরিচিত-গুড প্রাইমারি থেকে একটি নতুন কপি টেনে আনে। এমনকি যদি রপ্তানি সম্পূর্ণ হতে শূন্য সেকেন্ড সময় নেয়, তবে একটি সুপ্ত তারের মধ্যে ডেটা ভলিউমের অনুলিপিটি স্বভাবতই দূরবর্তী প্রতিলিপি আমদানি করা শেষ হওয়ার আগেই ড্রিফ্ট চালু করবে। এছাড়াও অনুমান করুন যে তারের লেটেন্সি একমাত্র চ্যালেঞ্জ, যাতে, পুনর্নির্মাণের পরে, অপলগ শুধুমাত্র পুনর্নির্মাণের দ্বারা প্রবর্তিত ড্রিফট ধারণ করে। মূল সমস্যা যা প্রতিলিপিকরণের ব্যবধানকে ট্রিগার করেছিল, তাই এটি আশা করা যেতে পারে যে, সময়ের সাথে সাথে, নতুনভাবে নির্মিত মাধ্যমিক আবার পুনর্নির্মাণ করতে বাধ্য হবে৷
কিছু ক্ষেত্রে, এই আচরণটি প্রতিলিপিকরণ ল্যাগ এবং পুনঃনির্মাণের একটি অবিরাম লুপে প্রবেশ করে, যার ফলে দূরবর্তী সেকেন্ডারি হয় যা কখনই কার্যকরী অবস্থায় থাকে না।
AEM-এর জন্য, এর অর্থ হল MongoDB প্রতিলিপিগুলিকে ক্রস-সাইট অথরিং-এর প্রাথমিক ডেটা উৎস হিসাবে ব্যবহার করা দূরবর্তী লেখকদের উল্লেখযোগ্য ঝুঁকিতে রাখে।