অ্যামাজনের মতো একটি সংস্থা কীভাবে ডাটাবেস স্তর অ্যাক্সেসের বাধা থেকে এড়াতে পারে?


29

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

আমি বুঝতে চাই যে কীভাবে আপনি বিতরণ করা কম্পিউটিংয়ের সাহায্যে এমন একটি বৃহত স্টোর পরিচালনা করতে পারেন এবং ইনভেন্টরি সম্পর্কিত তথ্য রয়েছে এমন একটি ডিবিতে একটি বিশাল বাধা তৈরি করতে পারবেন না।


মধ্য 2000 এর (এখনও আপনার প্রশ্ন প্রাসঙ্গিক) আমাজন স্থাপত্য: highscalability.com/amazon-architecture
Joeri Sebrechts

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

1
@ রেমকো গ্রিলিচ: আপনি যেভাবে "একটি চূড়ান্ত সত্য ডাটাবেস" বলছেন তা আমাকে একটি একক মেশিনের উপর এটির বৃহত পবিত্র ডাটাবেস নিয়ে ভাবতে বাধ্য করে। বাস্তবে, সমালোচনামূলক তথ্যের জন্য যা ঘটে থাকে তা হ'ল সমস্ত লেনদেন একসাথে একাধিক সার্ভারে পৌঁছে যায় এবং নিশ্চিত হয়ে যায় যে এই সমস্ত ডাটাবেসগুলি সর্বদা সিঙ্কে রয়েছে।
আর্সেনী মোরজেনকো

উত্তর:


27

তবে, যদি একাধিক ব্যবহারকারী পৃথক সার্ভার দ্বারা পরিবেশন করা হয় এবং উভয়ই তাদের কার্টে একই আইটেম যুক্ত করার চেষ্টা করে, যার জন্য কেবল একটি বাকী রয়েছে, সেই আইটেমটির পরিমাণের জন্য অবশ্যই কিছু "সত্যের উত্স" থাকতে হবে।

আসলে তা না. এটি এমন কোনও সমস্যা নয় যা 100% নিখুঁত প্রযুক্তিগত সমাধানের প্রয়োজন, কারণ উভয় ত্রুটির ক্ষেত্রে একটি ব্যবসায়িক সমাধান রয়েছে যা খুব ব্যয়বহুল নয়:

  • আপনি যদি কোনও ব্যবহারকারীকে ভুলভাবে বলেন যে কোনও জিনিস বিক্রি হয়ে গেছে, আপনি বিক্রয় হারাবেন। আপনি যদি প্রতিদিন কয়েক মিলিয়ন আইটেম বিক্রি করেন এবং এটি সম্ভবত দিনে একবার বা দু'বার হয়ে থাকে, তবে তা গোলমালে হারিয়ে যায়।
  • আপনি যদি কোনও অর্ডার গ্রহণ করেন এবং এটি প্রক্রিয়া করার সময় দেখতে পান যে আপনার আইটেমটি শেষ হয়ে গেছে, আপনি কেবলমাত্র গ্রাহককে তাই বলুন এবং আপনি যাতে পুনরায় লক করতে না পারছেন ততক্ষণ অপেক্ষা করতে বা অর্ডার বাতিল করে দেওয়ার পছন্দটি দিন। আপনার একজন সামান্য বিরক্ত গ্রাহক আছেন। যখন 99.99% অর্ডার ঠিকঠাক কাজ করে তখন আবার কোনও বিশাল সমস্যা হয় না।

আসলে, আমি সম্প্রতি দ্বিতীয় কেসটি নিজেই অভিজ্ঞতা পেয়েছি, সুতরাং এটি অনুমানকৃত নয়: এটিই ঘটে এবং এটি অ্যামাজন কীভাবে পরিচালনা করে।

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


2
প্যাট Helland এর স্মৃতি, অনুমান, এবং দুঃক্ষিত এছাড়াও মধ্যে আবৃত চোরাবালি বিল্ডিং এবং পুষিয়ে লেনদেনের প্রাসঙ্গিক ধারনা এখানে আছে।
ডেরেক এলকিন্স

1
আপনি "সত্যই নন" বলেছিলেন তবে আমার মনে হয়েছে আপনি আমার পরামর্শ অনুসারে একমত হচ্ছেন। মনে হচ্ছে আপনি যা বলছেন তা হ'ল ব্যবহারকারী যখন কেবল ব্রাউজ করছেন, আমরা বাকী তালিকাটির একটি ক্যাশেড আনুষঙ্গিকতা দিই, তবে যখন তারা প্রকৃতপক্ষে ক্রয়টি সম্পূর্ণ করার চেষ্টা করে তখনই আমরা বাকী তালিকাটি হ্রাস করার জন্য লিখনটি করি। সেই মানযুক্ত ডিবি প্রতিটি লেনদেনকে পরমাণুভাবে সম্পাদন করবে এবং যদি দু'জন ব্যবহারকারী একই সাথে চেষ্টা করে তবে আমরা দ্বিতীয়টির জন্য একটি ত্রুটি বার্তা দেখাই, কারণ এটি হওয়ার সম্ভাবনা কম। সুতরাং, অবশেষে একটি একক মেশিনে একটি পূর্ণসংখ্যার মধ্যে রয়েছে "সত্য"।
mattgmg1990

2
@ ম্যাটজিএমজি ১৯৯০: সঠিক, শেষ পর্যন্ত আপনাকে অবশ্যই কোথাও "সত্য" জানতে হবে, তবে গুরুত্বপূর্ণ পার্থক্যটি হ'ল অর্ডারগুলির প্রসেসিংটি একটি সারিতে করা যেতে পারে যাতে আপনার একসাথে পারমাণবিক লেখার অ্যাক্সেসের প্রয়োজন হয় না। আমার ক্ষেত্রে, "ত্রুটি বার্তা" আসলে আমি অ্যামাজন ওয়েবসাইটে অর্ডার শেষ করার কয়েক ঘন্টা পরে এসেছিল - আমি একটি ইমেল পেয়েছিলাম যে তাদের ওই আইটেম সরবরাহে সমস্যা আছে এবং আমি আদেশটি বাতিল করতে বা কিছুই করতে এবং অপেক্ষা করতে পছন্দ করতে পারি তাদের এটি পূর্ণ করার জন্য। আমার তাত্ক্ষণিকভাবে আইটেমটির প্রয়োজন না হওয়ার পরে আমি এটি করেছি এবং তারা আসলে বেশ কয়েক সপ্তাহ পরে এটি সরবরাহ করেছিল।
মাইকেল বর্গওয়ার্ট

@ ডেরেক্লিনকিন্স এটি একটি দুর্দান্ত নিবন্ধ, বিশেষত ডিজিটাল ডেটা সম্পর্কে বাস্তবতার প্রতিনিধিত্ব হওয়া বিষয়টি অনিবার্যভাবে অপূর্ণ কারণ বাস্তবতায় সর্বদা পরিবর্তন থাকতে পারে আপনার সিস্টেমটি স্বয়ংক্রিয়ভাবে জানতে পারে না।
মাইকেল বর্গওয়ার্ট

6

সংমিশ্রণ

  • হ্যাশ
  • sharding
  • প্রতিলিপি
  • বিতরণ
  • উচ্চ ব্যর্থ ওভার
  • কী-মূল্য সঞ্চয়

এখানে কোনও যাদু নেই, আরও বেশি জটিল পরিস্থিতি রয়েছে। ঠিক ডিএনএসের মতোই, এটিও স্কেল করা হয়।

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


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

আরও কিছু যোগ করা হয়েছে। দুঃখিত, আমি এই ফর্ম্যাটটিতে জড়িত সমস্ত জটিলতার সত্যতা ব্যাখ্যা করতে পারি না।
মাইকেল ডুরান্ট

1
কেবলমাত্র কিছু লোক যে কোনও প্রদত্ত বইটিতে আগ্রহী, এর অর্থ, তুলনামূলকভাবে ছোট লোড সহ একটি শারড দ্বারা বইটি পরিচালনা করা যায়।
বেসিলিভ

