Los sistemas de archivos no se discuten en XDA ni en ningún otro foro con demasiada frecuencia. El tema implica mucho desarrollo de bajo nivel, por lo que los desarrolladores prefieren centrarse en aplicaciones, ROM o kernels. Sin embargo, el sistema de archivos es una parte vital de cada almacenamiento. Es la tecnología que describe cómo se almacenan y recuperan los datos en el almacenamiento de su dispositivo. Hay muchos tipos diferentes de sistemas de archivos, cada uno con sus propias ventajas y desventajas, y elegir uno sobre otro puede marcar una gran diferencia en la estabilidad y el rendimiento. Entonces, ¿cómo toman esa decisión los OEM? Tuve el placer de hablar conStan Dimitriev, el gerente de relaciones públicas y comunicaciones deTuxera, una empresa finlandesa que proporciona soluciones de sistemas de archivos a muchos grandes OEM.

P: ¿Puedes presentarte y presentar a Tuxera?

R: Soy Stan Dmitriev. Desde que tuve mi primer teléfono Android (HTC EVO 3D), me convertí en un fanático activo de la comunidad XDA. Digamos que instalé una ROM personalizada y anulé mi garantía el primer día (Stan. Dmitrieves miembro del foro de XDA). Hace un par de años, cofundé un proyecto de startup llamado Corgi para Feedly. En ese momento, la comunidad XDA nos ayudó mucho con la definición y el desarrollo de la aplicación.

Actualmente soy el gerente de relaciones públicas y comunicaciones de Tuxera, la empresa líder en software de almacenamiento integrado, sistemas de archivos para ser más precisos, del mercado. Nuestro software impulsa más de mil millones de dispositivos y se puede encontrar en los últimos teléfonos, automóviles, enrutadores, drones y cámaras insignia. La historia de la empresa comenzó con NTFS-3G, cuando nuestro presidente y director de tecnología, Szabolcs "Szaka" Szakactics, hizo que NTFS funcionara con dispositivos Linux. Actualmente, desarrollamos nuestros propios sistemas de archivos e implementaciones tanto para almacenamiento externo como integrado y trabajamos con la mayoría de las empresas automotrices, así como con muchas empresas de teléfonos inteligentes.

Aquí en Tuxera visitamos con frecuencia los foros de XDA, especialmente cuando queremos solucionar problemas con un dispositivo dañado o buscar una ROM o un kernel personalizado con el que jugar. Muchos de mis colegas visitan con frecuencia XDA para leer sobre las últimas novedades tecnológicas en torno a los ecosistemas Android y Linux.

P: Los sistemas de archivos son una parte integral de nuestros dispositivos, pero muy pocas personas conocen su función, sus mejoras, sus puntos fuertes y sus puntos débiles. ¿Cuál es su valor y por qué debería interesar a más personas los sistemas de archivos que mantienen unidos sus datos?

R: Los sistemas de archivos son un elemento vital del núcleo de Linux que se encarga de todas las interacciones entre el dispositivo y su almacenamiento. Cada vez que tomas una foto, abres una aplicación o miras un video, el sistema de archivos cumple una función fundamental para que el sistema operativo pueda acceder a todos los archivos y almacenarlos. Los sistemas de archivos no fueron tan interesantes durante un tiempo, la razón principal es que el cuello de botella en el rendimiento provenía del almacenamiento.

Pero como las velocidades de almacenamiento son cada vez más rápidas, especialmente con la introducción de UFS, ahora es el software el que necesita modernizarse para mantenerse al día con el rendimiento de la memoria flash. El sistema de archivos no solo puede afectar las velocidades de almacenamiento, sino que también juega un papel importante en el mantenimiento del rendimiento del teléfono a largo plazo. Si se hace mal, el almacenamiento se fragmentará, un fenómeno en el que un uso ineficiente del almacenamiento puede reducir el rendimiento del dispositivo. Reducir esta posibilidad al mínimo es una característica importante de un sistema de archivos.

P: ¿Qué es F2FS (primeros pasos) y por qué empezó a llegar a Android? ¿Qué fabricantes de equipos originales (OEM) lideraron el camino?

R: F2FS es un sistema de archivos de código abierto, cuyo argumento principal es que está diseñado para la arquitectura de almacenamiento flash. El almacenamiento NAND (flash) se utiliza en todos los teléfonos Android actuales, normalmente como soluciones eMMC o UFS. El proyecto fue desarrollado inicialmente por Samsung y ha despertado un gran interés por parte de algunos de los fabricantes de equipos originales (OEM) de dispositivos móviles. No tenemos datos sobre qué fabricantes de equipos originales (OEM) iniciaron este cambio, pero, por lo que sé personalmente, Motorola fue el primero, y muchos otros fabricantes de equipos originales, como OnePlus y Huawei, siguieron este cambio poco después.

