Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

277
Visualizações
Sistema de archivos de solo lectura "Justo a tiempo" usando mkfifo e inotifywait

Estoy escribiendo un middleware bruto; básicamente, tengo un código antiguo que necesita abrir 100,000 archivos solo para lectura, esperando que todos estén en una carpeta. Nunca escribe. Es multiproceso, por lo que puede intentar abrir ~30 archivos al mismo tiempo. A la antigua, tendría que copiar los archivos en esa carpeta (o usar enlaces, NFS, etc.). Vale la pena señalar que no tengo la capacidad de cambiar este código antiguo, es solo un binario.

Tengo un código nuevo y elegante que puede recuperar un archivo casi al instante. Quiero unir estas cosas, de modo que cuando el código anterior intente abrir el archivo, en realidad, en tiempo real, esté ejecutando el nuevo código.

Así que pensé en mkfifo e inotifywait. En lugar de una carpeta de 100 000 archivos, puedo crear una carpeta de 100 000 canalizaciones con nombre. Hasta aquí todo bien. El código heredado va a abrir los archivos, sin saber que en realidad se llaman canalizaciones. El problema es que no sé en qué orden el código heredado abrirá los archivos (bien, ¿verdad?). Así que me gustaría ACTIVAR la ESCRITURA de tubería con nombre (de mi nuevo código elegante) cuando el código heredado entra para la lectura. No puedo generar 100,000 escrituras y hacer que todas se bloqueen. Así que pensé, hey, inotifywait tiene sentido. Cada vez que el legado va a abrir la canalización, desencadena un evento de lectura, que luego se puede usar para generar el escritor de canalización en segundo plano. El problema es que inotifywait no activa el evento de lectura hasta DESPUÉS de que se haya generado el escritor.

¿Alguna idea de cómo resolver esto? Básicamente, quiero interceptar un archivo abierto, bloquearlo durante un par de cientos de ms mientras recupero el contenido del archivo y luego devolver ese contenido. Idealmente, no tengo que crear un sistema de archivos FUSE personalizado para hacer esto ... es solo un archivo abierto de solo lectura. El problema es que esto debe ejecutarse rápido y en paralelo... y no sé qué archivos se abrirán y en qué orden. ¡Tiene que ser una forma rápida y sucia!

Gracias de antemano por el tiempo de todos.

over 4 years ago · Santiago Trujillo
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda