Wie groß kann Erlang DETS sein und was ist, wenn es zu klein, zu tun?
Frage
Alles was ich brauche ist eine große persistent Lookup-Tabelle in Erlang und dets scheint, wie gerade die Sache, obwohl ich eine definative Antwort brauchen:
- , wie groß die Gesamtgröße der Binärdateien in der Tabelle sein.
- , wie groß jeder Eintrag kann sein
- was zu tun ist, wenn die Antwort auf die erste Frage ist weniger als 100 g
Lösung
Ein offensichtlicher Ansatz, wenn es gedacht ist, ist zu Hash dets Einträge über mehrere dets Dateien.
Eine lineare Hash sollte es dynamisch Erweiterbare machen, durch die Spaltung von Eimern in neu erstellte Dateien dets wenn eine Datei eine obere Schwelle erreicht.
Es gibt auch eine Reihe von Port-Treiber, mit denen Sie Sleepycat / berkely db oder Tokyo tyrrant verwenden. Diese Datenbanken haben Dateigrenzen, die viel höher als 2 GB sind.
Andere Tipps
Dies ist eine Art einer RTFM Frage. Wie direkt zitiert im zweiten Absatz des DETS Handbuch :
Die Größe der DETS Dateien können nicht 2 GB nicht überschreiten. Wenn größere Tabellen benötigt werden, kann Mnesia der Tabellenfragmentierung verwendet werden.
mit Mnesia fragmentiert dic_copies können diese Grenzen überwinden, vorausgesetzt, Sie wissen, wie viele Fragmente Kiste vor der Zeit
http://www.trapexit.org/Mnesia_Table_Fragmentation