Effect of replacing RMW with W in optimistic lock obsoletion - laurynas-biveinis/unodb GitHub Wiki
Statistically significant speedups >= 1% (negative means slowdowns)
Key prefix
unpredictable_leaf_key_prefix_split<unodb::olc_db>
: 2%unpredictable_cut_key_prefix<unodb::olc_db>
: 2%unpredictable_prepend_key_prefix<unodb::olc_db>
: 1%
N4
full_n4_random_insert<unodb::olc_db>/100
: 1%full_n4_random_insert<unodb::olc_db>/512
: 1%minimal_n4_sequential_insert<unodb::olc_db>/64
: -1%full_n4_sequential_delete<unodb::olc_db>/100
: 4%full_n4_sequential_delete<unodb::olc_db>/512
: 4%full_n4_sequential_delete<unodb::olc_db>/4096
: 4%full_n4_sequential_delete<unodb::olc_db>/32768
: 5%full_n4_sequential_delete<unodb::olc_db>/65534
: 5%full_n4_random_deletes<unodb::olc_db>/100
: 4%full_n4_random_deletes<unodb::olc_db>/512
: 4%full_n4_random_deletes<unodb::olc_db>/4096
: 4%full_n4_random_deletes<unodb::olc_db>/32768
: 4%full_n4_random_deletes<unodb::olc_db>/65534
: 3%full_n4_to_minimal_sequential_delete<unodb::olc_db>/100
: 3%full_n4_to_minimal_sequential_delete<unodb::olc_db>/512
: 2%full_n4_to_minimal_sequential_delete<unodb::olc_db>/4096
: 4%full_n4_to_minimal_sequential_delete<unodb::olc_db>/32768
: 4%full_n4_to_minimal_sequential_delete<unodb::olc_db>/65532
: 2%full_n4_to_minimal_random_delete<unodb::olc_db>/100
: 2%full_n4_to_minimal_random_delete<unodb::olc_db>/512
: 4%full_n4_to_minimal_random_delete<unodb::olc_db>/4096
: 4%full_n4_to_minimal_random_delete<unodb::olc_db>/32768
: 3%full_n4_to_minimal_random_delete<unodb::olc_db>/65532
: 2%shrink_node16_to_n4_sequentially<unodb::olc_db>/25
: 3%shrink_node16_to_n4_sequentially<unodb::olc_db>/64
: 3%shrink_node16_to_n4_sequentially<unodb::olc_db>/512
: 3%shrink_node16_to_n4_sequentially<unodb::olc_db>/4096
: 4%shrink_node16_to_n4_sequentially<unodb::olc_db>/16383
: 4%shrink_node16_to_n4_randomly<unodb::olc_db>/25
: 3%shrink_node16_to_n4_randomly<unodb::olc_db>/64
: 3%shrink_node16_to_n4_randomly<unodb::olc_db>/512
: 3%shrink_node16_to_n4_randomly<unodb::olc_db>/4096
: 3%shrink_node16_to_n4_randomly<unodb::olc_db>/16383
: 3%
### N16
grow_n4_to_n16_sequentially<unodb::olc_db>/512
: -1%grow_n4_to_n16_sequentially<unodb::olc_db>/4096
: -1%grow_n4_to_n16_sequentially<unodb::olc_db>/16383
: -1%grow_n4_to_n16_randomly<unodb::olc_db>/20
: -4%grow_n4_to_n16_randomly<unodb::olc_db>/64
: 2%grow_n4_to_n16_randomly<unodb::olc_db>/512
: 1%n16_sequential_add<unodb::olc_db>/10
: -1%n16_sequential_add<unodb::olc_db>/64
: -1%n16_sequential_add<unodb::olc_db>/512
: -1%n16_sequential_add<unodb::olc_db>/4096
: -1%n16_sequential_add<unodb::olc_db>/16383
: -1%n16_random_add<unodb::olc_db>/10
: -1%n16_random_add<unodb::olc_db>/64
: -1%n16_random_add<unodb::olc_db>/512
: -1%n16_random_add<unodb::olc_db>/4096
: -1%n16_random_add<unodb::olc_db>/16383
: -2%minimal_n16_tree_full_scan<unodb::olc_db>/10
: 1%minimal_n16_tree_full_scan<unodb::olc_db>/64
: -1%minimal_n16_tree_full_scan<unodb::olc_db>/512
: -1%minimal_n16_tree_full_scan<unodb::olc_db>/16383
: -1%full_n16_tree_full_scan<unodb::olc_db>/246000
: -1%full_n16_tree_sequential_delete<unodb::olc_db>/512
: 1%full_n16_tree_sequential_delete<unodb::olc_db>/4096
: 2%full_n16_tree_sequential_delete<unodb::olc_db>/32768
: -1%full_n16_tree_sequential_delete<unodb::olc_db>/246000
: 1%full_n16_tree_random_delete<unodb::olc_db>/64
: 2%full_n16_tree_random_delete<unodb::olc_db>/512
: 2%full_n16_tree_random_delete<unodb::olc_db>/4096
: 1%full_n16_tree_random_delete<unodb::olc_db>/246000
: 1%shrink_n48_to_n16_sequentially<unodb::olc_db>/4
: 3%shrink_n48_to_n16_sequentially<unodb::olc_db>/8
: 3%shrink_n48_to_n16_sequentially<unodb::olc_db>/64
: 3%shrink_n48_to_n16_sequentially<unodb::olc_db>/512
: 3%shrink_n48_to_n16_sequentially<unodb::olc_db>/4096
: 2%shrink_n48_to_n16_sequentially<unodb::olc_db>/16383
: 1%shrink_n48_to_n16_randomly<unodb::olc_db>/4
: 2%shrink_n48_to_n16_randomly<unodb::olc_db>/8
: 2%shrink_n48_to_n16_randomly<unodb::olc_db>/64
: 3%shrink_n48_to_n16_randomly<unodb::olc_db>/512
: 2%shrink_n48_to_n16_randomly<unodb::olc_db>/4096
: 2%shrink_n48_to_n16_randomly<unodb::olc_db>/16383
: 1%
### N48
grow_n16_to_n48_sequentially<unodb::olc_db>/8
: 1%grow_n16_to_n48_sequentially<unodb::olc_db>/64
: 1%grow_n16_to_n48_sequentially<unodb::olc_db>/512
: 1%grow_n16_to_n48_sequentially<unodb::olc_db>/4096
: 1%grow_n16_to_n48_sequentially<unodb::olc_db>/8192
: 1%grow_n16_to_n48_randomly<unodb::olc_db>/8
: 1%grow_n16_to_n48_randomly<unodb::olc_db>/64
: 1%grow_n16_to_n48_randomly<unodb::olc_db>/512
: 1%grow_n16_to_n48_randomly<unodb::olc_db>/4096
: 1%n48_sequential_add<unodb::olc_db>/2
: 2%n48_random_add<unodb::olc_db>/2
: 1%n48_random_add<unodb::olc_db>/8
: -1%n48_random_add<unodb::olc_db>/64
: -1%- `full_n48_tree_sequential_deleteunodb::olc_db/192: -1%
full_n48_tree_random_delete<unodb::olc_db>/192
: 1%full_n48_tree_random_delete<unodb::olc_db>/32768
: 2%full_n48_tree_random_delete<unodb::olc_db>/196608
: 2%shrink_n256_to_n48_sequentially<unodb::olc_db>/4
: 1%shrink_n256_to_n48_sequentially<unodb::olc_db>/8
: 1%shrink_n256_to_n48_sequentially<unodb::olc_db>/64
: 3%shrink_n256_to_n48_sequentially<unodb::olc_db>/512
: 2%shrink_n256_to_n48_sequentially<unodb::olc_db>/2048
: 1%shrink_n256_to_n48_randomly<unodb::olc_db>/8
: 1%shrink_n256_to_n48_randomly<unodb::olc_db>/64
: 3%shrink_n256_to_n48_randomly<unodb::olc_db>/512
: 2%
N256
grow_n48_to_n256_sequentially<unodb::olc_db>/2
: 2%grow_n48_to_n256_sequentially<unodb::olc_db>/8
: 6%grow_n48_to_n256_sequentially<unodb::olc_db>/64
: 6%grow_n48_to_n256_sequentially<unodb::olc_db>/512
: 5%grow_n48_to_n256_sequentially<unodb::olc_db>/2048
: 5%grow_n48_to_n256_randomly<unodb::olc_db>/2
: 1%grow_n48_to_n256_randomly<unodb::olc_db>/8
: 8%grow_n48_to_n256_randomly<unodb::olc_db>/64
: 2%grow_n48_to_n256_randomly<unodb::olc_db>/512
: 2%grow_n48_to_n256_randomly<unodb::olc_db>/2048
: 3%n256_sequential_add<unodb::olc_db>/512
: -1%n256_random_add<unodb::olc_db>/64
: -1%n256_random_add<unodb::olc_db>/512
: -1%minimal_n256_tree_full_scan<unodb::olc_db>/4
: -2%minimal_n256_tree_full_scan<unodb::olc_db>/8
: -2%minimal_n256_tree_full_scan<unodb::olc_db>/64
: -2%minimal_n256_tree_full_scan<unodb::olc_db>/512
: -2%minimal_n256_tree_full_scan<unodb::olc_db>/4096
: -2%minimal_n256_tree_random_gets<unodb::olc_db>/4
: 2%minimal_n256_tree_random_gets<unodb::olc_db>/8
: 2%minimal_n256_tree_random_gets<unodb::olc_db>/64
: 2%minimal_n256_tree_random_gets<unodb::olc_db>/512
: 1%minimal_n256_tree_random_gets<unodb::olc_db>/4096
: 1%full_n256_tree_full_scan<unodb::olc_db>/128
: -3%full_n256_tree_full_scan<unodb::olc_db>/512
: -3%full_n256_tree_full_scan<unodb::olc_db>/4096
: -3%full_n256_tree_full_scan<unodb::olc_db>/31768
: -2%full_n256_tree_full_scan<unodb::olc_db>/131064
: -2%full_n256_tree_random_gets<unodb::olc_db>/32768
: -1%full_n256_tree_random_gets<unodb::olc_db>/131064
: -1%full_n256_tree_sequential_delete<unodb::olc_db>/192
: -1%full_n256_tree_sequential_delete<unodb::olc_db>/512
: -1%full_n256_tree_sequential_delete<unodb::olc_db>/4096
: -2%full_n256_tree_sequential_delete<unodb::olc_db>/32768
: -1%full_n256_tree_sequential_delete<unodb::olc_db>/196608
: -1%full_n256_tree_random_delete<unodb::olc_db>/192
: -1%full_n256_tree_random_delete<unodb::olc_db>/512
: -1%full_n256_tree_random_delete<unodb::olc_db>/4096
: -1%full_n256_tree_random_delete<unodb::olc_db>/196608
: -4%