sql server - Which operating systems, and how, can pin pages in a database buffer pool? -


अधिकांश रिलेशनल डेटाबेस निर्माण पाठ्यपुस्तकों को एक पृष्ठ पिन करने में सक्षम होने की अवधारणा के बारे में बात करते हैं, यानी ऑपरेटिंग सिस्टम को इसे गमागमन से रोकना स्मृति का अवधारणा यह है कि डेटाबेस सॉफ्टवेयर इसका स्वयं का बफर प्रतिस्थापन एल्गोरिथ्म का उपयोग कर सकता है, जो कि ओएस वर्चुअल मेमोरी पॉलिसी के मुकाबले किसी भी बेहतर फिट हो सकता है।

यह स्पष्ट नहीं है कि सामान्य डेस्कटॉप ऑपरेटिंग सिस्टम वास्तव में प्रदान करते हैं पृष्ठों को पिन करने की क्षमता के साथ प्रोग्रामर उदाहरण के लिए, ओएस एक्स पर सबसे अच्छा मैं ढूंढ सकता हूं, वायर्ड पेजों को संदर्भित करता है, लेकिन ये सुपरयुजर द्वारा केवल प्रयोग करने योग्य लगते हैं।

क्या पेजों को लगाए जाने की अवधारणा है, और उचित बफर प्रतिस्थापन रणनीतियों को परिभाषित करना केवल सैद्धांतिक ब्याज की ओएस का स्थान ले लेते हैं, और असली रिलेशनल डेटाबेस सिस्टम द्वारा वास्तव में लागू नहीं होते हैं? या ऐसा मामला है कि विशिष्ट डेस्कटॉप ओएस (लिनक्स, विंडोज, ओएस एक्स) में पिनिंग के लिए हुक शामिल हैं, और विशिष्ट रिलेशनल डीबी सॉफ्टवेयर (ओरेकल, एसक्यूएल सर्वर, पोस्टग्रेएसक्यूएल, मायएसक्यूएल, आदि) उनका उपयोग करता है? < PostgreSQL में, डेटाबेस सर्वर फाइल (या ओएस से, वास्तव में) से एक साझा स्मृति सेगमेंट में प्रतियां कॉपी करता है पोस्टग्रेएसक्यूएल नियंत्रण ओएस नहीं जानता कि मैपिंग फ़ाइल सिस्टम ब्लॉक और साझा स्मृति ब्लॉकों के बीच क्या है, इसलिए ओएस उन पृष्ठों को अपनी डिस्क स्थान पर वापस नहीं लिख सकता, भले ही वह चाहें, जब तक कि PostgreSQL इसे ऐसा करने के लिए नहीं कहता एक तलाश और लिखना जारी कर रहा है।

ओएस साझा स्मृति के कुछ भागों को एक स्वैप विभाजन (उदाहरण के लिए, यदि यह गंभीर स्मृति तनाव के तहत), लेकिन यह उन्हें डिस्क पर अपने मूल स्थान पर वापस नहीं लिख सकता क्योंकि यह नहीं जानता कि यह स्थान क्या है।

तरीके हैं ओएस को बताने के लिए स्मृति के कुछ हिस्सों को बाहर करने के लिए नहीं, जैसे कि shmctl (shmid, SHM_LOCK, NULL) । लेकिन इन्हें ज्यादातर सुरक्षा उद्देश्यों के लिए किया जाता है, न कि निष्पादन प्रयोजनों के लिए उदाहरण के लिए, आप इसे बहुत ही संवेदनशील जानकारी (जैसे कि निजी कुंजी की डिक्रिप्टेड प्रतिलिपि) को रोकने के लिए इस्तेमाल करते हैं, जो गलती से स्वैप विभाजन को लिखी जा रही है, जिससे यह बुरे लोगों द्वारा पुनर्प्राप्त हो सकता है।

Comments

Popular posts from this blog

java - ImportError: No module named py4j.java_gateway -

python - Receiving "KeyError" after decoding json result from url -

.net - Creating a new Queue Manager and Queue in Websphere MQ (using C#) -