Dynomite , inspirado no whitepaper do Dynamo, é uma camada fina e distribuída de dínamo para diferentes mecanismos e protocolos de armazenamento. Atualmente estes incluem Redis e Memcached. O Dynomite oferece suporte à replicação em vários datacenters e foi projetado para alta disponibilidade.
O objetivo final do Dynomite é ser capaz de implementar alta disponibilidade e replicação entre datacenters em mecanismos de armazenamento que não fornecem inerentemente essa funcionalidade. A implementação é eficiente, não complexa (poucas peças móveis) e de alto desempenho.
Cada ramificação numerada como v0.5.9, v0.5.8 etc. é estável e segura para uso em produção, a menos que seja marcada como pré-lançamento. O ramo dev é o ramo instável de desenvolvimento. Com o tempo, o branch master ficou para trás e não é mantido. Eventualmente iremos excluí-lo e podemos ou não recriá-lo.
Para perguntas ou contribuições, considere ler CONTRIBUTING.md.
Para construir o Dynomite a partir da fonte com logs de depuração habilitados e asserções desabilitadas :
$ git clone [email protected]:Netflix/dynomite.git
$ cd dynomite
$ autoreconf -fvi
$ ./configure --enable-debug=yes
$ make
$ src/dynomite -h
Para construir o Dynomite no modo de depuração :
$ 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)
O Dynomite pode ser configurado por meio de um arquivo YAML 1.1 (YAML 1.1 não é compatível com JSON) especificado pelo argumento de linha de comando -c ou --conf-file no início do processo. Os arquivos de configuração analisam e compreendem as seguintes chaves:
datacenter
significa que toda a comunicação entre datacenters é criptografada, mas dentro de um datacenter não é. rack
significa que toda a comunicação entre racks e regiões é criptografada, porém a comunicação entre nós dentro do mesmo rack não é criptografada. all
significa que toda a comunicação entre todos os nós é criptografada. E none
significa que nenhuma comunicação é criptografada.Por exemplo, o arquivo de configuração em conf/dynomite.yml
Finalmente, para facilitar a gravação de arquivos de configuração sintaticamente corretos, o dynomite fornece um argumento de linha de comando -t ou --test-conf que pode ser usado para testar o arquivo de configuração YAML em busca de qualquer erro de sintaxe.
Licenciado sob a Licença Apache, Versão 2.0: http://www.apache.org/licenses/LICENSE-2.0