Při přípravě na upgrade Sei Giga společnost Sei Labs porovnávala výkon uzlů pomocí různých backendů úložiště stavů. Při porovnávání RocksDB a PebbleDB s MVCC pro historické dotazy náročné na indexování dokázala databáze RocksDB snížit latenci operátora uzlu o 10–40×
Měřili jsme latenci traceBlock v několika milionech bloků – dotaz RPC, který provádí rozsáhlou iteraci párů klíč/hodnota v úložišti stavů. S rostoucí historií uzlu se doba iterace PebbleDB dramaticky zvyšuje, zatímco RocksDB si zachovává mnohem plošší křivku latence.
Hlavní důvod tohoto rozdílu spočívá v návrhu backendu. RocksDB podporuje nativní uživatelsky definovaná časová razítka pro MVCC a efektivní rodiny sloupců. PebbleDB naproti tomu postrádá nativní verzování, což vyžaduje přípony klíčů a ruční iteraci ve více verzích.
To vede k výrazně lepší efektivitě iterací v databázi RocksDB – zejména u uzlů s rozsáhlým historickým stavem. S rostoucí uloženou historií se rozdíl ve výkonu mezi PebbleDB a RocksDB stává výraznějším.
I když RocksDB zavádí menší kompromis při sestavování, vylepšení výkonu z něj činí silnou volbu pro archivní a RPC uzly, které zpracovávají velký stav nebo dlouhou historii. Zaznamenali jsme konzistentní zlepšení latence trasování a rychlosti iterace napříč nastaveními
106,75K