প্ল্যাটফর্ম ডিজাইন: একটি ডাটাবেস বা একাধিক ডাটাবেস?


31

আমরা একটি ওয়েব প্ল্যাটফর্ম তৈরি করছি যা একাধিক পরিষেবা অন্তর্ভুক্ত করে, যার প্রত্যেকটির নিজস্ব অন্তর্নিহিত ডেটা রয়েছে। এই পরিষেবাগুলি পরিষেবা ওরিয়েন্টেড আর্কিটেকচারের নীতি অনুসরণ করে স্বাধীনভাবে নির্মিত হচ্ছে , তবে তারা সম্ভাব্য সম্পর্কিত ডেটার বিরুদ্ধে লেনদেন করে। আমরা বিবেচনা করছি যে এই পরিষেবাগুলির একটি বড় ডাটাবেস ভাগ করা উচিত বা প্রত্যেকের নিজস্ব ডেটাবেস থাকা উচিত। (আমরা উইন্ডোজ ২০০৮ ক্লাস্টারে এসকিউএল সার্ভার ২০০ এন্টারপ্রাইজ ব্যবহার করার পরিকল্পনা করছি।)

আমরা ইতিমধ্যে বিবেচনা করা প্রতিটি পদ্ধতির কিছু সুবিধার মধ্যে রয়েছে:

একক ডাটাবেস

  • বিভিন্ন পরিষেবা থেকে ডেটা সম্পর্কিত বিদেশী কী সীমাবদ্ধতার দ্বারা আবদ্ধ হতে পারে
  • বিশ্লেষণী এক্সট্রাক্টগুলি লেখার জন্য সহজ এবং কার্যকর করার জন্য দ্রুত
  • কোনও বিপর্যয় ঘটলে প্ল্যাটফর্মটিকে একটি সামঞ্জস্যপূর্ণ অবস্থায় পুনরুদ্ধার করা সহজ
  • একাধিক পরিষেবা দ্বারা রেফারেন্সযুক্ত ডেটাগুলির জন্য, একটি পরিষেবাদি দ্বারা ক্যাশে করা ডেটা অন্য পরিষেবা দ্বারা শীঘ্রই ব্যবহার করার সম্ভাবনা রয়েছে
  • প্রশাসন এবং পর্যবেক্ষণ সহজ এবং সস্তা সামনের দিকে

একাধিক ডাটাবেস

  • রক্ষণাবেক্ষণের কাজ, হার্ডওয়্যার সমস্যা, সুরক্ষা লঙ্ঘন এবং এর ফলে পুরো প্ল্যাটফর্মটিকে অগত্যা প্রভাবিত করে না
  • ধরে নেওয়া যায় যে প্রতিটি ডাটাবেস পৃথক হার্ডওয়্যারে রয়েছে, একাধিক মেশিন স্কেলিং করা একটি বড়কে স্কেলিংয়ের চেয়ে বেশি কর্মক্ষমতা সুবিধা দেয়

অপারেশনাল দৃষ্টিকোণ থেকে, এই প্ল্যাটফর্মের প্রতিটি পরিষেবা নিজস্ব ডেটাবেস পাবে, বা তারা সবাই একই ডাটাবেসে যাবে কি আরও সুবিধাজনক? কোন মূল কারণগুলি এই প্রশ্নের উত্তর জানায়?


আপনি কি শেষ করেছেন?
ফ্র্যাঙ্ক ভ্যাসাগিও

@ BobSinclar - এটি এখন বেশ কিছুক্ষণ আগে, তবে আমরা একাধিক ডাটাবেস দিয়ে শেষ করেছি।
নিক চ্যামাস 21

স্কিমা পরিবর্তনগুলি আরও কঠিন বা না? ধরা যাক আপনাকে প্রতিটি ডাটাবেসের স্কিমা আপডেট করতে হয়েছিল।
ফ্র্যাঙ্ক ভ্যাসাগিও

@ BobSinclar - আপনি যা চাইছেন তা আমি করছি না। আপনি এসওএ নীতিমালা অনুসারে একটি প্ল্যাটফর্ম তৈরি করে থাকলে একবারে প্রতিটি ডাটাবেসের স্কিমা আপডেট করার দরকার পড়বে কী? বিভিন্ন সিস্টেম আলগাভাবে মিলিত করা উচিত।
নিক চ্যামাস 21

আমি জানি এটি কিছুক্ষণ হয়ে গেছে, তবে আপনি যে বিভিন্ন ডাটাবেস নির্বাচন করেছেন এবং তার কারণগুলি ভাগ করে নিতে আপনি কি আপত্তি করেন?
আজঙ্গুনিট 81

উত্তর:


18

আমার মতে, সত্য এসওএ সিস্টেমগুলির মূল পার্থক্যকারী (সিউডো এসওএ ওভার, নটিয়ার / বিতরণকারী ব্যবস্থাগুলি যা সর্বব্যাপী হয়ে উঠছে) হ'ল বিযুক্ত পরিষেবাদির মধ্যে শূন্য ইন্টারঅ্যাকশন হওয়া উচিত। যেখানে এটি অর্জন করা হয়, আপনি এই পরিষেবাদিগুলি থেকে রচনা করেন এমন কোনও অ্যাপ্লিকেশন কোনওরকম সামঞ্জস্যপূর্ণ অংশের ব্যর্থতা সহ্য করতে নির্মিত হতে হবে এবং তৈরি করা উচিত। একটি ব্যর্থতা কার্যকারিতা হ্রাস করে তবে পরিষেবা বজায় থাকে।

