perl – readdir y reiserfs

Esta semana, haciendo una migración de un servidor, descubrimos (los 2 que estabamos migrandolo) un cambio de comportamiento en un script de Perl que usa la combinación opendir/readdir, resulta que el servidor original tenía ext3 en sus sistemas de archivos, y el nuevo reiserfs (defaults de RHEL 5 y SUSE 10.2 respectivamente), el caso es que en el primero el “readdir” devolvía los archivos en el orden en el que fueron modificados descendetemente, es decir, el mas nuevo primero.

En el servidor con reiserfs el orden es bastante “aleatorio”, no es que cambie, sino que no tiene un orden facilmente entendible, entonces mi compañero se puso a hacer un parche al script para ordenar algo que antes no lo requería, hasta que de repente mientras me platicaba de comportamiento normal del “stat” y el “readdir”, caí en cuenta que el nuevo server había cambiado de sistemas de archivos, y bueno, una googleada ligera resulta darnos la respuesta obvia, reiserfs tiene unas tablas raras, que no prentendo entender, para organizar los archivos, y que no tienen nada que ver con parametros como su creacion, modificación, etc.

Se menciona por ejemplo que reiserfs puede mostrarte “.” y “..” (aqui y abajo de aqui) intercalados entre los archivos, lo cual es bastante raro, pero pues así furula reiserfs (no tenemos porque comprender el comportamiento ni de el sistema de archivos ni de su creador).

En fin, ahi queda el tip para cuando alguno de los que lean esta nota lo tenga en mente pa futuros movimientos de sistemas de archivos y el uso de readdir en particular.

Similar Posts

  • YO YO

    Siempre me paso de sangrón, a pesar de que no me agrada, y pues no voy a poder dejar de presumir esto, de hecho estuve pensando desde ayer si lo presumía o no. Estoy certificado por RedHat (RHCE) 😛 jojo Curiosamente siempre he estado bastante en desacuerdo con las certificaciones, en si no tienen nada…

  • Another end of an era

    Muchas cosas tienen que acabar, y a veces un trabajo satisfactorio es de las cosas que quisiéramos que no terminaran, pero pasa… En un par de semanas laborales estaré dejando mi chamba actual para iniciar una etapa nueva. Fueron 7 años y días los que estuve en el IER y sirvieron mucho para hacer cosas…

  • Entrandole a la ociocidad de los tests, aqui va otro …..!|…h..|../[..| If I were a NetHack monster, I would be a dwarf. I enjoy using expensive, high-quality equipment, and I’m not afraid to work hard to get it. Which NetHack Monster Are You? Lo peor es que nunca he jugado nethack ;-P

  • qué qué ?

    No di credito al ver esta nota. Me pregunto como no se nos habia ocurrido antes en México ! Aplaudo a los presidentes latinoamericanos que estan en contra de estados unidos ! y mas los que estan en contra de la ilegalidad de las drogas !! (ring ring peje !)

One Comment

  1. Esto es muy interesante. No es necesario saber mucho al respecto sobre ReiserFS, como mencionas, pero sí hay una explicación básica al respecto de este comportamiento. ReiserFS utiliza una tabla interna con pares llave-valor para las descripciones de los archivos, Perl que accesa esas tablas descriptivas (o… más bien que lo hace por medio de la plataforma), accede a esa lista de archivos como hash (por aquello de la tabla de pares llave-valor), el cual es una estructura de datos en Perl sin orden.

    Dependiendo de la lógica de tu aplicación, lo ideal, creo yo es evaluar cada uno de los elementos que readdir te regresa con map o grep, para resultados granulares más refinados.

    Excelente post!

Leave a Reply

Your email address will not be published. Required fields are marked *