Effect of removing pool PMR allocators - laurynas-biveinis/unodb GitHub Wiki
unodb::db
:
-
micro_benchmark_key_prefix
: 22% speedup (unpredictable_prepend_key_prefix
) to 11% slowdown (unpredictable_cut_key_prefix
) -
micro_benchmark_n4
: 16% speedup (minimal_n4_sequential_insert<unodb::db>/255
) to 65% slowdown (shrink_node16_to_n4_randomly<unodb::db>/16383
) -
micro_benchmark_n16
: 6% speedup (shrink_n48_to_n16_sequentially<unodb::db>/4
) to 79% slowdown (shrink_n48_to_n16_sequentially<unodb::db>/16383
) -
micro_benchmark_n48
: 18% speedup (n48_sequential_add<unodb::db>/4096
) to 163% slowdown (grow_n16_to_n48_sequentially<unodb::db>/4096
) -
micro_benchmark_n256
: 5% speedup (grow_n48_to_n256_sequentially<unodb::db>/8
) to 205% slowdown (grow_n48_to_n256_sequentially<unodb::db>/64
)
unodb::olc_db
:
-
micro_benchmark_key_prefix
: 7% speedup (unpredictable_cut_key_prefix
) to 2% slowdown (unpredictable_get_shared_length
) -
micro_benchmark_n4
: 12% speedup (shrink_node16_to_n4_sequentially<unodb::olc_db>/64
) to 30% slowdown (shrink_node16_to_n4_randomly<unodb::olc_db>/16383
) -
micro_benchmark_n16
: 15% speedup (grow_n4_to_n16_sequentially<unodb::olc_db>/64
) to 33% slowdown (shrink_n48_to_n16_randomly<unodb::olc_db>/16383
) -
micro_benchmark_n48
: 11% speedup (grow_n16_to_n48_sequentially<unodb::olc_db>/8
) to 64% slowdown (grow_n16_to_n48_sequentially<unodb::olc_db>/8192
) -
micro_benchmark_n256
: 6% speedup (grow_n48_to_n256_sequentially<unodb::olc_db>/2
) to 125% slowdown (grow_n48_to_n256_sequentially<unodb::olc_db>/2048
)
baseline commit, patch, jemalloc LD_PRELOAD'ed
unodb::db
:
-
micro_benchmark_key_prefix
: 23% speedup (unpredictable_prepend_key_prefix
) to 2% slowdown (unpredictable_cut_key_prefix
) -
micro_benchmark_n4
: 9% speedup (full_n4_sequential_insert<unodb::db>/100
) to 8% slowdown (full_n4_sequential_delete<unodb::db>/4096
) -
micro_benchmark_n16
: 12% speedup (grow_n4_to_n16_randomly<unodb::db>/20
) to 21% slowdown (grow_n4_to_n16_sequentially<unodb::db>/4096
) -
micro_benchmark_n48
: 11% speedup (shrink_n256_to_n48_sequentially<unodb::db>/8
) to 31% slowdown (grow_n16_to_n48_randomly<unodb::db>/4096
) -
micro_benchmark_n256
: 11% speedup (full_n256_tree_sequential_delete<unodb::db>/192
) to 41% slowdown (grow_n48_to_n256_sequentially<unodb::db>/512
)
Single-threaded unodb::olc_db
:
-
micro_benchmark_key_prefix
: 12% speedup (unpredictable_leaf_key_prefix_split
) to 0% slowdown (unpredictable_get_shared_length
) -
micro_benchmark_n4
: 21% speedup (shrink_node16_to_n4_sequentially<unodb::olc_db>/64
) to 1% slowdown (n4_random_gets<unodb::olc_db>/100
) -
micro_benchmark_n16
: 16% speedup (grow_n4_to_n16_randomly<unodb::olc_db>/64
) to 9% slowdown (grow_n4_to_n16_randomly<unodb::olc_db>/4096
) -
micro_benchmark_n48
: 21% speedup (grow_n16_to_n48_randomly<unodb::olc_db>/8
) to 4% slowdown (grow_n16_to_n48_randomly<unodb::olc_db>/8192
) -
micro_benchmark_n256
: 14% speedup (grow_n48_to_n256_sequentially<unodb::olc_db>/8
) to 18% slowdown (grow_n48_to_n256_sequentially<unodb::olc_db>/2048
)
Multi-threaded unodb::olc_db
:
-
parallel_get
: 17% speedup (parallel_get/4/2000000
) to 3% slowdown (parallel_get/2/70000
) -
parallel_insert_disjoint_ranges
: 58% speedup (parallel_insert_disjoint_ranges/32/70000
) to 0% (parallel_insert_disjoint_ranges/1/2000000
) -
parallel_delete_disjoint_ranges
: 75% speedup (parallel_delete_disjoint_ranges/32/70000
) to 10% slowdown (parallel_delete_disjoint_ranges/1/2000000
)