একক থ্রেডযুক্ত বনাম মাল্টিথ্রেডেড ডাটাবেসগুলির কর্মক্ষমতা


58

পারফরম্যান্স সম্পর্কিত ভাল খ্যাতি সহ এইচ 2 হ'ল একক থ্রেডেড ডাটাবেস। অন্যান্য ডাটাবেসগুলি বহু-থ্রেডযুক্ত।

আমার প্রশ্ন হ'ল: যখন একক থ্রেড ডাটাবেসের চেয়ে বহু-থ্রেড ডাটাবেস আরও আকর্ষণীয় হয়ে ওঠে? কতজন ব্যবহারকারী? কয়টি প্রক্রিয়া? ট্রিগার কি? কারও ভাগ করে নেওয়ার অভিজ্ঞতা আছে?

সারাংশ

  • সাধারণ বাধা হ'ল ডিস্ক অ্যাক্সেস
  • এসএসডি দ্রুত, তবে ভঙ্গুর (ব্যর্থতা প্রক্রিয়া একটি আবশ্যক)
  • একটি একক থ্রেড সিস্টেমে একটি দীর্ঘ প্রশ্ন অন্য সকলকে অবরুদ্ধ করবে
  • মাল্টি-থ্রেডিং সিস্টেমটি কনফিগার করা জটিল হতে পারে
  • মাল্টিথ্রেডেড ডাটাবেসগুলি একক কোর সিস্টেমেও উপকারী

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

উত্তর:


31

এখানে আমার মতামত:

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

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

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

ডিবিতে উপলব্ধ থ্রেডগুলি অনেকগুলি উদ্দেশ্যে ব্যবহৃত হয়: ডিস্কে পড়া / লেখা, ব্যবহারকারী সংযোগ, পটভূমি কাজ, লকিং / ল্যাচিং, নেটওয়ার্ক আইও, ইত্যাদি ... ওএস আর্কিটেকারের উপর নির্ভর করে থ্রেডগুলি প্রিপ্রিমটিভভাবে সিপিইউতে খাওয়ানো হয় এবং হয় ওয়েটস এবং সারি ব্যবহার করে পরিচালিত। সিপিইউ যদি এই থ্রেডগুলি খুব দ্রুত ক্রંચ করতে পারে তবে অপেক্ষা করার সময় কম থাকবে। মাল্টি-থ্রেডেড ডিবি একক থ্রেডেড ডিবির চেয়ে দ্রুততর হবে, যেমন একক থ্রেডেড ডিবিতে অন্যান্য ট্র্যাডগুলি সহজেই উপলব্ধ হওয়ার চেয়ে কেবল একটি থ্রেড পুনর্ব্যবহারের ওভারহেড থাকবে।

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


অন্তর্দৃষ্টি জন্য ধন্যবাদ। আমি শুনেছি লোকেরা কঠিন রাষ্ট্রীয় চালনার প্রশংসা করছে। আমার অনুমান যে প্রশ্নগুলি ভালভাবে লিখিত হয়েছে এবং অ্যাপ্লিকেশনটি যুক্তিযুক্তভাবে সমান্তরালভাবে তৈরি করার পরে সেগুলিতে বিনিয়োগ করা সম্ভবত সবচেয়ে ভাল কাজ।
জেরুমে ভার্সট্রিঞ্জ

@ স্ট্যান - আমি মনে করি multithreadedএই প্রসঙ্গে অর্থ কিছু আলাদা অর্থাত্ লুহ তার উত্তরে উল্লেখ করেছেন বলে সমস্ত লেনদেনকে সিরিয়ালীকৃত করা হয়েছে।
জ্যাক ডগলাস

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

@ জকোলেব্রান্ড ওকে, তিনি ব্যর্থ হওয়ার জন্য কেবল শক্তিশালী ব্যাকআপ সিস্টেমে তাদের গতির পক্ষে সমর্থন করছেন বলে মনে হয়
জেরুমে ভার্সেন্টেঞ্জ ২

