Primeira versão do wZD 1.0.0, um servidor para armazenamento compacto de pequenos arquivos

Disponível primeira edição wZD 1.0.0 - um servidor para armazenar com eficiência um grande número de arquivos em um formato compacto, que externamente se parece com um servidor WebDAV normal. Uma versão modificada é usada para armazenamento BoltDB. O código do projeto é escrito em Go e distribuído por sob a licença BSD.

Servidor permite Reduza significativamente o número de arquivos pequenos em sistemas de arquivos regulares ou em cluster com suporte total a bloqueio. O cluster apoiado pelos desenvolvedores do wZD armazena cerca de 250 milhões de pequenos arquivos distribuídos em 15 milhões de diretórios no sistema de arquivos do cluster MooseFS.

wZD torna possível mover (arquivar) o conteúdo dos diretórios em arquivos no formato BoltDB e depois distribuir esses arquivos a partir desses arquivos (ou colocar arquivos em arquivos usando o método PUT), reduzindo significativamente o número de arquivos no sistema de arquivos e reduzindo a sobrecarga de armazenamento de metadados. Para aumentar a eficiência do processamento de arquivos grandes, esses arquivos podem ser salvos separadamente dos arquivos Bolt. Essa abordagem permite organizar o armazenamento de um grande número de arquivos pequenos sem ser limitado pelo limite do número de inodes no sistema de arquivos.

Primeira versão do wZD 1.0.0, um servidor para armazenamento compacto de pequenos arquivos

O servidor também pode ser usado como um banco de dados NoSQL para dados no formato chave/valor (com fragmentação baseada na estrutura de diretórios) ou para distribuição de documentos HTML ou JSON pré-gerados do banco de dados. Em termos de desempenho, enviar e gravar dados usando arquivos Bolt resulta em um aumento na latência de aproximadamente 20-25% durante a leitura e de 40-50% durante a escrita. Quanto menor o tamanho do arquivo, menor será a diferença na latência.

Primeira versão do wZD 1.0.0, um servidor para armazenamento compacto de pequenos arquivos

O principal capacidades:

  • Multithreading;
  • Multiservidor, proporcionando tolerância a falhas e balanceamento de carga;
  • Máxima transparência para o usuário ou desenvolvedor;
  • Métodos HTTP suportados: GET, HEAD, PUT e DELETE;
  • Controle do comportamento de leitura e escrita via headers do cliente;
  • Suporte para hosts virtuais flexíveis;
  • Suporte para integridade de dados CRC ao escrever/ler;
  • Buffers semidinâmicos para consumo mínimo de memória e ajuste ideal de desempenho de rede;
  • Pacote de dados diferidos;
  • Além disso, é oferecido um arquivador multithread wZA para mover arquivos para arquivos Bolt sem interromper o serviço.

Algumas limitações da versão atual: não há suporte para Multipart, método POST, protocolo HTTPS, binds para linguagens de programação, exclusão recursiva de diretórios, não há suporte para montagem de estrutura no sistema de arquivos via WebDAV ou FUSE, arquivos são armazenados sob um usuário do sistema. O formato de armazenamento é específico da arquitetura e não é portátil entre os sistemas Little Endian e Big Endian. Apesar do servidor wZD implementar suporte ao protocolo HTTP, ele precisa ser iniciado apenas sob o disfarce de proxies reversos, como nginx e haproxy.

Fonte: opennet.ru

Adicionar um comentário