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%