संसाधन साझाकरण अब तक RW लॉक्स का उपयोग करके किया जाता था। उच्च लोड के तहत, लॉक्स का उपयोग सूचकांकों में परिवर्तन करते समय समस्याओं में आ सकता है। इन समस्याओं को दूर करने के लिए, हमें थ्रेड्स और सूचकांकों के बीच संबंध पर पुनर्विचार करना पड़ा।
सूचकांक बड़े या बहुत बड़े हो सकते हैं और वे कार्यकर्ताओं के बीच साझा किए जाते हैं। मल्टी-कोर सीपीयू पर आप एक साथ कई क्वेरी चला सकते हैं, और वे कोर पर वितरित होंगे, एक ही सूचकांक का उपयोग करते हुए। यह सरल और स्पष्ट है। हालांकि, कभी-कभी आपको सूचकांकों को अपडेट करने की आवश्यकता होती है। पुराने फोर्क कार्यकर्ताओं के साथ निर्बाध रोटेशन काफी अच्छा काम करता था: हम बस नए सूचकांक फ़ाइलों को लोड करते हैं, पुरानी फ़ाइलों को सर्व करने वाले कार्यकर्ताओं को छोड़ते हुए। और एक क्षण में नई क्वेरी पहले से ही नए लोड किए गए सूचकांक को साझा करने वाले फोर्क पर जाती है। इसलिए, सर्व में कोई देरी नहीं: आप बस पुराने सूचकांक से नए सूचकांक में निर्बाध रूप से कदम उठाते हैं। पुराने संस्करण का उपयोग करने वाले कार्यकर्ता समाप्त (या क्रैश) हो जाएंगे, और इस प्रकार, अंततः पिछला सूचकांक मुक्त हो जाएगा।
थ्रेड्स कार्यकर्ताओं के मामले में एक सरल RW-लॉक्स - ‘साझा-विशेष लॉक्स’ - तंत्र का उपयोग किया जाता था, जहां कई साझा कार्यकर्ता (पाठक) एक संसाधन तक एक साथ पहुंच सकते हैं, लेकिन एक विशेष कार्यकर्ता (लेखक) इसे संशोधित कर सकता है। इसलिए सूचकांक हमेशा या तो क्वेरी के बीच ‘साझा’ किए जाते थे, या रोटेशन द्वारा ‘लॉक’ किए जाते थे। वे शुरुआत में लोड किए जाते थे और अंत में मुक्त किए जाते थे। जब एक रोटेशन किया जाता था तो एक थ्रेड नए सूचकांक को लोड करता था, लेकिन उसे सक्रिय सूचकांक विवरण पर विशेष पहुंच की आवश्यकता होती थी। हालांकि, क्वेरी कार्यकर्ताओं के पास साझा पहुंच होती है और कोई उन्हें नए कार्यों को प्राप्त करने से नहीं रोकता। इसका मतलब है कि भारी लोड पर आप ‘निर्बाध’ रोटेशन नहीं कर सकते क्योंकि इसके अंतिम चरण में - पुराने सूचकांक को नए में परमाणु रूप से बदलना।
2.7 में परिचय किए गए नए मॉडल में, सूचकांक अब थ्रेड्स के बीच स्वतंत्र रूप से रहते हैं, पुराने ‘फोर्क’ मामले के समान, क्योंकि वे अब न तो ‘साझा’ हैं और न ही ‘लॉक’ किए गए हैं, बल्कि बस अपरिवर्तनीय हैं। इससे चलना सरल हो जाता है: कार्यकर्ता सूचकांक को ‘लॉक’ या ‘साझा’ करने की चिंता नहीं करता, बस उसका उपयोग करता है। जब आपको रोटेशन (नया सूचकांक लोड करना) करने की आवश्यकता होती है, तो डेमॉन इसे बिना किसी चल रही क्वेरी (और उनके थ्रेड्स) की चिंता किए बस कर देता है। अंततः रोटेशन केवल सक्रिय सूचकांक के पॉइंटर को नए (लोड किए गए) पर स्विच करता है, और फिर सब कुछ फोर्क की तरह काम करता है: पुरानी क्वेरी अभी भी पिछला सूचकांक उपयोग करती हैं, नई नए लोड किए गए पर निर्देशित होती हैं। एकमात्र स्थिति जहां अभी भी एक विशेष लॉक का उपयोग किया जाता है वह है अपडेट करते समय।
नए मॉडल का एक अन्य लाभ यह है कि हम कॉन्फ़िगरेशन पुनः लोड करके किसी सूचकांक के प्रकार को तुरंत बदल सकते हैं। पहले, एक सूचकांक के प्रकार को बदलना हमेशा संभव नहीं होता था कॉन्फ़िगरेशन फ़ाइल में परिवर्तन करके और बस एक पुनः लोड (HUP सिग्नल द्वारा) करके, उदाहरण के लिए ‘सादा’ सूचकांक को ‘वितरित’ या ‘वितरित’ को ‘टेम्पलेट’ में बदलना। अब जब आप नया कॉन्फ़िग पुनः लोड करते हैं, जहां पुराने सूचकांक से सब कुछ उसका नाम है - डेमॉन पहले नए को पार्स करेगा। फिर, यदि इसका तुरंत उपयोग किया जा सकता है (जो टेम्पलेट और वितरित के लिए मामला है) - तो वह उन्हें निर्बाध रूप से बदल देगा। उन मामलों में जहां नए सूचकांक ‘भारी’ हैं (यानी RAM में पहले से कैश करने की आवश्यकता है और इसमें मिनट लग सकते हैं) - रोटेशन की प्रक्रिया को उनके लोड होने तक स्थगित कर दिया जाता है। «स्थगित» का अर्थ है कि कॉलर ‘ठीक’ रिटर्न देखता है, ‘(सब रोटेट हो गया)’. लेकिन वास्तविक कार्यकर्ता तब तक पुराने सूचकांकों पर सभी नई क्वेरी जारी करेंगे जब तक नए को अंततः लोड और सक्रिय नहीं किया जाता।