P: ¿Cuáles fueron las ventajas que brindó? Los fabricantes de equipos originales mencionan operaciones de almacenamiento más rápidas y mejor rendimiento de la interfaz de usuario, pero ¿existen otras ventajas?

R: Laideaera bastante simple: F2FS ofrece un mayor rendimiento para el almacenamiento basado en flash. El sistema arrancaría más rápido (velocidades de lectura más rápidas), las velocidades de escritura serían más altas, lo que permitiría grabar videos en 4K, cámara lenta con mayor velocidad de cuadros y de 360 ​​grados. Además, la latencia entre el sistema y el almacenamiento sería ultrabaja, lo que significa que la animación y la apertura de aplicaciones serían mucho más ágiles.

P: Los problemas, en concreto, parecen centrarse en la degradación del rendimiento. ¿Podría explicarlo con más detalle? ¿Cuál es la causa?

R: La idea de F2FS era realmente genial: lograr el rendimiento más rápido posible para dispositivos flash. Pero también es importante centrarse en el rendimiento a largo plazo. El hardware siempre puede ser rápido desde el primer momento, pero mantener estas velocidades de forma continua es un desafío mucho más difícil. En el caso de un uso de Android, el almacenamiento del dispositivo está casi lleno la mayor parte del tiempo y hay miles de operaciones de lectura y escritura que se producen a veces incluso en un segundo. Muchas de las aplicaciones populares ejecutan servicios en segundo plano, lo que significa que la aplicación realiza algunas operaciones de lectura y escritura incluso cuando no la abres. Si se realizan de forma incorrecta, las operaciones de escritura pueden aumentar drásticamente la fragmentación del almacenamiento, lo que hace que cada próxima operación de lectura y escritura sea aún más lenta.

Consideramos que la fragmentación del almacenamiento es una de las causas de la degradación del rendimiento en los dispositivos Android. Ahora lo que hay que determinar es si los problemas se deben a la compatibilidad del hardware y al rendimiento del sistema de archivos con el almacenamiento de varios OEM, o si la arquitectura F2FS se centra en las velocidades iniciales y esto afecta al rendimiento a largo plazo. Los problemas también pueden deberse a errores, ya que el sistema de archivos todavía está en desarrollo.

P: ¿Existen otros problemas de rendimiento o confiabilidad que sean menos conocidos?

R: Algo interesante que descubrimos es que F2FS tiene una sobrecarga inesperada, al menos un par de cientos de MB de tu almacenamiento para el almacenamiento en caché y el mantenimiento del almacenamiento. Esto definitivamente tiene sentido si tienes 64 GB de almacenamiento o más, pero en teléfonos económicos con tamaños de ROM de 8 GB o 16 GB, esto podría ser un problema.

El hallazgo principal es que la implementación actual de F2FS es ideal para entornos de solo lectura cuando se desea lograr velocidades más altas. F2FS debe centrarse en mejorar su rendimiento de almacenamiento a largo plazo en un entorno de alta interacción con archivos pequeños, como es lo que sucede en el entorno Android.

En cierto sentido, se trata de una batalla de teorías. Se puede pensar que el rendimiento del hardware es tan rápido que la degradación no será un problema, o bien se puede ver al revés, donde el hardware es tan rápido que se debería lograr un rendimiento ligeramente más lento que se pueda mantener a largo plazo. F2FS eligió el primer enfoque y no hay opciones equivocadas en este caso; es un experimento importante que se debe realizar y una curva de aprendizaje para toda la industria. Dicho esto, lo que estamos viendo actualmente es que el rendimiento a largo plazo debería ser el enfoque principal en este momento.

P: Algunos fabricantes de equipos originales han dejado de utilizar F2FS, mientras que otros, como Huawei, siguen admitiendo F2FS en dispositivos recientes. ¿Cree que existe una tendencia en uno u otro sentido? (Adopción lenta o abandono total)

R: Existen múltiples escenarios por los cuales los OEM podrían continuar usando F2FS.

  • Un OEM podría tener su propia implementación de F2FS, que aporta algunas correcciones a los problemas conocidos.

  • Un OEM podría tener muy buenos vínculos con el fabricante de almacenamiento flash, ya que tener acceso a la capa FTL de NAND y ajustar el sistema de archivos para que funcione bien con el hardware puede traer mejoras significativas, incluida la fragmentación del almacenamiento flash.

  • Un OEM podría preferir centrarse en el rendimiento inicial del teléfono, ya que el ciclo de vida promedio de un teléfono inteligente es de alrededor de 2 años, y a medida que el teléfono se vuelve lento, ya estarán comprando uno nuevo.

  • Un OEM también podría tener algún servicio de desfragmentación en ejecución, esto puede resolver parcialmente los problemas de F2FS.

