Keshni saqlash uchun MemoryMappedFile va b-daraxti

Bu faqat bitta g'oya, menda hali biror kod mavjud emas, menga dizayn bo'yicha maslahat kerak. C# ichida MemoryMappedFile yordamida keshni (birinchi marta taqsimlanmagan) amalga oshiraman. O'ylaymanki, b-daraxtni chinakam bir tuzilishga ega bo'lish yaxshi bo'lar edi, lekin bu ham munozarali. Shunday qilib, savol:

1
kalit so'z bo'lib, 64 ta belgi haqida o'ylashadi. Ma'lumot baytlarning qatori bo'lishi mumkin: seriyali ob'ekt, ehtimol 4 dan 1k baytgacha bo'lgan narsa.
qo'shib qo'ydi muallif Felice Pollano, manba
@biz haqing, men mongodbni bilaman, lekin loyihamga kiradigan narsalarni xohlayman
qo'shib qo'ydi muallif Felice Pollano, manba
Nima uchun o'zingizni aylantirasiz? couchdb, memcached, mongodb; ko'rinishda mongodb tez
qo'shib qo'ydi muallif sehe, manba
Keshlash qilingan ma'lumotlar turi (lar) nima? Kalit qanday turdagi? Qancha ma'lumotlar haqida gapiramiz?
qo'shib qo'ydi muallif 500 - Internal Server Error, manba

1 javoblar

  • B-daraxti yaxshi (xotira bilan bog'langan fayllar bilan) yaxshi, lekin agar fayl doimo butunlay yashirin xotirada saqlanmasa, sahifa bargli B + daraxti juda yaxshi. Shuningdek, qarang.
  • Xotira kartasiga ega fayllar 64 gigabaytli arxitekturani ishlatishdir, shunda butun faylni xotiraga ajratishingiz mumkin, aks holda siz faqatgina qismlari va keshlangan o'qish mmap dan ko'ra tezroq bo'lishi mumkin.
  • Umumiy xotiradan CAS (taqqoslash va almashtirish) ni harakat qilib ko'ring. Shuningdek, qarang.
1
qo'shib qo'ydi
Juda ko'p rahmat, yaxshi murojaatlar ham.
qo'shib qo'ydi muallif Felice Pollano, manba
Ehtimol, siz uchun nosql-database.org saytida sizning C# -pish mavjud. Yoki Ba'zi C loyihasi mos yozuvlar bo'lishi mumkin.
qo'shib qo'ydi muallif ArtemGr, manba