2
@ জার্স্ট্রি ~ হ্যাঁ, এবং আপনি যদি এই ধারণাটি বুঝতে পারেন এবং এটির সাথে ঠিক থাকেন এবং আপনার পুরো উত্পাদন পরিবেশ পুনর্নির্মাণ করতে আপত্তি করবেন না (বা একটি অটোমেটেড ফেইলওভারটি লাথি মেরে অপেক্ষা করতে হবে এবং তারপরে সেই নিকট ভবিষ্যতে কোনও মুহুর্তে পুনর্নির্মাণ) তবে এটির জন্য যান, তারা জিনিসগুলিকে আরও দ্রুত তৈরি করবে, হ্যাঁ।
jcolebrand

47

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

ইনোডব_থ্রেড_কেনচার্সি ইনোডিবি খোলার মতো সামঞ্জস্যপূর্ণ থ্রেডের সংখ্যার উপরের সীমাটি সেট করে। এটির জন্য সেরা গোলাকার নম্বরটি (সিপিইউগুলির 2 এক্স সংখ্যা) + ডিস্কের সংখ্যা। আপডেট : যেমনটি আমি পেরকোনা এনওয়াইসি সম্মেলন থেকে প্রথম শিখেছি, আপনার পরিবেশটি যে পরিবেশে চলছে তার সর্বাধিক সংখ্যক থ্রেড খুঁজতে ইনোডিবি স্টোরেজ ইঞ্জিনকে সতর্ক করার জন্য আপনার এটিকে 0 তে সেট করা উচিত।

ইনোডব_কনক্রেন্সি_টিকেটগুলি থ্রেডগুলির সংখ্যা নির্ধারণ করে যা দায়মুক্তির সাথে সম্মতিযুক্ত চেকিংকে বাইপাস করতে পারে। এই সীমাটি পৌঁছে যাওয়ার পরে, থ্রেড সম্মতিযুক্ত চেকিং আবার আদর্শ হয়ে যায়।

innodb_commit_concurrency প্রতিশ্রুতিবদ্ধ হতে পারে যে সমবর্তী লেনদেন সংখ্যা নির্ধারণ করে। যেহেতু ডিফল্ট 0 হয় তাই এটি সেট না করে কোনও সংখ্যক লেনদেন এক সাথে করার জন্য অনুমতি দেয়।

ইনডোডবি_থ্রেড_স্লিপ_ডিলে ইনোডিবি ক্যুতে প্রবেশের আগে একটি ইনোডিবি থ্রেড সুপ্ত হতে পারে মিলসেকেন্ডের সংখ্যা নির্ধারণ করে। ডিফল্ট 10000 (10 সেকেন্ড)।

ইনোডব_ড্রেড_ও_থ্রেডস এবং ইনানোডব_উইটার_আইও_থ্রেডস (মাইএসকিউএল 5.1.38 উভয় থেকেই) পড়া এবং লেখার জন্য নির্দিষ্ট সংখ্যক থ্রেড বরাদ্দ করে। ডিফল্ট 4 এবং সর্বোচ্চ 64 হয়।

ইনোডাব_প্রিলিকেশন_দেলে দাসের উপর থ্রেড বিলম্ব চাপিয়ে দেওয়া হয় ইনোডাব_থ্রেড_কেনক্রেন্সি পৌঁছেছে।

ইনোডব_ড্রেড_হেড_থ্রেহোল্ড অ্যাসিঙ্ক্রোনাস রিডিংয়ের দিকে স্যুইচ করার আগে এক্সটেন্টসগুলির নির্দিষ্ট সংখ্যার ( pages৪ পৃষ্ঠার [পৃষ্ঠা = ১K কে]) রৈখিক পাঠকে মঞ্জুরি দেয়।

