আমাদের কাছে খুব বড় একটি এন্টারপ্রাইজ স্তরের ডাটাবেস রয়েছে। আমাদের ব্যবসায়ের মডেলের অংশ হিসাবে সমস্ত ওয়েব ব্যবহারকারীরা প্রতি মাসে একই সময়ে আমাদের ওয়েব সার্ভারগুলিতে হিট করে যা ঘুরে ফিরে আমাদের এসকিএল বক্সকে হাতুড়ি দেয়। ট্র্যাফিক খুব ভারী এবং সংস্থাটি যত বড় হয় তত ভারী হতে থাকে। sql proc অপ্টিমাইজেশান সম্পাদন করা হয়েছে এবং হার্ডওয়্যার ইতিমধ্যে খুব উচ্চ স্তরের পর্যন্ত মাপা হয়েছে।
আমরা এখন কোম্পানির বৃদ্ধি এবং ভবিষ্যতের বোঝা পরিচালনা করতে পারি তা নিশ্চিত করার জন্য আমরা ডাটাবেসটি তীক্ষ্ণ করতে চাইছি।
কোন বিশেষ ডেটা তীক্ষ্ণ করা উচিত আমরা তা স্থির করেছি। এটি আমাদের ডাটাবেসের একটি উপসেট যা অত্যন্ত কার্যকর।
যাইহোক, আমার প্রশ্নটি শারদযুক্ত ডেটা সম্পর্কিত যা সাধারণ / সর্বজনীন regarding এর মতো ডেটার উদাহরণ উদাহরণস্বরূপ কোনও ইনভেন্টরি টেবিল বা সম্ভবত কোনও কর্মচারী টেবিল, ব্যবহারকারীর টেবিল ইত্যাদি হতে পারে।
আমি এই সাধারণ / সর্বজনীন ডেটা পরিচালনা করতে দুটি বিকল্প দেখতে পাচ্ছি:
1) ডিজাইন 1 - বহিরাগত ডাটাবেসে সাধারণ / সর্বজনীন ডেটা রাখুন। সমস্ত লেখাগুলি এখানে ঘটবে। এই ডেটাটি প্রতিটি শার্ডকে এই ডেটাটি পড়তে এবং অভ্যন্তরীণভাবে টি-স্কেল প্র্যাক্সে অন্তর্ভুক্ত হওয়ার অনুমতি দিয়ে প্রতিটি শারডে প্রতিলিপি করা হবে।
2) ডিজাইন 2 - প্রতিটি শार्ডকে সমস্ত সাধারণ / সর্বজনীন ডেটার নিজস্ব কপি দিন। প্রত্যেকটি শারদ স্থানীয়ভাবে এই টেবিলগুলিতে লিখতে দিন এবং অন্য সমস্ত শার্ডগুলিতে এই ডেটাটি আপডেট / সিঙ্ক করতে বর্ধিত স্কয়ার একীভূত প্রতিলিপিটি ব্যবহার করুন।
নকশা # 1 সম্পর্কে উদ্বেগ
1) লেনদেন সংক্রান্ত সমস্যা: আপনার যদি এমন কোনও পরিস্থিতি হয় যা আপনার অবশ্যই একটি শ্যাডে ডেটা লিখতে বা আপডেট করতে হবে এবং উদাহরণস্বরূপ 1 টি সংরক্ষিত প্রকোষ্ঠে একটি সাধারণ / সার্বজনীন টেবিলটি লিখুন / আপডেট করুন, আপনি আর এটি সহজেই সক্ষম করতে পারবেন না। ডেটা এখন পৃথক স্কয়ার উদাহরণ এবং ডাটাবেসগুলিতে বিদ্যমান। এই লেখাগুলি কোনও পৃথক ডাটাবেসে থাকার কারণে আপনি এই লেখাগুলি কোনও লেনদেনের মধ্যে গুটিয়ে রাখতে পারেন কিনা তা দেখতে আপনার এমএস ডিটিএসকে জড়িত হতে পারে। পারফরম্যান্স এখানে উদ্বেগজনক এবং সম্ভাব্য পুনরায় লেখাগুলি তীক্ষ্ণ ও সাধারণ ডেটাতে লেখার জন্য জড়িত থাকতে পারে।
2) রেফারেন্সিয়াল অখণ্ডতা একটি ক্ষতি। ক্রস ডাটাবেস রেফারেন্সিয়াল অখণ্ডতা করা সম্ভব নয়।
3) সিস্টেমের বৃহত অঞ্চলগুলি পুনরায় পুনর্নির্মাণ করা যাতে এটি নতুন ইউনিভার্সাল ডাটাবেসে সাধারণ তথ্য লিখতে জানে তবে শার্ডগুলি থেকে সাধারণ ডেটা পড়তে পারে।
4)। ডাটাবেস ট্রিপস বৃদ্ধি। উপরের # 1 এর মতো, যখন আপনি এমন পরিস্থিতিতে চলে যাচ্ছেন যখন আপনাকে অবশ্যই শারডড ডেটা এবং সাধারণ ডেটা আপডেট করতে হবে আপনি এটি সম্পাদন করতে একাধিক রাউন্ড ট্রিপ করতে যাবেন কারণ ডেটা এখন পৃথক ডাটাবেসে রয়েছে। এখানে কিছু নেটওয়ার্ক বিলম্ব হয়েছে তবে আমি উপরোক্ত 3 এর মতো এই সমস্যাটি নিয়ে উদ্বিগ্ন নই।
নকশা # 2 সম্পর্কে উদ্বেগ
ডিজাইন # 2 এ প্রতিটি শারড সমস্ত সাধারণ / সর্বজনীন ডেটার নিজস্ব উদাহরণ পেয়েছে। এর অর্থ হ'ল যে সমস্ত কোড যা সাধারণ ডেটার সাথে যোগ দেয় বা আপডেট হয় তা আজকের মতো কাজ করে / চালিয়ে যায়। বিকাশকারী দলের খুব কম পুনর্নির্মাণ / পুনর্লিখনের প্রয়োজন। যাইহোক, এই নকশাটি সমস্ত শার্দের জুড়ে ডেটা সিঙ্কে রাখার জন্য মার্জ প্রতিরূপের উপর সম্পূর্ণভাবে নির্ভর করে। ডিবিএস অত্যন্ত দক্ষ এবং খুব উদ্বিগ্ন যে একীভূত প্রতিলিপিটি এটি পরিচালনা করতে সক্ষম হতে পারে এবং একত্রিত হওয়া প্রতিরূপ ব্যর্থ হওয়া উচিত, এই ব্যর্থতা থেকে পুনরুদ্ধার দুর্দান্ত নয় এবং আমাদের উপর খুব নেতিবাচক প্রভাব ফেলতে পারে।
আমি ডিজাইন অপশন # 2 নিয়ে কেউ চলে গেছে কিনা তা জানতে আগ্রহী। আমি জানতে আগ্রহী যে আমি ২ য় বা চতুর্থ ডিজাইনের বিকল্পটি দেখছি না যা আমি দেখতে পাচ্ছি না।
তুমাকে অগ্রিম ধন্যবাদ.