Standardmäßig geht alles nach Mnesia und die meisten Sachen werden repliziert. Sie können auch wählen, ob Mnesien-Tabellen auf Disk oder Speicher gehen. Im Grunde können Sie den Speicherort der mnesia-Tabelle nach Belieben neu konfigurieren, aber normalerweise werden Tabellen im Speicher repliziert, um sie in der Nähe zu halten.
Es stimmt auch, dass das Clustering von Ejabberd über Spanning Nodes über den Mnesia-Cluster erfolgt, also ist es wahrscheinlich keine Mühe wert, das zu beseitigen.
Die meisten Mods (die xeps implementieren) benutzen mnesia, aber sie haben mysql-Äquivalente. Es ist noch breiter - sie haben SQL-Äquivalente, die mit "_odbc" suffigiert sind. Beispiel: mod_roster und mod_roster_odbc.
Zusammenfassend können Sie mit leichtem Mnesia fertig werden, um Konfigurationen und einige In-Memory-Sachen zu handhaben und zentrale mysql für schwere Sachen zu verwenden. Der Speicherort von mysql ist konfigurierbar in ejabberd config.
Ich ziele darauf ab, die einfachste Einrichtung zu erstellen, die leicht zu jeder benötigten Größe (10M * n aktive ..) durch Hinzufügen weiterer Knoten wachsen kann. 3 Dinge kommen mir in den Sinn. (A). Mit der Limitierung der Tabellengröße auf Minesia Local Content Tables anstatt der Replikation klingt auf den ersten Blick mit einer Mnusia-Only-Konfiguration besser. (B). Wenn man MySQL nichts anvertraut und sich feierlich auf ein Mnesien-Setup verlässt, wäre das am einfachsten. (C). Wird für eine sehr große Bereitstellung eine zentralisierte MySQL-DB benötigt oder kann sie mnesien schneiden? –
Die Mehrheit der eJabberd-Bereitstellungen, die ich traf, hat gemischte Setups und sie verwenden zentralisiertes mysql (es ist leicht zu replizieren, leicht zugänglich für andere Schichten des Systems). Was meinst du mit mnesia Tischgrößenbeschränkung? In Speichertabellen gibt es keine Begrenzung und in den meisten Fällen benötigen Sie aus Gründen der Leistung den Speicherort. – user425720