এই দৃশ্যে প্রতিটি পরিষেবার জন্য অন্তর্নিহিত ডাটাবেস পৃথক করা যৌক্তিক বা প্রয়োজনীয়। তবে আপনার যদি আন্তঃনির্ভরশীল পরিষেবাগুলি থাকে তবে একটি বিভাজন থেকে খুব কম (সম্ভবত কিছুই) লাভ করা সম্ভব নয়।

আমি হাইস্কুলাবিলিটি ডটকমের মতো সাইটগুলি পড়ার পরামর্শ দেব যা কখনই ব্যর্থ-ব্যর্থ ওয়েবসাইটগুলির দ্বারা গৃহীত আর্কিটেকচারে খনন করে। দেরীতে আমার প্রিয় পছন্দের একটি হ'ল নেটফ্লিক্স কাওস বানরের গল্প যা কোডিং হরর এর উপরে উল্লেখ করা হয়েছিল ।

আপনার প্রশ্নের কয়েকটি বিষয়কে সম্বোধন করা:

কোনও বিপর্যয় ঘটলে প্ল্যাটফর্মটিকে একটি সামঞ্জস্যপূর্ণ অবস্থায় পুনরুদ্ধার করা সহজ।

এটি সত্য তবে আপনার সম্ভবত এই পরিষেবাগুলিকে কীভাবে আরও ডিকুয়াল করা যায় সে সম্পর্কে চিন্তা করা উচিত তাই এটি কোনও সমস্যা হয়ে দাঁড়ায়। বিকল্পভাবে, এসকিউএল সার্ভারে উদাহরণস্বরূপ একাধিক ডাটাবেস জুড়ে সিঙ্ক্রোনাইজেশন নিশ্চিতকরণের পদ্ধতি রয়েছে ।

একাধিক পরিষেবা দ্বারা রেফারেন্সযুক্ত ডেটাগুলির জন্য, একটি পরিষেবাদি দ্বারা ক্যাশে করা ডেটা অন্য পরিষেবা দ্বারা শীঘ্রই ব্যবহার করার সম্ভাবনা রয়েছে।

বিতরণ করা ক্যাশে সমাধানগুলি (মেমাক্যাচড এট আল) এখানে সহায়তা করতে পারে তবে আপনি পরিষেবা স্বাধীনতার নীতিগুলি লঙ্ঘন করছেন। এটি একে অপরের সাথে সরাসরি যোগাযোগ করার জন্য দুটি পরিষেবা থাকার সাথে, বা সার্ভিস ইন্টারফেসটিকে পুরোপুরি বাইপাস করে কোনও পরিষেবা অ্যাক্সেস অ্যানার্স ডেটা স্টোর রাখার চেয়ে আরও খারাপ। অনিবার্যভাবে ডেটা সম্পর্কিত হবে এবং কলিং প্ল্যাটফর্মের মাধ্যমে পরিষেবাগুলির মধ্যে হস্তান্তর করা হবে, কৌতূহলপূর্ণ সিদ্ধান্তগুলি কোন পরিষেবাটি কোন ডেটা টুকরো টিকিয়ে রাখবে তার চারপাশে থাকে। স্ট্যাকওভারফ্লো বা প্রোগ্রামার্স সাইটগুলিকে আরও সাধারণ এসওএ সমস্যাগুলির সাহায্যে আরও ভাল স্থাপন করা যেতে পারে।

ধরে নিই প্রতিটি ডাটাবেস পৃথক হার্ডওয়্যারে রয়েছে, স্কেলিংয়ের ফলে আরও কার্যকারিতা বেনিফিট পাওয়া যায়।

অবশ্যই একক মেশিনকে স্কেল করার চেয়ে একাধিক লোয়ার স্পেস মেশিন জুড়ে স্কেল করা সস্তা। যদিও, অতিরিক্ত বিকাশের প্রচেষ্টা এবং পরিচালন জটিলতার নরম ব্যয়গুলি যখন সজ্জিত করা হয় তখন মালিকানার মোট ব্যয়কে কম হার্ডওয়্যার ব্যয় বামন করা যেতে পারে।

যদি এটি এসওএ না হয় এবং আপনার যদি কেবল এমন একটি মামলা থাকে যেখানে এই প্ল্যাটফর্মের উপাদানগুলি যৌক্তিক কারণে বিভিন্ন দল / সরবরাহকারীরা তৈরি করে চলেছে, তবে একটি একক ডাটাবেসের সাথে লেগে থাকুন এবং উপরের সমস্ত জিনিসকে সম্পূর্ণ উপেক্ষা করুন! :)


বিতরণ ক্যাশে সমাধান সম্পর্কে ভাল পয়েন্ট। সান বা ডাটাবেস পর্যায়ে ক্যাশে দেওয়ার পরে, তবে এটি কোনও সমস্যা নয়। সেখানে আপনি আপনার স্থাপনার টপোলজির কারণে ক্যাচিং সুবিধা অর্জন করছেন (যেমন বিভিন্ন পরিষেবা কেবল একই হার্ডওয়্যারটি ভাগ করে নিতে পারে) এবং মেমক্যাচের মতো পরিষেবার মধ্যে সরাসরি যোগাযোগের কারণে নয়।
নিক চামাস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.