Б і адлюстраванне файла ў памяць дрэва для прымянення кэша

Гэта проста ідэя, я яшчэ не маю якой-небудзь код, мне трэба некаторыя канструктыўныя парады. Я б рэалізаваць кэш (не распаўсюджваецца ў першую чаргу), выкарыстоўваючы ў адлюстраванне файла ў памяць C #. Я думаю, што было б добра мець б-дрэва як структура undelying, але гэта спрэчна, а таксама. Такім чынам, пытанне, з'яўляюцца:

  • Ці з'яўляецца B-дрэва добрая стратэгія, каб выкарыстоўваць для хуткага пошуку элементаў, калі падтрымка undelaying гэта памяць адлюстравання файлаў?
  • Што наканечнік і хітрасць ў нас з памяццю адлюстровываюцца файлы? Наколькі ўяўленне можа быць вялікім, чым недахопы, калі ён занадта малы ці занадта вялікі?
  • Multithread меркаванне: як мы маем справу з памяццю адлюстроўваецца файлам і паралелізмам? Кэш павінны быць высокаачышчаных кліентамі падводных камянёў і плынь, якая стратэгія лепш мець нешта прадукцыйнае?

Як спытаў Памылка @Internal сервера, я інтэграваць пытанне з гэтым: Ключ будзе радок, 64 сімвалаў макс Len. Гэтыя дадзеныя былі б байт [] каля 1024 байтам, але ўлічыце, у сярэднім па 128 байт, або лепш: тое, што я хачу, каб кэш з'яўляюцца або юрыдычным асобам/M, давайце разгледзім, як доўга сериализованная аб'ект у байтах з чымсьці накшталт BSON сериализатором ,

1
ключ будзе радок, разгледзець нешта каля 64 знакаў. Дадзеныя Vould быць масівам байтаў: сериализованная сутнасць, нешта ад 4 да 1k байт магчыма.
дададзена аўтар Felice Pollano, крыніца
@sehe вы маеце рацыю, я ведаю, MongoDB, але я хачу нешта ўбудавальнае ў маім праекце
дададзена аўтар Felice Pollano, крыніца
чаму згарнуць свой уласны? CouchDB, Memcached, MongoDB; па-відаць, MongoDB з'яўляецца <�я> хутка
дададзена аўтар sehe, крыніца
Які тып дадзеных (ы) вы кэшаваць? Які ключ? Колькі дадзеных мы гаворым?
дададзена аўтар 500 - Internal Server Error, крыніца

1 адказы

  • B-Tree добра (з памяццю адлюстраваных файлаў), але калі файл не заўсёды цалкам захоўваецца ў рэзідэнтнай памяці, то старонка выраўнаваны B + дрэва нашмат лепш. Глядзіце таксама .
  • Трук з адлюстраваннем на памяць файлаў выкарыстоўваць 64-разрадную архітэктуру, так што вы можаце адлюстраваць увесь файл у памяці, у адваротным выпадку вам прыйдзецца толькі карту часткі і кэшаваныя прачытаць s можа быць хутчэй, чым ММАП s.
  • <�Літый> Спроба CAS (параўнанне з абменам) па сумесна выкарыстоўванай памяці. Глядзіце таксама .
1
дададзена
Вялікі дзякуй, добрыя спасылкі таксама.
дададзена аўтар Felice Pollano, крыніца
Можа быць, ёсць нешта C# -pish для вас на nosql-database.org . Або некаторы C праект можа служыць у якасці спасылкі.
дададзена аўтар ArtemGr, крыніца