MemoryMappedFile و b-tree لتطبيق ذاكرة التخزين المؤقت

هذه مجرد فكرة ، ليس لدي أي رمز ، أحتاج إلى بعض النصائح حول التصميم. أود أن تطبيق ذاكرة التخزين المؤقت (غير موزعة في المقام الأول) باستخدام MemoryMappedFile في ج #. أعتقد أنه سيكون من الجيد وجود شجرة b كهيكل غير مقيد ، ولكن هذا الأمر قابل للنقاش أيضًا. لذلك فإن السؤال هو:

  • هل تعتبر B-tree استراتيجية جيدة للاستخدام مع عناصر البحث السريع عندما يكون دعم إلغاء الحماية عبارة عن ملفات تم تعيينها للذاكرة؟
  • ما المعلومة والحيلة التي نستخدمها مع ملفات الذاكرة المعينة؟ كم يمكن أن يكون العرض كبيرًا ، ما هي العوائق عندما تكون صغيرة جدًا أو كبيرة جدًا؟
  • نظر متعدد الثقافات: كيف نتعامل مع ملف الذاكرة المعينة والتزامن؟ من المفترض أن يتم اختراق ذاكرة التخزين المؤقت من قبل العملاء ، ما هي الإستراتيجية الأفضل لامتلاك شيء من الأداء؟

بما أن @ خطأ الخادم الداخلي سألني ، أدمج السؤال مع هذا: المفتاح سيكون عبارة عن سلسلة ، حوالي 64 حرفًا كحد أقصى. قد تكون البيانات بايت [] حوالي 1024 بايت ولكن مع الأخذ في الاعتبار متوسط ​​128 بايت أو أفضل: ما أريد تخزينه مؤقتًا هي كيانات OR/M ، دعنا نأخذ بعين الاعتبار كم من الوقت هو كيان متسلسل في بايت مع شيء مثل مُسلسل BSOn .

1
سيكون مفتاح سلسلة ، والنظر في شيء حول 64 حرفا. ستكون البيانات عبارة عن صفيف من البايتات: كيان متسلسل ، شيء من 4 إلى 1 كيلو بايت على الأرجح.
وأضاف المؤلف Felice Pollano, مصدر
sehe أنت على حق ، وأنا أعرف mongodb ، ولكن أريد شيء يمكن تضمينه في مشروعي
وأضاف المؤلف Felice Pollano, مصدر
لماذا لفة الخاصة بك؟ couchdb ، memcached ، mongodb؛ على ما يبدو mongodb هو سريع
وأضاف المؤلف sehe, مصدر
ما هو نوع (أنواع) البيانات الذي تقوم بتخزينه مؤقتًا؟ ما هو نوع المفتاح؟ ما مقدار البيانات التي نتحدث عنها؟
وأضاف المؤلف 500 - Internal Server Error, مصدر

1 إجابة

  • B-Tree جيد (مع ملفات الذاكرة المعينة) ، ولكن إذا كان الملف لا يتم الاحتفاظ به دائمًا في الذاكرة المقيمة ، فإن B + Tree أفضل بكثير. راجع أيضًا .
  • الخدعة التي تحتوي على ملفات تم تعيينها للذاكرة هي استخدام بنية 64 بت بحيث يمكنك تعيين الملف بأكمله في الذاكرة ، وإلا فسيتعين عليك فقط تعيين الأجزاء و للقراءة المخبأة قد يكون أسرع من mmap s.
  • جرب CAS (المقارنة والمبادلة) على الذاكرة المشتركة. راجع أيضًا .
1
وأضاف
شكرًا جزيلاً ، مراجع جيدة أيضًا.
وأضاف المؤلف Felice Pollano, مصدر
ربما هناك شيء C# -pish لك في nosql-database.org . أو بعض المشاريع C قد تكون بمثابة مرجع.
وأضاف المؤلف ArtemGr, مصدر