আমি আরও বিকল্পের নাম দিলে সময় আমার হাত থেকে বাঁচতে পারে। আপনি মাইএসকিউএল এর ডকুমেন্টেশন এগুলি সম্পর্কে পড়তে পারেন ।

বেশিরভাগ লোকেরা এই বৈশিষ্ট্যগুলি সম্পর্কে অসচেতন এবং কেবল এসিডি-সম্মতিজনক লেনদেন করার জন্য ইনোডিবিতে বেশ সন্তুষ্ট। আপনি যদি এই বিকল্পগুলির মধ্যে কোনওটিকে টুইট করেন তবে আপনি নিজের বিপদে তা করতে পারেন।

আমি মাইএসকিউএল 5.5 মাল্টিপল বাফার পুল ইনস্ট্যান্স (9 বাফার পুল ইনস্ট্যান্সে 162 গিগাবাইট) দিয়ে খেলেছি এবং এইভাবে মেমরিতে ডেটা অটো-পার্টিশন করার চেষ্টা করেছি। কিছু বিশেষজ্ঞ বলছেন যে এটি আপনাকে 50% পারফরম্যান্স উন্নতি দেবে। আমি যা পেয়েছিলাম তা হ'ল এক টন থ্রেড লক যা আসলে ইনোডিবি কে ক্রল করেছে। আমি 1 টি বাফারে (162 গিগাবাইট) স্যুইচ করেছি এবং বিশ্বের সমস্ত কিছুই আবার ভাল। আমার ধারণা, এটি সেট করার জন্য আপনার প্রয়োজন অনুসারে পারকোনা বিশেষজ্ঞের দরকার। আমি আগামীকাল নিউইয়র্কের পারকোনা মাইএসকিউএল সম্মেলনে থাকব এবং সুযোগটি যদি স্বীকৃত হয় তবে এ সম্পর্কে জিজ্ঞাসা করব।

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

শুভ সকাল, শুভ সন্ধ্যা, এবং শুভ রাত্রি !!!

আপডেট 2011-05-27 20:11

বৃহস্পতিবার নিউইয়র্কের পারকোনা মাইএসকিউএল সম্মেলন থেকে ফিরে এসেছেন । কি সম্মেলন। একটি বিরাট জিনিস শিখেছি, কিন্তু আমি একটি উত্তর পেয়েছি আমি ইনোডিবি সম্পর্কে সন্ধান করব। রোনাল্ড ব্র্যাডফোর্ড আমাকে জানিয়েছিল যে ইনডোড__থ্রেড_কোনক্রেন্সি 0 তে সেট করার ফলে ইনোডিবি সূচিত থ্রেডের সাথে অভ্যন্তরীণভাবে সর্বোত্তম ক্রমের সিদ্ধান্ত নিতে পারে। আমি মাইএসকিউএল 5.5 এ আরও পরীক্ষা করব।

আপডেট ২০১১-০6-০১ ১১:২০

যতক্ষণ পর্যন্ত একটি দীর্ঘ ক্যোয়ারী যায়, InnoDB হ'ল ACID- কমপ্লায়েন্ট এবং মাল্টি ভার্সন কনকুরিঞ্জি নিয়ন্ত্রণ ব্যবহার করে খুব ভাল পরিচালনা করে । লেনদেনের ক্ষেত্রে বিচ্ছিন্নতার স্তর বহন করতে সক্ষম হওয়া উচিত (ডিফল্ট অনুসারে পুনরাবৃত্তযোগ্য পাঠগুলি) যা অন্যদের ডেটা অ্যাক্সেস করা থেকে বাধা দেয়।

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


11

আপনার কাছে একাধিক সমবর্তী ব্যবহারকারী বা প্রক্রিয়া, বা একাধিক থ্রেডযুক্ত ডাটাবেস অ্যাক্সেস সহ একক প্রক্রিয়া, থ্রেডিং সমর্থন করে এমন একটি ডেটাবেস থাকা সম্ভাব্য আকর্ষণীয় হয়ে উঠবে।

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

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

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


