16 de junio de 2013

Red Hat piensa que XFS es mejor sistema de archivos que Ext4

Hace cosa de un año escribí una entrada sobre el renacer de XFS. Hace unos días se supo que Red Hat no sólo va a soportar XFS en RHEL 7, sino que planea usarlo como sistema de archivos por defecto.

Retomando la cuestión, si dejamos a un lado los de última generación (ZFS/Btrfs), XFS es el mejor sistema de archivos. La razón por la que la familia Ext ha tenido mayor protagonismo en Linux es que, como se ha recalcado aquí, los sistemas de archivo son como los navegadores web: la calidad de la implementación importa mucho más que el formato o estándar a implementar. Hasta el punto de que un sistema de archivos obsoleto, como Ext4, es uno de los mejores por tener una buena implementación, mientras que Reiserfs v3 tienen un formato mejor, pero una implementación desfasada.

XFS tiene un buen diseño, y, en parte, una buena implementación. Su problema fue que al pasar de Irix a Linux, la implementación no encajó demasiado bien. Tardaron años en adaptarlo. Pero ese inconveniente ya está superado, se ha solucionado la lentitud del journaling con archivos pequeños, y por otra parte Ext4 tiene defectos de diseño que cada vez cuesta más superar, y que ni tan siquiera una buena implementación puede evitar. Ext4 ya no tiene la ventaja y no hay razones para no usar XFS.

Por otro lado tenemos a Btrfs. Es el futuro a largo plazo, pero recuerden que, en realidad, las principales novedades de estos sistemas de archivos de próxima generación no son mejoras para el rendimiento y la escalabilidad de operaciones cotidianas, sino mejoras en la gestión de almacenamiento: expansión a múltiples discos, snapshots, subvolumes, checksums (las mejoras puntuales del modelo copy-on-write y el RAID integrado son más bien una consecuencia de lo anterior). En materia de rendimiento y escalabilidad pura y dura, ni ZFS ni Btrfs dan miedo a XFS; de hecho a menudo tiene algunas ventajas sobre ellos. Hacer copias redundantes de los metadatos, por ejemplo, da seguridad, pero escribir al disco dos veces los mismos datos siempre va a ser más lento que no hacerlo, y para quienes llevan la capacidad de los discos al límite, eso importa.

De ahí que el panorama linuxero de sistemas de archivos esté evolucionando hacia una dualidad: XFS para servidores "serios" que necesitan el máximo rendimiento (bases de datos, virtualización, etc), Btrfs para lo demás, Ext4 como opción estable y segura. Y el peso de Red Hat tras esta decisión va a consolidar definitivamente este panorama.

15 de junio de 2013

Curiosidades de OS X 10.9 "Mavericks"

No es ningún secreto que desde que Apple se centró en los dispositivos portáctiles, lo relacionado con el escritorio ha pasado a ser secundario. OS X ha pasado de ser el centro de atención de todo el desarrollo a ser un segundón que de vez en cuando recibe actualizaciones desarrolladas en iOS. Lo cual tiene sentido, al fin y al cabo todos sabemos con qué productos gana Apple casi todo su dinero.

Sin embargo, pasar a ser el sistema operativo de "camiones" post-pc tiene sus ventajas. Por ejemplo, pueden permitirse tratar a OS X como un sistema operativo más orientado hacia sectores profesionales, "camioneros informáticos". Aunque eso no libra a nadie de los feroces ataques del infantil departamento de marketing de Apple, si que añade cosas interesantes, como una página dedicada a "tecnologías avanzadas" y un enlace a un PDF titulado "OS X Mavericks Core Technologies overview".


"Timer coalescing"

La primera gran novedad que se anuncia es algo llamado "Timer coalescing", fusión de temporizadores (por cierto, la palabra coalescencia existe en español). Esta técnica tiene como objetivo mantener la CPU ociosa y que se mantenga en modos de ahorro de energía el máximo tiempo posible. Para ello, se minimiza el número de activaciones de temporizadores activados por las aplicaciones en el sistema. El modo de minimizarlo es agrupar los temporizadores no-críticos más cercanos en el tiempo. Por ejemplo, si hay 10 temporizadores fijados para activarse en el plazo de un mismo segundo, en lugar de sacar la CPU 10 veces del modo ocioso, se activan todos de una sola vez. Linux tiene algo similar desde hace más de 6 años.



Compresión de memoria

