CEVIU Logo
Voltar

MOR não é otimização de armazenamento, é uma mudança arquitetural

Aprofundamento CEVIU

Aprofundamento

O Merge-on-Read (MoR) não é uma otimização de I/O ou compressão, é uma mudança de contrato entre escrita e leitura. Enquanto o Copy-on-Write reescreve blocos inteiros de dados para garantir que cada leitura seja servida de um único arquivo Parquet, o MoR assume que a consistência lógica pode ser construída em tempo real, mesclando camadas base e delta no momento da consulta. Isso exige um runtime capaz de resolver conflitos de versão, aplicar exclusões posicionais ou por igualdade e gerenciar a visibilidade transacional sem bloqueio. A compactação não é um 'mantimento opcional': é o mecanismo que converte custo de leitura em custo de processamento controlado, e sua falha gera amplificação de leitura exponencial, não só mais arquivos lidos, mas mais deslocamentos de memória, mais buscas em disco e pior uso de cache.

Plataformas como Delta Lake (desde v2.3), Iceberg v2 no Snowflake (a partir do bundle 2026_03) e Hudi já adotam MoR com variações técnicas concretas: Iceberg usa arquivos de exclusão posicionais por padrão agora, Delta Lake depende de Deletion Vectors desde 2023, e Hudi mantém logs delta com esquema de versionamento próprio. O que une essas implementações não é a sintaxe SQL, mas o modelo de execução: leituras são pipelines de fusão, não acessos diretos.

O que mudou

A cobertura anterior do CEVIU sobre Bintrail (2026-05-25) já mostrava como binlogs indexados permitem time-travel no MySQL sem cópias de dados, um princípio semelhante ao MoR, mas limitado ao nível de log de transação. Agora, com o bundle 2026_03 do Snowflake e a adoção generalizada de Deletion Vectors na Databricks, o MoR deixou de ser um modo experimental em data lakehouses para virar o comportamento padrão em operações UPDATE, DELETE e MERGE em tabelas Iceberg v2. Não é mais 'suporte a MoR': é a nova camada de abstração de atualização em ambientes de produção.

Por que isso importa

Para engenheiros de dados, isso muda o perfil de performance esperado: latência de escrita cai, mas a previsibilidade de leitura exige monitoramento ativo de métricas como 'delta file count per partition' e 'read amplification ratio'. Para equipes de analytics, queries que antes rodavam em 2 segundos podem passar para 8 segundos se a compactação estagnar, e esse gargalo não aparece no explain plan, só no tempo real. A governança também se transforma: políticas de retention precisam considerar tanto arquivos base quanto delta, e ferramentas de lineage devem rastrear não apenas origens, mas também quais logs delta contribuíram para um resultado específico.

Linha do tempo

  1. Lançamento do Bintrail, demonstrando time-travel via binlogs sem cópias de dados, antecipando princípios arquiteturais do MoR em sistemas transacionais.

  2. Publicação da análise técnica que posiciona MoR como mudança arquitetural, não otimização de armazenamento, com foco em trade-offs entre escrita, leitura e compactação.

Perguntas frequentes

MoR é adequado para ambientes OLAP críticos em tempo real?

Sim, mas com ressalvas. Ele reduz latência de ingestão, o que ajuda em cenários de CDC e streaming, mas exige compactação bem configurada e indexação complementar (como os esforços em andamento no Iceberg para índices plugáveis). Sem isso, consultas analíticas pesadas sofrem com amplificação de leitura.

Qual a diferença prática entre Deletion Vectors do Delta Lake e arquivos de exclusão do Iceberg?

Deletion Vectors (DVs) são estruturas internas que marcam linhas deletadas dentro do mesmo arquivo Parquet, sem criar novos arquivos. Já os arquivos de exclusão do Iceberg são entidades separadas, posicionais (referenciam offsets físicos) ou de igualdade (referenciam valores), e exigem leitura adicional durante o scan. Os DVs reduzem I/O, mas aumentam complexidade no runtime do Delta.

Como saber se minha tabela MoR está saudável?

Monitore três métricas: número médio de arquivos delta por partição (ideal: < 5), taxa de compactação bem-sucedida (deve ser >95% das tentativas), e diferença entre 'data written' e 'data read' em queries típicas (se ultrapassar 3x, há amplificação crítica). Ferramentas como Apache Hudi's fsck ou Iceberg's validate can detect corrupção oculta.

MoR afeta a integridade referencial ou atomicidade de transações?

Não diretamente, todas as implementações atuais (Hudi, Iceberg, Delta) mantêm ACID via snapshots e commit logs. Mas a visibilidade de dados atualizados depende do timestamp de snapshot usado na leitura. Uma query com 'AS OF' pode ver dados inconsistentes se o delta correspondente ainda não foi compactado e não está incluído no snapshot.

Fontes

Avalie este artigo:
Compartilhar:
Categoria
CEVIU Dados
Publicado
01 de junho de 2026
Editoria
CEVIU Dados

Quer receber mais sobre CEVIU Dados?

Conteúdo curado diariamente, direto no seu e-mail.

Conteúdo curado diariamenteDiversas categoriasCancele quando quiser
MOR não é otimização de armazenamento, é uma mudança