Visão geral
Motor de armazenamento de verdade, não um wrapper em cima de SQLite. É a mesma família de arquitetura por trás de LevelDB, RocksDB e Cassandra: toda escrita vira um append sequencial no write-ahead log e uma inserção em memória, sem nunca precisar buscar a posição certa em disco pra atualizar uma B-Tree a cada escrita. O custo dessa velocidade é pago depois, em background, pela compaction.
Como funciona
Escrita: WriteAheadLog grava cada operação com CRC-32 antes de qualquer outra coisa, com um
batch inteiro (WriteBatch) ficando entre marcadores BatchBegin/BatchCommit — uma escrita
cortada a meio caminho por uma queda de energia nunca aparece meio-aplicada na recuperação. A
MemTable guarda os dados numa skip list concorrente ordenada por chave; quando cruza o limite
de tamanho, vira uma SSTable imutável em disco (bloco de dados + índice esparso + bloom
filter). O CompactionManager funde as SSTables por k-way merge, resolvendo sobrescritas e
descartando tombstones já resolvidos.
Leitura: MemTable ativa → SSTables L0 (mais nova primeiro) → L1. Primeiro hit decide o resultado, e o bloom filter evita ler do disco uma SSTable que provavelmente não tem a chave.
Testes
26 testes automatizados, incluindo um cenário de recuperação de crash real: o WAL é truncado no meio de um batch (simulando queda de energia) e o teste prova que o batch incompleto é descartado por inteiro, nunca meio-aplicado. Também cobre compaction disparada de verdade (não simulada) resolvendo sobrescritas e deletes entre arquivos diferentes.
Decisões assumidas
fsync a cada escrita — durabilidade antes de throughput, documentado no README junto com a
otimização óbvia (fsync em lote) se o objetivo for outro. Compaction é "full merge" entre L0 e
L1, não leveled particionado por faixa de chave como o RocksDB faz — mais simples de entender e
testar, ao custo de reescrever L1 inteiro a cada rodada num volume de dados muito maior.
Stack
C# 12, .NET 8, xUnit. Zero dependências de terceiros no motor.