F3
Qué es F3 (según se infiere del hilo)
- Formato de almacenamiento de datos columnar pensado como alternativa a Parquet/ORC/Nimble/Lance, no como un formato de archivo general.
- Diseñado para cargas de trabajo de analítica / “big data”, con foco en acceso aleatorio y extensibilidad.
- Incorpora decodificadores WebAssembly (Wasm) en cada archivo como un mecanismo autodescriptivo y compatible con versiones futuras.
- Los decodificadores parecen producir buffers al estilo Arrow; los metadatos del formato se definen mediante FlatBuffers.
Crítica de la documentación y del “por qué”
- Muchos lectores consideran que el README de GitHub es vago y con mucho tono de marketing: no queda claro qué hace el formato, qué problemas resuelve o dónde debería usarse.
- La justificación central está sobre todo en el artículo de investigación enlazado; el repositorio por sí solo se considera difícil de entender.
- Se pide que las ventajas frente a Parquet (con métricas) se resuman directamente en el README.
Motivación frente a Parquet y otros formatos
- Entre las carencias citadas de Parquet están: diseño ajeno al hardware, metadatos globales/engorrosos, dificultad para añadir nuevas codificaciones manteniendo compatibilidad y acceso aleatorio débil.
- Algunos sostienen que esto podría abordarse invirtiendo más ingeniería en Parquet o en formatos alternativos como Vortex o Lance.
- Otros ven valor en nuevos formatos para cargas mixtas de lotes + acceso aleatorio y para cargas de trabajo de ML, aunque la amplia compatibilidad de Parquet sigue siendo una gran ventaja competitiva.
Decodificadores Wasm embebidos: pros y contras
- Defensores:
- Resuelve la compatibilidad futura para nuevas codificaciones sin actualizar a cada lector.
- VM aislada, independiente de la plataforma; los decodificadores pueden ser funciones puras que devuelven buffers.
- Ideas similares ya han existido (VM de RAR, fuentes, Anyblox); los runtimes de Wasm pueden limitar la memoria y el número de instrucciones.
- Escépticos:
- Incrustar código ejecutable en archivos de datos aumenta la superficie de ataque (RCE, DoS, bombas de compresión).
- Incluso con aislamiento, es probable que haya fallos en los motores Wasm o en las interfaces del host.
- Hace que la ingesta de datos no confiables sea arriesgada a menos que Wasm se desactive, lo que socava una propuesta de valor clave.
- Depurar decodificadores Wasm de terceros puede ser doloroso.
Rendimiento, adopción y longevidad
- Preocupa que la decodificación basada en Wasm pueda ser más lenta e interfiera con optimizaciones a nivel de motor (por ejemplo, la vectorización al estilo DuckDB).
- Se cuestiona si un proyecto de investigación con pocos commits recientes y sin apoyo del ecosistema puede desplazar a Parquet.
- Algunos ven F3 como potencialmente mejor para archivos de archivo histórico, pero otros sostienen que formatos simples, tipo texto (CSV/JSON) o el propio Parquet son más a prueba del futuro.
- Sentimiento general: idea interesante e ingeniosa, con serios obstáculos prácticos, de seguridad y de adopción.