¿Cómo manejan los sistemas operativos /etc/hosts algorítmicamente?

¿Cómo manejan los sistemas operativos /etc/hosts algorítmicamente?

Tengo un archivo /etc/hosts enorme con 18.000 líneas. Lo uso para bloquear servidores de anuncios y demás. Mi rendimiento de navegación parece estar bien, pero me pregunto si hay algún tamaño en el que empezaré a ralentizarme. ¿Cómo almacenan los sistemas operativos el archivo de hosts durante la operación? Se me ocurren muchas formas, desde lentas hasta rápidas, y mi suposición a priori es que se maneja de manera eficiente, ya que es fundamental para la creación de redes. Aquí hay algunas formas en las que puedo pensar, desde simples hasta más complejas:

  • Lea el archivo cada vez que sea necesario.
  • Leer una vez
    • búsqueda lineal
    • ordenar, luego búsqueda binaria
    • usa un intento
    • use un hash, pero ¿cómo minimiza las colisiones?

Hay muchas formas que parecen razonables. ¿Qué se utiliza realmente?

Parece que esta pregunta debe haber sido respondida en alguna parte, por lo que las sugerencias sobre un recurso existente son bienvenidas. Miré, pero tal vez no en el lugar correcto.

Respuesta1

Debe indicar qué sistema operativo está utilizando, pero de todos modos, un método habitual para mejorar el rendimiento de la resolución de nombres con Unix y sistemas similares a Unix es utilizar un demonio (comúnmente nscd) que almacena en caché las resoluciones positivas y negativas y responde rápidamente a la mayoría de las solicitudes. Cuando se modifica /etc/hosts, al menos en Solaris, este caché se invalida.

información relacionada