6
আমি মনে করি আপনি যে পরিস্থিতিতে দৃশ্যের বর্ণনা দিচ্ছেন, কেবলমাত্র সেই ব্যবহারকারীটির কাছে ক্ষমা চাইতে হবে যে অন্য কেউ শেষ কপিটি কিনেছিল। আমি ধারণা করি এটি সময়ে সময়ে ঘটে থাকে।
ম্যাথু জেমস ব্রিগেস

1
আমি বাজি ধরেছি যে কেবলমাত্র 5 টি বইয়ের সূচকটি কম কম্পিউটিং এবং আরও বিপণনযোগ্য।
mouviciel

5

আমি 'শেষ আইটেম ইন স্টক' সমস্যাটি নিম্নলিখিত উপায়ে সমাধান করতে দেখেছি:

প্রতিটি স্টক স্তরের দৈনিক আপডেট করুন এবং প্রান্তিক স্তর অনুযায়ী অর্ডার বা স্টক বিভাগের বাইরে ফ্ল্যাগ পণ্যগুলি উচ্চ, নিম্ন, হিসাবে আপডেট করুন।

অবশ্যই এটি 'লো স্টক' আইটেম যা সমস্যাযুক্ত

  • উচ্চ স্টক স্তর সহ আইটেম

স্টক স্তর পরীক্ষা করে বিরক্ত করবেন না। শুধু অর্ডার দিন

  • নিম্ন স্টক স্তর সহ আইটেম

'শেষ কয়েকটা বাম!' ব্রাউজ করার সময় ব্যবহারকারীকে সতর্ক করুন। যখন তারা অর্থ দিতে যান, পরীক্ষা করুন এবং স্টক স্তর হ্রাস করুন। যদি এটি স্টক না হয়ে থাকে তবে আইটেমের স্থিতি আপডেট করুন।

আপনি কেবলমাত্র 'লো স্টক' আইটেমগুলির জন্য ডাটাবেসটিকে হিট করেন এবং গ্রাহক কেনার প্রক্রিয়াটি বেশ নিচু অবস্থায় থাকলে আপনি কেবল এটি করেন। ব্যয়টি হ'ল কিছু গ্রাহক তাদের ক্রয় সম্পূর্ণ করতে পারবেন না।

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

বিক্রয়ের মতো উচ্চ লোডের সময় আপনি স্টক চেকিং বন্ধ করে দিতে পারেন এবং কেবল পরে গ্রাহকদের ইমেল করবেন, 'দুঃখিত আমরা এক্স এর বাইরে চলে গেলাম, আপনি কি ওয়াই চান'

মূলত কোনও ইকমার্স প্ল্যাটফর্মের লক্ষ্য কখনই ডেটাবেস থেকে পড়া হয় না। সর্বদা ক্যাশেড পৃষ্ঠাগুলি পরিবেশন করুন এবং ক্লায়েন্টের পাশে সবকিছু করুন।


2

এই ভিডিওতে মার্টিন ফোলার নোএসকিউএল ডাটাবেসগুলি নিয়ে আলোচনা করেছেন:

https://www.youtube.com/watch?v=qI_g07C_Q5I

একটি বিন্দু (কোথাও কোথাও না কোথাও) এটি হ'ল অ্যামাজনের মতো জায়গাগুলি 99% লোককে তাদের অর্ডার গ্রহণ করে খুশি রাখবে যে এটি "পাওয়া যায় কিনা" তা নিশ্চিতভাবে পরীক্ষা করতে সক্ষম না হয়ে এবং সম্ভবত খুব অল্প শতাংশে বিরক্ত হওয়া "দুঃখিত, দেখে মনে হচ্ছে কেউ আপনাকে এর কাছে মারবে।"

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

(বিটিডব্লিউ, আপনি যদি নোএসকিউএল সম্পর্কে আগ্রহী হন তবে এটি দুর্দান্ত ভিডিও)

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.