]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
osd: optimize extent comparison in PrimaryLogPG 61337/head
authorDongdong Tao <tdd21151186@gmail.com>
Fri, 22 Nov 2024 01:56:30 +0000 (10:56 +0900)
committerIlya Dryomov <idryomov@gmail.com>
Sun, 12 Jan 2025 16:53:21 +0000 (17:53 +0100)
commit86de9e903d689b8170409b2dc4fc25bf0dbc71b6
treed92043aef3c05b876a1caa796e2f904c3700aecc
parent3f13ee132e02627a7480a3664d8000f4b32d5faf
osd: optimize extent comparison in PrimaryLogPG

Improve the performance of finish_extent_cmp by using bufferlist iterators
instead of array access operator[]. This change:

- Replaces O(N) array access with O(1) iterator operations

The original implementation used array access which has O(N) complexity
for each access in bufferlist (N being the number of buffers in a bufferlist).
The new version uses iterators which wprovide O(1) increment operations,
reducing the overall function complexity from O(M*N) to O(M) with M being the
length of the bufferlist.

Fixes: https://tracker.ceph.com/issues/69014
Signed-off-by: Dongdong Tao <dongdong.tao@canonical.com>
(cherry picked from commit 60797f6862f8387be2b09ad61e198a60c55383d5)
src/osd/PrimaryLogPG.cc