क्या SSD के आगमन का डेटाबेस अनुकूलन के लिए कोई निहितार्थ है?


26

आज मैं SQL सर्वर अनुकूलन पर एक पुस्तक के माध्यम से ब्राउज़ कर रहा था और ऐसा लग रहा था कि विचारों की एक निश्चित मात्रा भंडारण के एक रैखिक मॉडल पर आधारित थी। जैसा कि SSDs के पास एक पूरी तरह से अलग भंडारण मॉडल है, क्या वे किसी भी तरह से खेल को बदल देते हैं कि डेटाबेस ट्यूनिंग या अनुकूलन के बारे में कोई कैसे सोचता है?


SSD के साथ ऐसा लगता है कि आपको कच्चे प्रदर्शन को बढ़ाने के लिए पहनने को कम करने के लिए अधिक अनुकूलन करने की आवश्यकता है ...
ट्रेज़ॉयड

दिलचस्प विचार, और कुछ अच्छे जवाब, +1
ड्रयू

जवाबों:


9

हां, वे खेल को बदल देते हैं। कताई चुंबकीय डिस्क की विशेषताओं के आधार पर अनुकूलन (जैसे समय की तलाश और घूर्णी देरी ) एसएसडी ड्राइव पर प्रासंगिक नहीं हो सकते हैं। FITME 2010 में प्रकाशित एक हालिया पेपर * SSDs की विशेषताओं के आधार पर एक नया क्वेरी ऑप्टिमाइज़ेशन एल्गोरिथम प्रस्तुत करता है।

हालाँकि, ये परिवर्तन संभवतः निम्न स्तर के परिवर्तन होंगे (उदाहरण के लिए, संग्रहण और पुनर्प्राप्ति एल्गोरिदम के लिए), जिसे डेटाबेस डेवलपर्स द्वारा प्रभावी रूप से लागू किया जा सकता है। वे शायद डेटाबेस उपयोगकर्ताओं को इतना प्रभावित नहीं करेंगे।

* IEEE Xplore - फ्लैश आधारित डेटाबेस के लिए एक कॉलम-ओरिएंटेड स्टोरेज क्वेरी ऑप्टिमाइज़ेशन


3
हां - लेकिन अधिकांश डेटाबेस ऑप्टिमाइज़ेशन पहले ही चले गए जब हमने सब कुछ राम में डाल दिया। एक बार जब आरजीएम का 64 जीबी एक एसक्यूएल विशेषज्ञ चीजों की तुलना में सस्ता हो गया, तो पहले से ही निश्चित नहीं है कि एसएसडी कितना जोड़ता है
मार्टिन बेकेट

3
@ मर्टिन सहमत हुए। दूसरी ओर, हाल ही में ऊर्ध्वाधर (राक्षसी $ 500k DB बक्से) के बजाय क्षैतिज (बादल, आदि) की ओर एक निश्चित मोड़ आया है। वितरित सिस्टम इस प्रकार के स्थानीय रैखिक अनुकूलन से वैश्विक गैर-रैखिक प्रदर्शन सुधार प्राप्त कर सकते हैं। यह अक्सर एक बेहतर लागत मॉडल भी हो सकता है।
रीन हेनरिच

8

प्रदर्शन

एसएसडी प्रदर्शन कर रहे हैं: उन्हें तलाश करने की ज़रूरत नहीं है, और थ्रूपुट धधक रहा है। डिस्क के साथ काम करने वाले अधिकांश सॉफ्टवेयर, वे जिस सीमा तक अनुकूलित होते हैं, सिंक्रोनस सॉक्स की संख्या को कम करने के लिए अनुकूलित होते हैं। ऐसा करने में, वे मेजबान की जटिलताओं का परिचय देते हैं। तेजी के आगमन के साथ, लगातार स्टोरेज करने की तलाश में, नए डेटा स्टोरेज सिस्टम को अब ऐसी जटिलताओं की आवश्यकता नहीं होगी।

सहनशीलता

SSDs में वर्तमान में उच्च विफलता दर है। आपका SSD फेल हो जाएगा। आपके एसएसडी चुंबकीय डिस्क की तुलना में बहुत अधिक दर पर विफल होंगे। आपको इसके चारों ओर प्रतिकृति, बैकअप आदि के साथ काम करना होगा। यह अपनी जटिलताओं के सेट का परिचय देता है।


1
उम्म क्या? SSDs में उच्च विफलता दर है? SSD के लिए वार्षिक विफलता दर HDD की तुलना में काफी कम है। अब तक कुछ लोग एसएसडी पर उपलब्ध लेखन को समाप्त करने में कामयाब रहे हैं, विशेष रूप से अधिक उन्नत नियंत्रकों (उदाहरण के लिए एलएसआई के सैंडफ़ोर्स) के साथ।
माइकेआ चीरा

5

भंडारण की कीमत में समग्र कमी का अधिक गहरा प्रभाव पड़ता है।

एसक्यूएल होने से पहले, हमारे पास सुपर-अनुकूलित पदानुक्रमित और नेटवर्क डेटाबेस थे जहां डीबीए को डेटा के ट्रैक और सिलेंडर प्लेसमेंट की सावधानीपूर्वक योजना तैयार करनी थी।

