diff options
author | Mikulas Patocka <mpatocka@redhat.com> | 2025-01-15 18:33:30 +0100 |
---|---|---|
committer | Mikulas Patocka <mpatocka@redhat.com> | 2025-01-17 22:05:40 +0100 |
commit | a38425935f7886cef5fe04c796f36715e9d0ef3f (patch) | |
tree | 7634ad090a6986457de6143960c764d6293f192c /tools/perf/scripts/python/export-to-sqlite.py | |
parent | cd6521d03f6a722f18fc027f0d289c39d164dc4f (diff) |
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: Meir Elisha <meir.elisha@volumez.com>
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Diffstat (limited to 'tools/perf/scripts/python/export-to-sqlite.py')
0 files changed, 0 insertions, 0 deletions