F3
O que é o F3 (como inferido do thread)
- Formato de armazenamento de dados colunar destinado a ser uma alternativa a Parquet/ORC/Nimble/Lance, não um formato de arquivo geral.
- Projetado para workloads de analytics / “big data”, com foco em acesso aleatório e extensibilidade.
- Incorpora decodificadores WebAssembly (Wasm) em cada arquivo como um mecanismo autodescritivo e compatível com versões futuras.
- Os decodificadores parecem produzir buffers no estilo Arrow; os metadados do formato são definidos via FlatBuffers.
Crítica à documentação e ao “porquê”
- Muitos leitores consideram o README do GitHub vago e excessivamente voltado ao marketing: não fica claro o que o formato faz, quais problemas resolve ou onde deve ser usado.
- A justificativa central está sobretudo no artigo de pesquisa लिंकado; o repositório sozinho é considerado difícil de entender.
- Há pedidos para que as vantagens sobre Parquet (com métricas) sejam resumidas diretamente no README.
Motivação versus Parquet e outros formatos
- As limitações citadas do Parquet incluem: design alheio ao hardware, metadados globais/incômodos, dificuldade em adicionar novas codificações mantendo compatibilidade e fraco acesso aleatório.
- Alguns argumentam que isso poderia ser resolvido investindo mais engenharia no Parquet ou em formatos alternativos como Vortex ou Lance.
- Outros veem valor em novos formatos para cargas mistas de batch + acesso aleatório e workloads de ML, embora a ampla compatibilidade do Parquet continue sendo uma grande vantagem competitiva.
Decodificadores Wasm incorporados: prós e contras
- Defensores:
- Resolve a compatibilidade com versões futuras para novas codificações sem atualizar todo leitor.
- Máquina virtual independente de plataforma, em sandbox; decodificadores podem ser funções puras que retornam buffers.
- Ideias semelhantes já existiram (RAR VM, fontes, Anyblox); runtimes Wasm podem limitar memória e contagem de instruções.
- Céticos:
- Incorporar código executável em arquivos de dados aumenta a superfície de ataque (RCE, DoS, compression bombs).
- Mesmo com sandbox, bugs em engines Wasm ou em interfaces de host são prováveis.
- Torna arriscada a ingestão de dados não confiáveis, a menos que o Wasm seja desativado, o que enfraquece uma proposta central de valor.
- Depurar decodificadores Wasm de terceiros pode ser doloroso.
Desempenho, adoção e longevidade
- Há preocupação de que a decodificação baseada em Wasm seja mais lenta e interfira em otimizações no nível do engine (por exemplo, vetorização estilo DuckDB).
- Questiona-se se um projeto de pesquisa com poucos commits recentes e sem suporte do ecossistema consegue deslocar o Parquet.
- Alguns veem o F3 como potencialmente melhor para arquivamento, mas outros argumentam que formatos simples, semelhantes a texto (CSV/JSON), ou o próprio Parquet, são mais à prova do futuro.
- O sentimento geral: uma ideia interessante e engenhosa, mas com sérios obstáculos práticos, de segurança e de adoção.