Enquanto se preparava para a atualização Sei Giga, a Sei Labs avaliou o desempenho dos nós utilizando diferentes backends de armazenamento de estado. Ao comparar RocksDB e PebbleDB com MVCC para consultas históricas com alta carga de indexação, o RocksDB conseguiu reduzir a latência do operador do nó em 10–40×
Medimos a latência do traceBlock em vários milhões de blocos — uma consulta RPC que realiza uma iteração extensa sobre pares chave/valor no armazenamento de estado. À medida que a história do nó aumenta, o tempo de iteração do PebbleDB cresce dramaticamente, enquanto o RocksDB mantém uma curva de latência muito mais plana.
A principal razão para esta diferença reside no design do backend. O RocksDB suporta timestamps definidos pelo usuário nativamente para MVCC e famílias de colunas eficientes. O PebbleDB, em contraste, carece de versionamento nativo, exigindo sufixação de chaves e iteração manual sobre várias versões.
Isto leva a uma eficiência de iteração significativamente melhor no RocksDB — especialmente para nós com um grande estado histórico. À medida que a história armazenada aumenta, a diferença de desempenho entre o PebbleDB e o RocksDB torna-se mais pronunciada.
Embora o RocksDB introduza um pequeno compromisso na construção, as melhorias de desempenho fazem dele uma opção forte para nós de arquivo e RPC que lidam com grandes estados ou longas histórias. Observámos melhorias consistentes na latência de rastreamento e na velocidade de iteração em várias configurações.
110,06K