SQL डेटाबेस बहुत कम कुशल हैं। लेकिन अब यह डिस्क सस्ती, विशाल और तेज है, हम मुश्किल से देखभाल करते हैं।

NoSQL ("दस्तावेज़") डेटाबेस SQL ​​की तुलना में कुछ हद तक कम कुशल हो सकते हैं क्योंकि SQL तार्किक स्कीमा और फ़ाइलों या टेबलस्पेस या जो कुछ भी अंतर्निहित भौतिक स्कीमा के बीच तार्किक-से-भौतिक मैपिंग की समान क्षमता नहीं है। और हम मुश्किल से देखभाल करते हैं।

SSD के प्रदर्शन में सुधार करने की संभावना है कि NoSQL डेटाबेस के उपयोग से होने वाले परिवर्तनों में हम वास्तुविदों के समग्र रूप से खो जाते हैं।


2

SSDs के लिए कुछ भी अनुकूलन के साथ मुख्य मुद्दा यह है कि वे डेटा कैसे लिखते हैं। एक पारंपरिक हार्ड ड्राइव आम तौर पर लगभग 512 बाइट्स के छोटे क्षेत्रों में डेटा संग्रहीत करता है और वास्तव में सीधे उस स्तर पर या उससे नीचे के क्षेत्रों में हेरफेर कर सकता है।

SSD को लिखने के संबंध में कुछ कमियां हैं:

  • एक न्यूनतम ब्लॉक का आकार लगभग 4-8KB होता है।
  • राइट्स आमतौर पर 256KB के पूर्ण पृष्ठ के आधार पर किया जा सकता है।
  • केवल खाली ब्लॉकों को लिखा जा सकता है।

एक विशिष्ट दुःस्वप्न परिदृश्य, जिसे राइट एम्प्लीफिकेशन कहा जाता है , वह तब होता है जब आप डिस्क पर एक स्थान पर एक बाइट लिखना चाहते हैं जिसमें पहले से ही कुछ ब्लॉक होते हैं। वहां लिखने के लिए, आपको पहले पूरे 256KB पेज को मेमोरी में कॉपी करना होगा, पूरे ब्लॉक को मिटाना होगा, पेज में सिंगल बाइट को बदलना होगा, फिर पूरे संशोधित 256KB पेज को वापस लिखना होगा। तो एक भी बाइट लिखने के लिए, "ट्रैफ़िक" का लगभग आधा मेगाबाइट था!

SSD, नियंत्रक और यहां तक ​​कि ऑपरेटिंग सिस्टम स्तर पर लागू की गई इस समस्या के लिए बहुत सारे अनुकूलन हैं, लेकिन निस्संदेह DBMS इन आशाओं को उनके विशिष्ट कामकाज को सिलाई करके लाभान्वित कर सकते हैं।

हालांकि यह कुछ डेटाबेस उपयोगकर्ताओं (जैसा कि उनके आवेदन में एक डेटाबेस का उपयोग करके) के बारे में सोचने की जरूरत नहीं है, क्योंकि यह डीबीएमएस स्तर पर डिजाइन / कार्यान्वयन निर्णयों पर अत्यधिक निर्भर होगा।


2

सर्वरफॉल्ट ब्लॉग से मैं जो भी इकट्ठा करता हूं , डेटाबेस सर्वर में लगभग हार्डवेयर होना चाहिए। स्टैक एक्सचेंज साइटों का डेटाबेस सर्वर एसएसडी का चल रहा है (देखें http://blog.serverfault.com/post/our-storage-decision/ ) और मुझे लगता है कि क्वेरी ऑप्टिमाइज़ेशन की अभी भी बहुत आवश्यकता है। CPU और मेमोरी डेटाबेस प्रश्नों के साथ-साथ IO से प्रभावित होते हैं

हालाँकि, डेटाबेस प्रदर्शन IO पर बहुत हद तक निर्भर करता है, इसलिए SSD की मदद ज़रूर होगी।


1

हां, उन कारणों के लिए जो सभी ने बताए हैं।

मैं एक पॉडकास्ट सुन रहा था कि आरडीबीएमएस जैसे ओरेकल, एसक्यूएल सर्वर आदि के बड़े हिस्से "ऑप्शन आउट" होने लगेंगे, अगर वे ठीक से काम कर सकें। पता लगाएँ कि क्या इसकी SSD ड्राइव है और तदनुसार अनुकूलित करें।

डेटा के कैशिंग और लेखन में बहुत सारे अतिरिक्त कोड का निर्माण किया गया है जो अब और आवश्यक नहीं है।

इससे भी दिलचस्प बात यह है कि RAMSAN और इसके वेरिएंट हैं। मूल रूप से एक हार्ड डिस्क ड्राइव है जिसे रैम चिप से बनाया गया है, जो कि एक्स घंटे यूपीएस और बैकग्राउंड राइट टू एचडीडी स्टोरेज के साथ निर्मित है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.