- Mecanismo de armazenamento embarcado construído com uma Log-Structured Merge-tree (LSM-tree)
- Diferente dos mecanismos de armazenamento LSM-tree tradicionais, o SlateDB grava os dados em armazenamento de objetos (S3, GCS, ABS, MinIO, Tigris etc.)
- Ao usar armazenamento de objetos, oferece capacidade de armazenamento ilimitada, alta durabilidade e replicação fácil
- Porém, a desvantagem é a latência mais alta e os custos de API em comparação com discos locais
Estratégias do SlateDB para evitar essas desvantagens
- Atenua o alto custo da API de escrita (PUT) processando gravações em lote
- Em vez de gravar cada chamada
put() no armazenamento de objetos, faz flush periódico da MemTable para uma Sorted String Table (SST) no armazenamento de objetos
- O intervalo de flush é configurável
- Também reduz a latência de escrita ao fornecer um método assíncrono
put
- Clientes que preferem forte durabilidade podem usar
await no put até que a MemTable seja enviada ao armazenamento de objetos (trade-off entre latência e durabilidade)
- Clientes que priorizam baixa latência podem ignorar o future retornado por
put
- Atenua a latência de leitura e o custo da API de leitura (GET) usando técnicas padrão de cache de LSM-tree
- Cache de blocos em memória, compressão, filtro de Bloom e cache local em disco para SST
Ainda não há comentários.