Mientras se preparaba para la actualización de Sei Giga, Sei Labs evaluó el rendimiento de los nodos utilizando diferentes backends de almacén de estado. Al comparar RocksDB y PebbleDB con MVCC para consultas históricas con mucha indexación, RocksDB pudo reducir la latencia del operador del nodo entre 10 y 40×
Medimos la latencia de traceBlock en varios millones de bloques, una consulta RPC que realiza una iteración extensa en pares clave-valor en el almacén de estado. A medida que aumenta el historial de nodos, el tiempo de iteración de PebbleDB crece drásticamente, mientras que RocksDB mantiene una curva de latencia mucho más plana.
La razón principal de esta diferencia radica en el diseño de backend. RocksDB admite marcas de tiempo nativas definidas por el usuario para MVCC y familias de columnas eficientes. PebbleDB, por el contrario, carece de versiones nativas, lo que requiere sufijos de clave e iteración manual en múltiples versiones.
Esto conduce a una eficiencia de iteración significativamente mejor en RocksDB, especialmente para nodos con un estado histórico grande. A medida que aumenta el historial almacenado, la brecha de rendimiento entre PebbleDB y RocksDB se vuelve más pronunciada.
Si bien RocksDB presenta una compensación de compilación menor, las mejoras de rendimiento lo convierten en una opción sólida para los nodos de archivo y RPC que manejan un estado grande o un historial largo. Hemos observado mejoras consistentes en la latencia de seguimiento y la velocidad de iteración en todas las configuraciones
106.75K