➔ Como os dados são organizados em disco: diretório ou um arquivo ➔ Qual o schema: relacional ou K/V ? ➔ Como fazer queries ? ➔ Nativo em Go ou precisa de uma biblioteca cliente ? ➔ Otimizações para casos específicos (melhor em leitura ou escrita) Features
um BTree • Dados relacionais, queries em linguagem SQL • Transações, journal e WAL • Escrito em C, bibliotecas para muitas linguagens • Compacto e compativel entre releases. Um dos DBs mais antigos e usados em sistemas embarcados (telefones, centrais de midia)
dados K/V • Queries em uma transação, direto por chave e ranges de chaves. • Transações, journal • Escrito em Go, nativo • Bom para aplicações de leitura intensiva Base do InfluxDB, especializado em timeseries.
Trees, dados K/V • Queries em uma transação, direto por chave e ranges de chaves. • Implementa: Transações, Compactação • Escrito em C, ports nativos em Go • Bom para aplicações de escrita intensiva Criado pelo Google, tem variações como RocksDB (Facebook) e evoluções como o BadgerDB
Trees, dados K/V • Queries em uma transação, direto por chave e ranges de chaves. • Implementa: Transações, Compactação, separação de chaves e valores • Escrito em Go • Bom para aplicações de escrita intensiva Criado por dgraph.io