Skip to content
Commit a3842593 authored by Mikulas Patocka's avatar Mikulas Patocka
Browse files

dm-transaction-manager: use red-black trees instead of linear lists

There was reported performance degradation when the shadow map contained
too many entries [1]. The shadow map uses 256-bucket hash with linear
lists - when there are too many entries, it has quadratic complexity.

Meir Elisha proposed to add a module parameter that could configure the
size of the hash array - however, this is not ideal because users don't
know that they should increase the parameter when they get bad
performance.

This commit replaces the linear lists with rb-trees (so that there's a
hash of rb-trees), they have logarithmic complexity, so it solves the
performance degradation.

Link: https://patchwork.kernel.org/project/dm-devel/patch/20241014134944.1264991-1-meir.elisha@volumez.com/

 [1]
Reported-by: default avatarMeir Elisha <meir.elisha@volumez.com>
Signed-off-by: default avatarMikulas Patocka <mpatocka@redhat.com>
parent cd6521d0
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment