এসএসডিগুলি ডেটাবেসগুলির কার্যকারিতা হ্রাস করে


28

আমি কেবল আজ রবার্ট মার্টিন সম্পর্কে শুনেছি, এবং মনে হচ্ছে তিনি সফটওয়্যার জগতের একটি উল্লেখযোগ্য ব্যক্তিত্ব, সুতরাং আমার শিরোনামটি এমনভাবে বোঝা যাচ্ছে না যেন এটি একটি ক্লিক টোপ বা তার মুখে শব্দ রাখছে, তবে এটি কেবল সহজ আমি তাঁর কাছ থেকে যা শুনেছি তা আমার সীমিত অভিজ্ঞতা এবং বোঝার সাথে কীভাবে ব্যাখ্যা করেছি।

আমি আজ একটি ভিডিও দেখছিলাম (সফ্টওয়্যার আর্কিটেকচারে), রবার্ট সি মার্টিনের একটি বক্তৃতায় এবং ভিডিওটির শেষার্ধে, ডাটাবেসের বিষয়বস্তু ছিল মূল ফোকাস।

তিনি যা বলেছিলেন তা আমার বোঝার থেকে মনে হয়েছিল যে তিনি বলছিলেন যে এসএসডিগুলি ডাটাবেসের উপযোগিতা ( যথেষ্ট পরিমাণে ) হ্রাস করবে ।

আমি কীভাবে এই ব্যাখ্যায় এসেছি তা ব্যাখ্যা করার জন্য:

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

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

সুতরাং, আমি র‌্যামের দ্বারা চিন্তাভাবনা করেছি, তার অর্থ এসএসডি। সুতরাং, সে ক্ষেত্রে তিনি বলছেন যে এসএসডি ডেটাবেসের কার্যকারিতা হ্রাস করে। এমনকি তিনি আরও বলেছিলেন "যদি আমি ওরাকল হতাম তবে আমি ভয় পেয়ে যাতাম। কেন আমি থাকি তার ভিত্তিই বাষ্পীভবন হয়।"

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

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

দ্রষ্টব্য : তিনি অন্য কিছু না বলেছেন তা নিশ্চিত করার জন্য আমি শেষ অবধি নজর রেখেছি।

রেফারেন্সের জন্য: 42:22 হ'ল যখন পুরো ডাটাবেসের বিষয় আসে, 43:52 হয় যখন "" আমাদের কাছে এমনকি ডাটাবেস কেন আছে "দিয়ে শুরু করা হয়

এই উত্তরটি বলে যে এসএসডিগুলি ডিবিগুলিকে যথেষ্ট গতি দেয়। এই প্রশ্নটি কীভাবে অপ্টিমাইজেশন পরিবর্তন করা হয় তা সম্পর্কে জিজ্ঞাসা করে।

করার টি এল; ডিআর আমার প্রশ্ন, (তা আসন্ন বা ইতিমধ্যে ঘটেছে) ডাটাবেস উপযোগিতা হ্রাস সার্ভার বাজারে ব্যাপক এসএসডি ব্যবহারের আবির্ভাব করে?

দেখে মনে হচ্ছিল উপস্থাপক যা বোঝানোর চেষ্টা করছিলেন তা হ'ল এসএসডি ব্যবহার করে, কেউ ডিস্কে ডেটা সংরক্ষণ করতে পারে এবং পুরানো এইচডিডি-র মতো এটি পুনরুদ্ধার করতে কতটা ধীর হবে তা নিয়ে চিন্তা করার দরকার নেই, এসএসডি-র মতো সময় সন্ধান করার সময় নিকটবর্তী O(1)(আমি মনে করি). সুতরাং, এটি সত্য হওয়ার ক্ষেত্রে, অনুমানের সাথে এটির একটি সুবিধাটি হারাবে: সূচীকরণ, কারণ দ্রুত অনুসন্ধানের সময়গুলির জন্য সূচীগুলি রাখার সুবিধা চলে গেছে।

উত্তর:


59

সেখানে একটি ডাটাবেসের মধ্যে কিছু জিনিস যে উচিত tweaked, যখন আপনি SSDs ব্যবহার করা আবশ্যক। উদাহরণস্বরূপ, PostgreSQL এর পক্ষে কথা বলতে আপনি সামঞ্জস্য করতে পারেন effective_io_concurrencyএবং random_page_cost। তবে দ্রুত পড়া এবং দ্রুত এলোমেলো অ্যাক্সেস কোনও ডাটাবেস যা করে তা নয়। এটি নিশ্চিত করে

তিনি সূচী সম্পর্কে ঠিক ভুল। যদি পুরো টেবিলটি রামতে পড়তে পারে তবে একটি সূচক এখনও কার্যকর। বিশ্বাস করবেন না? আসুন একটি চিন্তা পরীক্ষা করি,

  • একটি সূচী কলাম সহ আপনার একটি টেবিল রয়েছে তা কল্পনা করুন।

    CREATE TABLE foobar ( id text PRIMARY KEY );
  • কল্পনা করুন যে সেই টেবিলটিতে 500 মিলিয়ন সারি রয়েছে।

  • কল্পনা করুন যে সমস্ত 500 মিলিয়ন সারি একত্রে একটি ফাইলে সংযুক্ত হয়ে গেছে।

দ্রুত কি,

  1. grep 'keyword' file
  2. SELECT * FROM foobar WHERE id = 'keyword'

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