এইচ 2 সমস্ত অনুরোধগুলি ক্রমিকায়িত করে - বা কেবল ডিএমএল করে?
জ্যাক ডগলাস

8

আমি যা বলতে পারি তা থেকে "একক থ্রেডেড" এইচ 2 এর জন্য কিছুটা ভুল ধারণা omer মুল বক্তব্যটি হ'ল এটি সমস্ত লেনদেনকে সিরিয়াল করে তোলে (অর্থাত্ একবারে সেগুলি করে)।

আপনার অ্যাপ্লিকেশনটির জন্য এটি "" ঠিক আছে "কিনা তা নয়" এই প্রশ্নটি কতজন ব্যবহারকারী? " বা এমনকি "কতগুলি প্রক্রিয়া?", কিন্তু "আমার লেনদেনগুলি কত দিন সময় নিতে চলেছে?"

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

--EDIT

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


5

পোস্টগ্র্রেএসকিউএল সাইট থেকে বিট এবং টুকরা উদ্ধৃত করে ... দয়া করে নোট করুন যে আমি এই আর্গুমেন্টগুলির গুণাবলী সম্পর্কে একেবারেই ধারণা করি না - তারা কেবল কোনও মন্তব্যে ফিট করে না।

বিকাশকারী এফএকিউ ("কেন থ্রেড ব্যবহার করা হয় না ...") থেকে:

http://wiki.postgresql.org/wiki/Developer_FAQ#Why_don.27t_you_use_threads.2C_raw_devices.2C_async-I.2FO.2C_.3Cinsert_your_favorite_wizz-bang_feature_here.3E.3F

থ্রেডগুলি বর্তমানে ব্যাকএন্ডের জন্য একাধিক প্রক্রিয়ার পরিবর্তে ব্যবহৃত হয় না কারণ: (...)

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

টোডো তালিকা থেকে ("বৈশিষ্ট্যগুলি আমরা চাই না"):

http://wiki.postgresql.org/wiki/Todo#Features_We_Do_Not_Want

সমস্ত ব্যাককেন্ড একক প্রক্রিয়াতে থ্রেড হিসাবে চলমান (চাইনি)

এটি বর্তমান সেটআপ থেকে প্রাপ্ত প্রক্রিয়া সুরক্ষাটিকে সরিয়ে দেয়। থ্রেড ক্রিয়েশন সাধারণত আধুনিক সিস্টেমে প্রক্রিয়া তৈরির মতো একই ওভারহেড হয়, তাই খাঁটি থ্রেডযুক্ত মডেলটি ব্যবহার করা বুদ্ধিমানের মতো মনে হয় না এবং মাইএসকিউএল এবং ডিবি 2 প্রমাণ করেছে যে থ্রেডগুলি যতগুলি সমস্যা সমাধান করে ততই প্রবর্তন করে। (...)

সুতরাং, আবার ... আমি উপরের গুণাবলী সম্পর্কে একেবারে ধারণা নেই। কোনও মন্তব্যে ফিট করার জন্য এটি কেবল দীর্ঘই ছিল।


-3

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

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

এটি কি আপনার প্রশ্নের উত্তর দেয়?


7
মাল্টিথ্রেডেড ডাটাবেসগুলি একক কোর সিস্টেমেও উপকারী। এটি অন্য সমস্ত ডাটাবেস অ্যাক্সেস আটকাতে দীর্ঘমেয়াদী ক্যোয়ারিকে আটকায়, ততক্ষণে আপনি ডিস্ক বা নেটওয়ার্ক I / O তে বেশ কয়েকটি থ্রেড অপেক্ষা করতে পারেন, অন্য একটি থ্রেড সক্রিয়ভাবে প্রশ্নগুলি পার্স করছে, প্রিফেচড ডেটা প্রক্রিয়াকরণ করছে ইত্যাদি

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