سؤال

لقد حصلت على خادم Ejabberd مع عدد كبير من الوحدات المخصصة التي تعمل. لدي العديد من طاولات Mnesia وأعلم أن هذه يمكن نسخها بسهولة بين العقد دون أي تغيير في الكود على الإطلاق. كنت أتساءل عما إذا كانت هناك طريقة مماثلة مع طاولات ETS؟

من الناحية المثالية ، سيكون من الجيد أن تكون قادرًا على تشغيل العديد من الآلات التي تعمل بنفس بيانات Mnesia و ETS بالضبط ، دون الحاجة إلى تحويل طاولات ETS الخاصة بي إلى جداول Mnesia. (وبالتالي إعادة كتابة كمية جيدة من التعليمات البرمجية.)

على الرغم من أنني كنت أقوم بعمل RPC: اتصل على جداول ETS لكل عقدة ، لكنني لم أكن متأكدًا من التأثير الذي سيحدثه هذا على الأداء.

إذا كان لدى أي شخص أي إجابات ، فيرجى إبلاغي بذلك.

هل كانت مفيدة؟

المحلول

لا ، لا يمكن تكرار محتويات جدول ETS لك.

النسخ المتماثل (وسلامة المعاملات) هو الميزة التي يقدمها تطبيق قاعدة بيانات MNESIA ، ويستخدم تطبيقه ETS لجداول RAM_ONLY.

نصائح أخرى

يمكنك RPC: اتصل على جداول ETS على العقدة البعيدة.

لكن الهدف الكامل من MNESIA هو إصلاح نوع المشكلة التي تواجهها: تكرار

يعد تحويل الكود إلى Mnesia استثمارًا جيدًا للمستقبل. وعلى الرغم من المخاطر ، يمكنك دائمًا استخدامها mnesia:ets() لتقليل تغيير التعليمات البرمجية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top