31
কেবলমাত্র একটি সংযোজন - ওপি "কন্টেন্ট-অ্যাড্রেসযোগ্য অ্যাক্সেস" এর সাথে "এলোমেলো অ্যাক্সেস" সংঘাত না ঘটাতে সতর্ক হওয়া উচিত। যেমন ওপি উল্লেখ করেছে, "এলোমেলো অ্যাক্সেস" এর অর্থ হ'ল মেমোরির প্রতিটি বাইটে পৌঁছে যাওয়া ও (1)। তবে, সেই "র্যান্ডম-অ্যাক্সেস মেমরি" এর ডেটা ফাইন্ডিংয়ের জন্য এখনও এর মাধ্যমে ক্রমানুসারে অনুসন্ধান প্রয়োজন; যে আপনি মেমরি জিজ্ঞাসা করবে না "আমাকে ডেটা যে মত দেখাচ্ছে এই " এবং জাদুর আপনাকে হস্তান্তর আছে।
বব জার্ভিস - মনিকা

2
পছন্দ করেছেন আপনার মন্তব্য আরও বেশি ইভাঙ্কারোলের "কী দ্রুত" উদাহরণটি পরিষ্কার করতে সহায়তা করে কেন সূচক এবং এমনকি সাব-ইনডেক্সিং বিষয়টিও, এবং ডিবি যেভাবে O(1)ব্যবহার করে তার ক্ষেত্রে কেবল দখল করা যথেষ্ট নয়
আবদুল

12

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

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

সাধারণভাবে আরডিবিএমএস সিস্টেমগুলির মূল মান হ'ল ডেটা ধারাবাহিকতা, ডেটা উপলভ্যতা এবং ডেটা সমষ্টি। একটি এক্সেল স্প্রেডশিট, সিএসভি ফাইল বা "ডেটা বেস" রাখার অন্যান্য পদ্ধতি ব্যবহারের কোনও গ্যারান্টি নেই।

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


যদিও আমি আরও ভাল অন্তর্দৃষ্টি পেয়েছি, আমি কাঁচা এসএসডি ডেটা স্টোরেজ বনাম ডেটা স্টোরেজ কোনও ডিবি ডাব্লু / এইচডিডির প্রসঙ্গে জিজ্ঞাসা করছি, এবং আপনার উত্তর এসএসডি-তে ডিবি-র প্রসঙ্গে রয়েছে (আমার কাছ থেকে প্রশ্ন ফাঁস করার কারণে)
আব্দুল

4
@ আবদুল এই তুলনাটি আপেল-থেকে-সাসপেনশন ব্রিজ। একটি কাঁচা ডিভাইস আপনাকে বড় পরিমাণে স্টোরেজ দেয়; একটি ডেটাবেস আপনাকে ডেটা মডেল অনুসারে সেই স্টোরেজটি সংগঠিত এবং অ্যাক্সেস করার একটি উপায় দেয়। জোশের বক্তব্য এখানে আপনি যদি তারার চোখের ধারণা নিয়ে যান তবে কোনও কাঁচা এসএসডি একটি দুর্দান্ত জিনিস কারণ এটি "দ্রুত" এবং আপনি কেবল সেই কাঁচা ভলিউমে আপনার সমস্ত ডেটা স্টোরেজ করার জন্য কোড লিখতে চলেছেন , আপনি শেষ পর্যন্ত একটি ডাটাবেস লিখে শেষ হবে।
ব্লারফ্লা

8

আঙ্কেল বব সম্ভবত যেমন ইন-মেমোরি ডাটাবেস সম্পর্কে কথা ছিল Redis বা Gemfire । এই ডাটাবেসগুলিতে, ডাটাবেসের প্রতিটি জিনিসই র‍্যামে থাকে। ডাটাবেসটি খালি শুরু হতে পারে এবং স্বল্প -কালীন ডেটা (ক্যাশে হিসাবে ব্যবহৃত হচ্ছে) দিয়ে ফাইল করা যায় বা এটি ডিস্ক থেকে সমস্ত সময় লোড করে এবং পর্যায়ক্রমে ডিস্কে চেকপয়েন্ট পরিবর্তনগুলি দিয়ে শুরু করে start

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

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


আহ। মেমরি ডাটাবেসগুলির মতো জিনিসগুলি আমি কখনই জানতাম না
আব্দুল

1
অন্য উদাহরণ হিসাবে
এসকিউএলাইট

8

সম্প্রদায় উইকি পোস্ট উত্তর সংগ্রহ করার জন্য মূলত প্রশ্ন মন্তব্য হিসাবে রেখে গেছে


আমি ঠিক উল্টো বলব। যেহেতু পঠন / লেখার গতি এত দ্রুত, এখন আপনি আরও দ্রুত ক্র্যাঙ্ক সংখ্যার জন্য একটি জিপিইউ ত্বকযুক্ত ডাটাবেস (যেমন ব্লেজিংডিবি বা অ্যালেনকা ) পেতে পারেন। এখন আপনি আরও জটিল প্রশ্নগুলি দ্রুত চালাতে পারেন। এখন যে প্রশ্নগুলি লোকেরা দৌড়াদৌড়ি বিবেচনা করবে না তা যুক্তিসঙ্গত গতিতে চালানো যেতে পারে। আপনি যত বেশি জটিল এবং তত বেশি ডেটা হবেন - সাইবারনার্ড

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

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

আরডিবিএমএস শীঘ্রই যে কোনও সময় চলে যাচ্ছে না; তারা কিছু ধরণের অ্যাপ্লিকেশনের জন্য সেরা পছন্দ এবং নোএসকিউএল (মঙ্গো, ইত্যাদি) অন্যদের পক্ষে সেরা পছন্দ। ভিন্ন ভিন্ন মানুষ ভিন্ন ভিন্ন জিনিস এর জন্য উপযোগী. - sh1rts

ডাটাবেস ডেটা সংগঠিত করতে সহায়তা করে। এটি সত্যই যেহেতু প্রথম স্থানে দ্রুত অ্যাক্সেসের জন্য ডিজাইন করা হয়নি। - জেআই জিয়াং

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