Primera versión de wZD 1.0.0, servidor de almacenamiento compacto para archivos pequeños

Disponible primera edición WZD 1.0.0 - un servidor para almacenar de forma eficiente una gran cantidad de archivos en un formato compacto, que desde fuera parece un servidor WebDAV normal. Se utiliza una versión modificada para el almacenamiento. PernoDB. El código del proyecto está escrito en Go y distribuido por bajo la licencia BSD.

Servidor permite Reduzca significativamente la cantidad de archivos pequeños en sistemas de archivos normales o agrupados con soporte de bloqueo total. El clúster respaldado por los desarrolladores de wZD almacena alrededor de 250 millones de archivos pequeños distribuidos en 15 millones de directorios en el sistema de archivos del clúster. alcesfs.

wZD permite mover (archivar) el contenido de los directorios a archivos en formato BoltDB y luego distribuir estos archivos desde estos archivos (o colocar archivos en archivos usando el método PUT), reduciendo significativamente la cantidad de archivos en el sistema de archivos y reduciendo la sobrecarga de almacenamiento de metadatos. Para aumentar la eficiencia del procesamiento de archivos grandes, dichos archivos se pueden guardar por separado de los archivos Bolt. Este enfoque le permite organizar el almacenamiento de una gran cantidad de archivos pequeños sin estar limitado por el límite en la cantidad de inodos en el sistema de archivos.

Primera versión de wZD 1.0.0, servidor de almacenamiento compacto para archivos pequeños

El servidor también se puede utilizar como una base de datos NoSQL para datos en formato clave/valor (con fragmentación basada en la estructura del directorio) o para distribuir documentos html o json pregenerados desde la base de datos. En términos de rendimiento, enviar y escribir datos utilizando archivos Bolt da como resultado un aumento en la latencia de aproximadamente un 20-25 % al leer y un 40-50 % al escribir. Cuanto menor sea el tamaño del archivo, menor será la diferencia de latencia.

Primera versión de wZD 1.0.0, servidor de almacenamiento compacto para archivos pequeños

El principal capacidades:

  • subprocesos múltiples;
  • Multiservidor, que proporciona tolerancia a fallos y equilibrio de carga;
  • Máxima transparencia para el usuario o desarrollador;
  • Métodos HTTP soportados: GET, HEAD, PUT y DELETE;
  • Control del comportamiento de lectura y escritura a través de encabezados de cliente;
  • Soporte para hosts virtuales flexibles;
  • Soporte para la integridad de los datos CRC al escribir/leer;
  • Búfers semidinámicos para un consumo mínimo de memoria y un ajuste óptimo del rendimiento de la red;
  • Paquete de datos diferidos;
  • Además, se ofrece un archivador multiproceso. WZA para mover archivos a archivos Bolt sin detener el servicio.

Algunas limitaciones de la versión actual: no hay soporte para Multipart, el método POST, el protocolo HTTPS, enlaces para lenguajes de programación, eliminación recursiva de directorios, no hay soporte para montar una estructura en el sistema de archivos a través de WebDAV o FUSE, archivos se almacenan bajo un usuario del sistema. El formato de almacenamiento es específico de la arquitectura y no es portátil entre sistemas Little Endian y Big Endian. A pesar de que el servidor wZD implementa soporte para el protocolo HTTP, solo debe iniciarse bajo la apariencia de proxies inversos, como nginx y haproxy.

Fuente: opennet.ru

Añadir un comentario