Estoy usando la biblioteca Annoy que usa mmap() para cargar algunos archivos de varios Gb en la memoria RAM. El objetivo de usar mmap() es cargar el archivo solo una vez en la memoria, incluso cuando diferentes procesos lo necesitan.
Usando Docker, planeo escalar con múltiples contenedores que ejecutan el mismo script en el mismo host. Pero el archivo de varios Gb debe cargarse solo una vez en la RAM (por eso usamos mmap()), de lo contrario, mi servidor explotará.
El archivo de varios Gb se encuentra en un volumen montado en mis contenedores.
Pero todavía necesito encontrar una manera de compartir RAM entre contenedores para obtener las ventajas de mmap().
Encontré este artículo sobre el uso de la etiqueta --ipc en la ventana acoplable, pero no sé si se aplica a mi caso y cómo implementarlo. Cualquier ayuda es bienvenida.
--ipc es una pista falsa. Para los volúmenes locales no se requiere ninguna acción, si es el mismo archivo, se compartirá la memoria. Sospecho lo mismo para los volúmenes remotos, pero no puedo confirmar que los volúmenes remotos no se multipliquen.