Estos son algunos de los posibles escenarios, al mismo tiempo, estamos viendo que algunos OEM ya están volviendo a usar Ext4, por ejemplo, OnePlus 3T usaba F2FS, pero todos los modelos más nuevos de OnePlus usan Ext4.

P: F2FS necesita actualmente una solución de desfragmentación móvil que pueda resolver el problema que está apareciendo actualmente con F2FS.

R: Las herramientas de desfragmentación existen desde hace algún tiempo. La principal ventaja es que pueden reasignar o reescribir los bloques de memoria para reducir la fragmentación del almacenamiento. Pero el problema con este enfoque es que se reescriben las celdas de memoria flash, lo que reduce la vida útil del almacenamiento. El mejor escenario sería escribir los datos de forma inteligente en primer lugar. Controlar los daños no es la solución ideal.

Piensa en ello como si estuvieras haciendo un desastre en una habitación tirando un montón de cosas por todos lados y luego comenzando a ordenarlas en los cajones. ¿Por qué no hacer eso de inmediato?

P: ¿Los fabricantes de equipos originales han logrado contrarrestar o solucionar algunos de los problemas que frenan el F2FS? Por ejemplo, Huawei descarta la degradación del rendimiento y anuncia una experiencia de usuario más rápida con el tiempo, en parte gracias a su "IA".

R: Bueno, si una IA puede analizar el comportamiento del almacenamiento y reescribir el sistema de archivos para que funcione con un dispositivo flash específico, probablemente esto pueda resolver los problemas de fragmentación. La IA también puede analizar qué aplicaciones o funciones usa la persona con más frecuencia y precargarlas o almacenarlas en consecuencia, lo que hace que las funciones del teléfono se sientan más ágiles, aunque eso no resolvería el problema de la fragmentación. Mi principal suposición es que la mayoría de las optimizaciones están relacionadas con el espacio de usuario y no con algunas optimizaciones de sistemas de archivos de tecnología avanzada.

P: ¿Qué otros desarrollos interesantes en materia de sistemas de archivos deberíamos conocer? ¿Qué impacto podrían tener en la experiencia del usuario, aunque sea de forma sutil o de bajo nivel?

R: F2FS y Ext4 siguen siendo muy importantes y son los sistemas de archivos de código abierto a los que se recurre. Ext4 es más maduro y fiable, pero puede limitar el rendimiento de Flash; F2FS es más ágil, pero también más experimental. La situación en la que el software se convierte en el cuello de botella es lo que hace que los sistemas de archivos vuelvan a ser interesantes. Estamos pasando de entornos en los que cada segundo cuenta a entornos en los que cada milisegundo cuenta, y los sistemas de archivos desempeñarán un papel importante en este aumento del rendimiento. El desarrollo más interesante para los sistemas de archivos sería crear una solución verdaderamente optimizada para Flash que pueda mantener el rendimiento de Flash.

En Tuxera, estamos desarrollando Tuxera Flash File System, donde hacemos cosas como optimizaciones de software específicas del hardware para garantizar que el sistema de archivos esté optimizado para un dispositivo, caso de uso y memoria flash específicos. Al tener presencia en el sector automotriz, nos enfocamos principalmente en el rendimiento y la degradación a largo plazo de la memoria flash. Esto se parece más al tipo de optimización de hardware x software del que hablaba Steve Jobs. Creemos que aplicar el aprendizaje automático para crear esos "controladores" podría ser realmente emocionante para toda la industria del almacenamiento.

P: Nuestro almacenamiento flash físico también es cada vez más rápido. ¿Cómo cree que este hecho afectará la experiencia del usuario final y el futuro de los sistemas de archivos?

R: A medida que el hardware se vuelve más rápido, el software debe garantizar que pueda mantenerse al día con estas arquitecturas de hardware avanzadas. Este es el principal desafío que los sistemas de archivos deben resolver actualmente. Puede tener características de velocidad de lectura y escritura increíbles en el dispositivo, pero si la pila de software agrega latencia, la experiencia del usuario no será tan rápida. Este es un momento emocionante para el desarrollo de sistemas de archivos, ya que existe una clara necesidad de una tecnología más rápida, ágil y, al mismo tiempo, más confiable para dispositivos móviles.

Pero a medida que el flash se hace más rápido, la pregunta principal es: ¿a qué velocidad el rendimiento se vuelve irrelevante? Piénselo como la resolución de la pantalla Retina, donde una mayor densidad de píxeles no hace que la imagen sea más nítida para el ojo humano.

P: Gracias por su tiempo.

A: ¡Gracias!