Caché de píxeles distribuida
Una caché de píxeles distribuida es una extensión de la caché de píxeles tradicional disponible en un único host. La caché de píxeles distribuida puede abarcar varios servidores, de modo que pueda crecer en tamaño y capacidad transaccional para soportar imágenes muy grandes o secuencias de imágenes grandes. Inicie el servidor de caché de píxeles en uno o más hosts. Cuando lee u opera sobre una imagen y los recursos locales de la caché de píxeles se agotan, ImageMagick contacta con uno o más de estos servidores de píxeles remotos para almacenar o recuperar píxeles.
Para imágenes realmente grandes o secuencias de imágenes grandes, o si su host tiene recursos limitados, puede utilizar una caché de píxeles distribuida en uno o más hosts remotos. Para empezar, primero establezca su secreto compartido en el archivo de configuración de la política de seguridad policy.xml:
<policy domain="cache" name="shared-secret" value="_passphrase_ " stealth="true"/>
Aquí creamos un servicio de caché de píxeles distribuida y lo utilizamos desde nuestro escritorio:
magick -distribute-cache 6668 & # start on localhost
magick -limit memory 1GiB -limit map 2GiB -limit disk 4GiB \
-define registry:cache:hosts=localhost:6668 \
myhugeimage.jpg -sharpen 5x2 myhugeimage.png
Aquí creamos dos cachés de píxeles distribuidas y las utilizamos desde nuestro escritorio:
magick -distribute-cache 6668 & # start on 192.168.100.50
magick -distribute-cache 6668 & # start on 192.168.100.51
magick -limit memory 1GiB -limit map 2GiB -limit disk 4GiB \
-define registry:cache:hosts=192.168.100.50:6668,192.168.100.51:6668 \
myhugeimage.jpg -sharpen 5x2 myhugeimage.png
Para secuencias de imágenes grandes, se contacta con los servidores de forma rotatoria (round-robin) para distribuir la carga entre varias cachés de píxeles distribuidas (suponiendo que tenga una lista de hosts en lugar de un único host). En nuestro ejemplo, hay algunos recursos modestos disponibles en el escritorio, según lo definido por la opción -limit. Las imágenes más pequeñas se asignan en el escritorio hasta los límites especificados.
Es probable que sus tareas de procesamiento de imágenes se ejecuten más lentamente al utilizar una caché de píxeles distribuida, debido al trasiego de píxeles entre el cliente y el servidor a través de una red. Los algoritmos que acceden a píxeles virtuales (p. ej., -sharpen) son notablemente más lentos, hasta 3 veces más lentos, que los algoritmos que solo acceden a píxeles auténticos (p. ej., -negate), debido al aumento del tráfico de red.
Un cliente solo puede contactar con un servidor de caché de píxeles distribuida compatible. La compatibilidad requiere la misma interfaz de la biblioteca ImageMagick, profundidad de cuanto (quantum depth), estado HDRI, tamaño de palabra del SO, endianness y frase de contraseña. La caché de píxeles distribuida comprueba estos atributos y lanza una excepción si no se cumplen estos requisitos.