Готуючись до оновлення Sei Giga, Sei Labs провела порівняльний аналіз продуктивності вузлів, використовуючи різні сервери сховища станів. При порівнянні RocksDB і PebbleDB з MVCC для історичних запитів з інтенсивним індексуванням, RocksDB зміг зменшити затримку оператора вузла на 10–40×
Ми виміряли затримку traceBlock у кількох мільйонах блоків — RPC-запит, який виконує велику ітерацію над парами ключ/значення у сховищі станів. Зі збільшенням історії вузлів час ітерації PebbleDB різко зростає, тоді як RocksDB зберігає набагато більш плоску криву затримки.
Основна причина такої різниці криється в дизайні бекенда. RocksDB підтримує власні визначені користувачем часові позначки для MVCC та ефективних сімейств стовпців. PebbleDB, навпаки, не має вбудованого керування версіями, вимагаючи суфікса ключів та ручної ітерації над кількома версіями.
Це призводить до значно кращої ефективності ітерацій у RocksDB — особливо для вузлів з великим історичним станом. Зі збільшенням збереженої історії розрив у продуктивності між PebbleDB і RocksDB стає більш помітним.
У той час як RocksDB вводить незначний компроміс у збірці, покращення продуктивності роблять його сильним варіантом для архівних та RPC-вузлів, які обробляють великий стан або довгу історію. Ми спостерігали послідовне покращення затримки трасування та швидкості ітерацій у різних налаштуваннях
110K