আপনার নিজের একটি আকর্ষণীয় প্রকল্প রয়েছে। কমপক্ষে এসকিউএল সার্ভারে, এমন কোনও বৃহত কিছু বাস্তবায়নের চেষ্টা আমি কখনও দেখিনি। আমি যত বেশি আপনার পোস্ট পড়ি, ততই আরও প্রশ্ন নিয়ে আসি ...
সবচেয়ে খারাপ পরিস্থিতি অবকাঠামো-ভিত্তিক (যা প্রকৃতপক্ষে সর্বোত্তম কেস দৃশ্যাবলী, ব্যবসায়-ভিত্তিক), আপনার 2k ব্যবহারকারীদের 10K ডাটাবেস প্রয়োজন। এটি 20,000,000 ব্যবহারকারী। আপনি 20 এম এসকিউএল সার্ভার লগইন পরিচালনা করার চেষ্টা করে সফল হতে যাচ্ছেন না। আইএমও। তাদের মধ্যে কেবল নিছক সংখ্যা, তাদের সার্ভার থেকে সার্ভারে সরিয়ে নিয়ে যাওয়ার, আইডি সংঘর্ষে এবং মেলানো আইডির জন্য নজর রাখার পাশাপাশি আমি নিশ্চিত নই যে এসকিউএল সার্ভার sys.server_prصولগুলিতে 20 এম সারিগুলির সাথে কেমন আচরণ করবে। অতিরিক্তভাবে, আপনার ওয়েব অ্যাপ্লিকেশন সম্ভবত একক, বা খুব কম সংখ্যক ব্যবহারকারী হিসাবে সংযোগ করতে চাইবে। ডিআইএসএন স্ট্রিংগুলি অভিন্ন না হলে আইআইএস সংযোগগুলি পুল করতে পারে না। ডিএসএন স্ট্রিংয়ের অন্যতম বৈশিষ্ট্য হল ব্যবহারকারী নাম। বিভিন্ন ব্যবহারকারী মানে কোনও পুলিং নেই।
আপনার নিজের ব্যবহারকারী শংসাপত্রের স্কিম রোল করতে হবে। কোনও ব্যবহারকারী কোন ভাড়াটে সম্পর্কিত তা এটি নির্ধারণ করতে হবে এবং তারপরে আপনার ওয়েব কোডের সঠিক ডাটাবেস নির্বাচন করতে হবে। ব্যবহারকারীর মেটাডেটা সমালোচনামূলক, এটি অন্য কোথাও সংরক্ষণ করার দরকার পড়েছে, এটি ক্লাস্টার বা মিরর করা দরকার, এটি দ্রুত হওয়া দরকার এবং এটি সুরক্ষিত হওয়া দরকার (সুরক্ষা দৃষ্টিকোণ থেকে। IOW, এটি এনক্রিপ্ট করুন।)। ধরে নিচ্ছি যে এসকিউএল এখানে এমনকি একটি ভাল ধারণা, আমি এই ডাটাবেসটিকে সার্ভারের ভাড়াটেদের দৃষ্টান্তগুলি থেকে দূরে রাখব। এটি সুরক্ষা দৃষ্টিকোণ এবং লোড দৃষ্টিকোণ থেকে সহায়তা করে, যদিও আমি অনুমান করব যে একবার কোনও ব্যবহারকারীকে বৈধতা দেওয়া হয়েছে এবং ওয়েব অ্যাপ্লিকেশনটি অন্য কোনও উপায়ে সঠিক ডাটাবেসে পৌঁছেছে, তার সাথে সম্পর্কিত এই ব্যবহারকারীর মেটাডেটার আর কোনও অনুসন্ধান করা হবে না will ব্যবহারকারী।
তাত্ক্ষণিক প্রশ্ন: দুটি পৃথক ব্যবহারকারী, যারা দুটি ভিন্ন ভাড়াটে অন্তর্ভুক্ত, তাদের একই ব্যবহারকারীর নাম থাকার অনুমতি দেওয়া উচিত?
আরেকটি তাত্ক্ষণিক প্রশ্ন: যদি আমি আপনাকে বলি যে আমি ফুবার, ইনক। এর জন্য কাজ করি, আপনি কীভাবে তা জানবেন? ফুবার কি আপনাকে ব্যবহারকারীর একটি তালিকা দেবে এবং আপনি তাদের ব্যবহারকারীর নামের একটি তালিকা ফিরিয়ে দিবেন, বা তারা স্ব-বিধানে চলেছেন?
আপনি বহু-উদাহরণ যেতে হবে। এমনকি যদি সেই ব্যবহারকারীদের একটি অংশও একবারে অ্যাপ্লিকেশনটিকে হিট করার সিদ্ধান্ত নেয় তবে একটি একক উদাহরণ গলে যাবে। এই সমস্ত অনুরোধ একবারে চালানোর জন্য এতে পর্যাপ্ত কর্মী থ্রেড থাকবে না। যদি একই সময়ে কেবল 1000 ব্যবহারকারী আপনার নজরে আঘাত করে তবে এটি সম্ভবত কর্মী থ্রেডের বাইরে চলে যাবে এবং অনুরোধটি স্ট্যাক আপ এবং অপেক্ষা শুরু করবে। আমি এটা ঘটতে দেখেছি; অনুমান লক্ষণটি হ'ল নতুন সংযোগগুলি উদাহরণটিতে লগ ইন করতে সক্ষম হবে না কারণ সেবার জন্য কোনও কর্মী থ্রেড নেই। এটি যদি খুব স্বল্পস্থায়ী আচরণ হয় তবে আপনার অ্যাপটি বেঁচে থাকতে পারে। যদি না হয় বা আপনার অ্যাপটি উদ্বেগজনক হয় তবে ব্যবহারকারীরা ত্রুটি পাবেন।
এমনকি যদি আপনার অনেক ভাড়াটে শুরু না হয় তবে আপনার ভবিষ্যত এবং অটোমেশন সম্পর্কে চিন্তাভাবনা শুরু করা উচিত কারণ আপনি যখন দেখেন যে আপনার সার্ভারটি শুরু হয়েছে এবং অনলাইনে আনার জন্য 10 জন নতুন ভাড়াটে রয়েছে, তখন অনেক দেরি হয়ে গেছে এবং আপনার পরিষেবাও (এবং আপনার ক্লায়েন্টগুলি এবং আপনার শীঘ্রই প্রাক্তন ক্লায়েন্টগুলি যতক্ষণ না সমস্যা সমাধানের উপায়টি লিখবে ততক্ষণ আপনার ক্ষতি হবে will
আপনার ওভারলোড হওয়া সার্ভারগুলি থেকে হালকা লোড হওয়া (বা নতুন) সার্ভারগুলিতে ডেটাবেসগুলি চারপাশে সরিয়ে নেওয়ার একটি উপায় প্রয়োজন। আপনি ডাউনটাইমের উইন্ডো পেতে পারেন কিনা তা আপনার এসএলএর উপর নির্ভর করবে।
আপনি কি সেলসফোরসের মতো কোনও নির্দিষ্ট অ্যাপ্লিকেশন সরবরাহ করছেন, বা আপনার ভাড়াটিয়ারা যে কিছু রাখতে চান তার জন্য এই ডাটাবেসগুলি কেবল পাত্রে?
ডাটাবেস কত বড়? যদি সেগুলি খুব বড় না হয় তবে আপনি কেবলমাত্র একটি টেম্পলেট সরবরাহ করে এমন ব্যাকআপ ফাইল থেকে পুনরুদ্ধার করতে পারেন। (এটি মডেল ডাটাবেসের তুলনায় খুব বেশি আলাদা নয়, তবে এসকিউএল .5.৫ সহ আমার দিনগুলি থেকে কেউ সত্যিই একটি ভাল উপায়ে মডেল ব্যবহার করতে দেখেনি)) টেমপ্লেটটি নতুন ডাটাবেসের নামে পুনরুদ্ধার করা গেলে আপনি তা করতে পারেন তারপরে নির্দিষ্ট ভাড়াটেটির জন্য প্রয়োজনীয় হিসাবে নতুন ডাটাবেসটি কাস্টমাইজ করুন। স্পষ্টতই আপনার ভাড়াটিয়া হওয়ার আগে আপনি কাস্টমাইজেশনটি করতে পারবেন না। যদি ডাটাবেসটি বড় হয় তবে কোনও নতুন ভাড়াটে জায়গার প্রয়োজনের আগে আপনি সময়ের পূর্বে পুনরুদ্ধার না করে আপনি একই বুনিয়াদি পদ্ধতি অনুসরণ করতে পারেন। আপনি এই ডাটাবেসগুলির বেশ কয়েকটি রাখতে পারেন, উদাহরণস্বরূপ এক হতে পারে। আপনি যদি আশেপাশে অনেক বেশি রাখেন তবে এটি আপনাকে আপনার প্রয়োজনের তুলনায় আরও হার্ডওয়ার এবং / অথবা সঞ্চয়স্থান কিনতে বাধ্য করবে,
এটি যদি আপনার নিজস্ব অ্যাপ হয় তবে আপনি কীভাবে স্কিমার আপডেটগুলি পরিচালনা করবেন? আপনি কীভাবে ডাটাবেসের সংস্করণগুলি কোডের সংস্করণগুলির সাথে সোজা রাখতে যাচ্ছেন, যদি আপনি আপনার ওয়েব অ্যাপ্লিকেশনটিতে আসে এমন একক ইউআরএল ব্যবহার করছেন?
আপনি কীভাবে ব্যবহার করছেন না এমন ডাটাবেসগুলি কীভাবে সনাক্ত ও ধ্বংস করবেন? আপনার এ / আর গ্রুপটি বলছে যে কেউ তিন মাস ধরে তাদের বিল পরিশোধ করে নি?
ভাড়াটিয়ারা যদি অনুমতিগুলি পরিচালনা করে থাকেন তবে এর থেকে বোঝা যায় যে অ্যাপ্লিকেশনটির অভ্যন্তরীণ কার্যকারিতা সম্পর্কে তাদের কিছুটা ধারণা রয়েছে বা আপনার অ্যাপ্লিকেশনটির খুব সাধারণ ভূমিকা কাঠামো রয়েছে। ব্লগার এর মতো কোনও ব্যবহারকে মোটামুটি উদাহরণ হিসাবে ব্যবহার করে, ব্যবহারকারীরা (পোস্টগুলি পড়তে), (পোস্টগুলি পড়তে এবং মন্তব্য করতে), (... এবং পোস্ট তৈরি করতে), (... এবং অন্যের পোস্টগুলি সম্পাদনা করতে পারে), (... এবং পুনরায় সেট করতে পারে অন্যান্য ব্যবহারকারীর পাসওয়ার্ড), বা (... এবং যাই হোক না কেন) সেই অধিকারগুলির পৃথক পৃথক সেগুলির প্রত্যেকের জন্য ভূমিকা রাখা এবং একজনকে একটি ভূমিকা বা অন্য কোনও ব্যক্তিকে নির্ধারণ করা খুব কঠিন হওয়া উচিত নয়, তবে আপনি চান না যে আপনার অ্যাপটি 'অনুদান' বিবৃতি চালাচ্ছে। এমন একটি ভূমিকা রয়েছে যা বিকাশ রয়েছে এবং উত্তরাধিকারের উপর নির্ভর করে, এটি বিভ্রান্তিকর হতে পারে। আপনি যদি কোনও ব্যবহারকারীর প্রচার বা পদোন্নতি ঘটাচ্ছেন তবে আমি বলব যে এগুলি সম্পর্কিত সমস্ত ভূমিকা থেকে এনে রাখুন এবং তারপরে তাদের প্রয়োজনীয় ভূমিকাটিতে এটিকে আবার যুক্ত করুন। উহু,
আমি মনে করি যে আমি কেবল এখানে পৃষ্ঠটি স্ক্র্যাচ করেছি এবং এই পোস্টটি ইতিমধ্যে খুব দীর্ঘ। আপনার সত্যিকারের যা দরকার তা হ'ল একটি বই, বা কমপক্ষে এই কাজটি করা কারও কাছ থেকে একটি হোয়াইটপেপার। এই ছেলেরা বেশিরভাগই কথা বলবে না, যদি তারা এটিকে প্রতিযোগিতামূলক সুবিধা হিসাবে দেখে।