Dynomite , inspirado en el documento técnico de Dynamo, es una capa delgada y distribuida de Dynamo para diferentes motores y protocolos de almacenamiento. Actualmente estos incluyen Redis y Memcached. Dynomite admite la replicación de múltiples centros de datos y está diseñado para una alta disponibilidad.
El objetivo final de Dynomite es poder implementar alta disponibilidad y replicación entre centros de datos en motores de almacenamiento que no proporcionan inherentemente esa funcionalidad. La implementación es eficiente, no compleja (pocas partes móviles) y de alto rendimiento.
Cada rama numerada como v0.5.9, v0.5.8, etc. es estable y segura de usar en producción a menos que esté marcada como versión preliminar. La rama de desarrollo es la rama inestable de desarrollo. Con el tiempo, la rama maestra se ha quedado atrás y no recibe mantenimiento. Eventualmente lo eliminaremos y es posible que lo volvamos a crear o no.
Si tiene preguntas o contribuciones, considere leer CONTRIBUTING.md.
Para compilar Dynomite desde el código fuente con los registros de depuración habilitados y las aserciones deshabilitadas :
$ git clone [email protected]:Netflix/dynomite.git
$ cd dynomite
$ autoreconf -fvi
$ ./configure --enable-debug=yes
$ make
$ src/dynomite -h
Para construir Dynomite en modo de depuración :
$ 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 se puede configurar a través de un archivo YAML 1.1 (YAML 1.1 no es compatible con JSON) especificado por el argumento de línea de comandos -c o --conf-file al iniciar el proceso. Los archivos de configuración analizan y comprenden las siguientes claves:
datacenter
significa que toda la comunicación entre centros de datos está cifrada, pero dentro de un centro de datos no. rack
significa que toda la comunicación entre racks y regiones está cifrada; sin embargo, la comunicación entre nodos dentro del mismo rack no está cifrada. all
significa que toda la comunicación entre todos los nodos está cifrada. Y none
significa que ninguna comunicación está cifrada.Por ejemplo, el archivo de configuración en conf/dynomite.yml
Finalmente, para facilitar la escritura de archivos de configuración sintácticamente correctos, dynomite proporciona un argumento de línea de comandos -t o --test-conf que se puede usar para probar el archivo de configuración YAML en busca de cualquier error de sintaxis.
Licenciado bajo la Licencia Apache, Versión 2.0: http://www.apache.org/licenses/LICENSE-2.0