La segunda, la compresión de la memoria RAM de las aplicaciones menos utilizadas en caso de falta de memoria. Esta es una buena idea, en Linux hay planes para la incorporación de algo similar, aunque lo de Apple parece más completo y añade, de paso y prácticamente "gratis", compresión de swap (si tienes la memoria de un programa comprimida, ¿por qué no almacenarla en swap directamente en ese formato?). Ahora bien, Apple afirma varias veces que este sistema puede reducir el tamaño de una aplicación en memoria hasta en un 50%, lo cual es una falacia descomunal. El ratio de compresión siempre depende del tipo de datos que se quieran comprimir.

Me ha llamado la atención que en las imágenes de marketing de Apple que muestran las mejoras de rendimiento de esta compresión se vea, además de una barra de "respuesta bajo carga", otra que dice "Wake from Standby". Sorprende, porque la compresión no debería afectar de ningún modo al regreso del modo de suspensión-a-memoria. Seguramente tenga que ver con la hibernación implícita que los Mac hacen con cada suspensión.

App Nap

Otra curiosidad es algo llamado "App Nap". Consiste en que, cuando a una aplicación no es visible en el escritorio y no está reproduciendo sonido, se le reducen la prioridad de los temporizadores (es decir, el periodo de tiempo para hacer coalescencia de temporizadores es mayor que lo habitual), la del I/O de disco y la prioridad del proceso.

...en definitiva, ahorro de energía

Estas tres características tienen una cosa en común: Tienen como objeto principal el ahorro de energía. Es decir, no son demasiado útiles para los Mac de escritorio. Al menos las dos primeras tienen toda la pinta de haber sido desarrolladas para iOS e incorporadas posteriormente a OS X.

Otras características de ahorro de energía menos interesntes son que hará falta hacer click en contenido flash para poder verlo cuando el contenido no esté en el centro de la página, y aceleración por hardware en la reproducción de video.


Tags

Otra característica interesante es el uso de tags en los archivos. Lo interesante no son los tags en sí mismos (¿hace cuántos años los soporta KDE?) sino el cómo están implementados, ya que el tagging es el primer paso para quienes quieren librarse de la estructura jerárquica y la anidación excesiva de directorios. Y parece ser que están implementados como atributos extendidos. Es decir, no se han roto demasiado la cabeza - por el momento (se rumorea hace tiempo que Apple trabaja en un nuevo sistema de archivos).

OpenGL

Una de las características menos publicitadas de OS X Mavericks es la muy reivindicada actualización de su OpenGL. Pasan del OpenGL 3.2 de los OS X actuales, cuya especificación fue publicada en 2009 (!) a soportar OpenGL 4.1 (y algo de 4.2). Que fue publicado en 2010, pero al menos se trata de una versión 4.x, que tiene mejor soporte para hardware diseñado para Direct3D 11. Será interesante ver los resultados del cambio.

10 de junio de 2013

Conservadurismo unixero, versión anti-wayland

Algunos desarrolladores de X.org/Wayland han escrito para Phoronix un buen artículo enumerando, una vez más, las razones por las que X.org es un artefacto espantoso y como Wayland lo soluciona. A pesar de ello, la reacción en algunos foros vuelven a ser los comentarios de gente que, en el mismo tono escéptico de siempre, vuelven a preguntarse sobre la necesidad de reemplazar una cosa tan sólida y funcional como X.org.

Mención especial merecen quienes siguen mencionando la transparencia de red como motivo fundamental para defender a X.org frente a Wayland. A pesar de que el artículo describe con elocuencia qué:
  · X.org hoy en día no tiene verdadera transparencia de red (las extensiones modernas han distorsionado el concepto original)
 · La que tiene es bastante deficiente (que hayan surgido empresas que hacen dinero mejorándola debería dar una pista)
 · Wayland no sólo permitirá usar X.org dentro de Wayland, sino que tendrá soporte nativo de transparencia de red mejor que el de X.org (ya se ha incluido soporte de FreeRDP en Weston 1.1).

A pesar de ello, como digo, no hay manera de que en cada hilo de Wayland aparezcan inevitablemente esos comentarios. No es sólo que haya gente que no lee el artículo, es que se niegan a leer e intentar comprender a quienes les responden.

Llegados a este punto, los desarrolladores de Wayland probablemente pierden el tiempo escribiendo esas cosas. A estas alturas, está claro que estamos ante ejemplos de ultraconservadurismo unixero. Suelen abundar en estos casos las opiniones que, mostrando un considerable desfase respecto a la realidad tecnológica actual, defienden que el uso de "3D" en los escritorios es innecesario. Salgan de mi patio y no pisen mi cesped. Resumiendo, que no merecen demasiada atención.