Dynomite , inspiré du livre blanc Dynamo, est une fine couche dynamo distribuée pour différents moteurs et protocoles de stockage. Actuellement, ceux-ci incluent Redis et Memcached. Dynomite prend en charge la réplication multi-centres de données et est conçu pour une haute disponibilité.
L'objectif ultime de Dynomite est de pouvoir mettre en œuvre la haute disponibilité et la réplication entre centres de données sur des moteurs de stockage qui ne fournissent pas intrinsèquement cette fonctionnalité. La mise en œuvre est efficace, peu complexe (peu de pièces mobiles) et très performante.
Chaque branche numérotée comme v0.5.9, v0.5.8, etc. est stable et sûre à utiliser en production à moins d'être marquée comme version préliminaire. La branche dev est la branche de développement instable. Au fil du temps, la branche principale a pris du retard et n'est plus maintenue. Nous finirons par le supprimer et pourrons ou non le recréer.
Pour des questions ou des contributions, veuillez envisager de lire CONTRIBUTING.md.
Pour construire Dynomite à partir des sources avec les journaux de débogage activés et les assertions désactivées :
$ git clone [email protected]:Netflix/dynomite.git
$ cd dynomite
$ autoreconf -fvi
$ ./configure --enable-debug=yes
$ make
$ src/dynomite -h
Pour construire Dynomite en mode débogage :
$ 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 peut être configuré via un fichier YAML 1.1 (YAML 1.1 n'est pas compatible JSON) spécifié par l'argument de ligne de commande -c ou --conf-file au démarrage du processus. Les fichiers de configuration analysent et comprennent les clés suivantes :
datacenter
signifie que toutes les communications entre les centres de données sont cryptées, mais ce n'est pas le cas au sein d'un centre de données. rack
signifie que toutes les communications entre les racks et les régions sont cryptées, mais que la communication entre les nœuds du même rack n'est pas cryptée. all
signifie que toutes les communications entre tous les nœuds sont cryptées. Et none
signifie qu’aucune communication n’est cryptée.Par exemple, le fichier de configuration dans conf/dynomite.yml
Enfin, pour faciliter l'écriture de fichiers de configuration syntaxiquement corrects, dynomite fournit un argument de ligne de commande -t ou --test-conf qui peut être utilisé pour tester le fichier de configuration YAML pour toute erreur de syntaxe.
Sous licence Apache, version 2.0 : http://www.apache.org/licenses/LICENSE-2.0