-
Notifications
You must be signed in to change notification settings - Fork 6
Effect of removing is_full dispatch on add node path
Laurynas Biveinis edited this page May 14, 2021
·
13 revisions
Previously, the internal node add path dispatched twice: once for is_full call, then for add call. Avoid this by moving the node fullness check into add, and making it return whether the add was successful or the node was full.
Benchmarks filtered with (grow|add).*unodb::db, except for Node4 filtered with insert.*unodb::db.
-
micro_benchmark_node4: 4% slowdown (minimal_node4_sequential_insert<unodb::db>/16) to 3% speedup (full_node4_sequential_insert<unodb::db>/32768) -
micro_benchmark_node16: 1% slowdown (grow_node4_to_node16_sequentially<unodb::db>/64) to 3% speedup (grow_node4_to_node16_randomly<unodb::db>/64) -
micro_benchmark_node48: 1% slowdown (grow_node16_to_node48_randomly<unodb::db>/64) to 4% speedup (node48_random_add<unodb::db>/8) -
micro_benchmark_node256: 4% slowdown (grow_node48_to_node256_randomly<unodb::db>/64) to 6% speedup (node256_sequential_add<unodb::db>/1)