Dynomite , inspiriert vom Dynamo-Whitepaper, ist eine dünne, verteilte Dynamo-Schicht für verschiedene Speicher-Engines und Protokolle. Derzeit sind dies Redis und Memcached. Dynomite unterstützt die Replikation mehrerer Rechenzentren und ist auf hohe Verfügbarkeit ausgelegt.
Das ultimative Ziel von Dynomite besteht darin, Hochverfügbarkeit und rechenzentrumsübergreifende Replikation auf Speicher-Engines implementieren zu können, die diese Funktionalität nicht von Natur aus bieten. Die Implementierung ist effizient, nicht komplex (wenige bewegliche Teile) und hochperformant.
Jeder Zweig mit der Nummer v0.5.9, v0.5.8 usw. ist stabil und kann sicher in der Produktion verwendet werden, sofern er nicht als Vorabversion gekennzeichnet ist. Der Entwicklungszweig ist der instabile Entwicklungszweig. Im Laufe der Zeit ist die Hauptniederlassung ins Hintertreffen geraten und wird nicht mehr gewartet. Wir werden es irgendwann löschen und möglicherweise neu erstellen, vielleicht auch nicht.
Bei Fragen oder Beiträgen lesen Sie bitte CONTRIBUTING.md.
So erstellen Sie Dynomite aus dem Quellcode mit aktivierten Debug-Protokollen und deaktivierten Assertionen :
$ git clone [email protected]:Netflix/dynomite.git
$ cd dynomite
$ autoreconf -fvi
$ ./configure --enable-debug=yes
$ make
$ src/dynomite -h
So erstellen Sie Dynomite im Debug-Modus :
$ git clone [email protected]:Netflix/dynomite.git
$ cd dynomite
$ autoreconf -fvi
$ CFLAGS="-ggdb3 -O0" ./configure --enable-debug=full
$ make
$ sudo make install
Usage: dynomite [-?hVdDt] [-v verbosity level] [-o output file]
[-c conf file] [-p pid file]
Options:
-h, --help : this help
-V, --version : show version and exit
-t, --test-conf : test configuration for syntax errors and exit
-g, --gossip : enable gossip (default: disabled)
-d, --daemonize : run as a daemon
-D, --describe-stats : print stats description and exit
-v, --verbosity=N : set logging level (default: 5, min: 0, max: 11)
-o, --output=S : set logging file (default: stderr)
-c, --conf-file=S : set configuration file (default: conf/dynomite.yml)
-p, --pid-file=S : set pid file (default: off)
-x, --admin-operation=N : set size of admin operation (default: 0)
Dynomite kann über eine YAML 1.1-Datei (YAML 1.1 ist nicht JSON-kompatibel) konfiguriert werden, die beim Prozessstart durch das Befehlszeilenargument -c oder --conf-file angegeben wird. Die Konfigurationsdateien analysieren und verstehen die folgenden Schlüssel:
datacenter
bedeutet, dass die gesamte Kommunikation zwischen Rechenzentren verschlüsselt ist, innerhalb eines Rechenzentrums jedoch nicht. rack
bedeutet, dass die gesamte Kommunikation zwischen Racks und Regionen verschlüsselt ist, die Kommunikation zwischen Knoten innerhalb desselben Racks jedoch nicht. all
bedeutet, dass die gesamte Kommunikation zwischen allen Knoten verschlüsselt ist. Und none
bedeutet, dass keine Kommunikation verschlüsselt ist.Zum Beispiel die Konfigurationsdatei in conf/dynomite.yml
Um schließlich das Schreiben syntaktisch korrekter Konfigurationsdateien zu vereinfachen, stellt Dynomite ein Befehlszeilenargument -t oder --test-conf bereit, mit dem die YAML-Konfigurationsdatei auf Syntaxfehler getestet werden kann.
Lizenziert unter der Apache-Lizenz, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0