बी-ट्री का उपयोग अक्सर हार्ड डिस्क पर डेटाबेस इंडेक्स के लिए किया जाता है, लेकिन इन-मेमोरी डेटा संरचना के रूप में भी उनके फायदे हैं, आधुनिक मेमोरी को कैश की कई परतों के साथ और आभासी मेमोरी के साथ दिया जाता है। भले ही वर्चुअल मेमोरी SSD पर हो, लेकिन यह नहीं बदलेगी।
मैं एक इन-मेमोरी B + -स्टाइल मल्टीवे ट्री लाइब्रेरी का उपयोग करता हूं जिसे मैंने C ++ में काफी लिखा है। इसके प्रदर्शन के फायदे हो सकते हैं - इसका कारण यह है कि मूल रूप से लिखा गया था कि कैश का बेहतर उपयोग करने का प्रयास करना है - लेकिन मुझे यह स्वीकार करना होगा कि वह अक्सर इस तरह से काम नहीं करता है। समस्या व्यापार-बंद है जिसका अर्थ है कि वस्तुओं को आवेषण और हटाने पर नोड्स के भीतर घूमना पड़ता है, जो कि बाइनरी पेड़ों के लिए नहीं होता है। इसके अलावा, निम्न-स्तरीय कोडिंग हैक में से कुछ मैंने इसे अनुकूलित करने के लिए इस्तेमाल किया - ठीक है, वे शायद अनुकूलक को भ्रमित करते हैं और हारते हैं, सच कहा गया है।
वैसे भी, यदि आपके डेटाबेस को एसएसडी पर संग्रहीत किया जाता है, तो यह अभी भी एक ब्लॉक-ओरिएंटेड स्टोरेज डिवाइस है, और बी-पेड़ और अन्य मल्टीवे पेड़ों का उपयोग करने के लिए अभी भी एक फायदा है।
लेकिन लगभग दस साल पहले, कैश-विस्मृत एल्गोरिदम और डेटा संरचनाओं का आविष्कार किया गया था। ये कैश आदि के आकार और संरचना से अनजान हैं - वे (asymptotically) किसी भी स्मृति उत्तराधिकार का सबसे अच्छा संभव उपयोग करते हैं। बी-पेड़ों को सबसे अच्छा उपयोग करने के लिए एक विशेष स्मृति उत्तराधिकार के लिए "ट्यून" होने की आवश्यकता है (हालांकि वे काफी भिन्नता के लिए काफी अच्छी तरह से काम करते हैं)।
कैश विस्मृत डेटा संरचनाओं को अक्सर जंगली में नहीं देखा जाता है, अगर बिल्कुल भी, लेकिन इस बार वे अच्छी तरह से सामान्य इन-मेमोरी बाइनरी पेड़ों को अप्रचलित कर सकते हैं। और वे हार्ड डिस्क और एसएसडी के लिए भी सार्थक साबित हो सकते हैं, क्योंकि उन्हें इस बात की परवाह नहीं है कि क्लस्टर-साइज़ या हार्ड-डिस्क कैश पेज का आकार क्या है।
कैश-विस्मृत डेटा संरचनाओं में वैन एमड बोस लेआउट बहुत महत्वपूर्ण है।
MIT OpenCoursware एल्गोरिदम पाठ्यक्रम में कैश विस्मृत डेटा संरचनाओं के कुछ कवरेज शामिल हैं।