Project

General

Profile

Actions

Feature #63341

closed

improve rbd_diff_iterate2() performance in fast-diff mode

Added by Ilya Dryomov 6 months ago. Updated 2 months ago.

Status:
Resolved
Priority:
High
Assignee:
Target version:
-
% Done:

0%

Source:
Tags:
backport_processed
Backport:
pacific,quincy,reef
Reviewed:
Affected Versions:
Pull request ID:

Description

It's very inefficient for use cases where a big byte range is iterated over externally and rbd_diff_iterate2() is invoked effectively on individual objects or use cases where the byte range is small to begin with:

- diff is performed on the entire image no matter how small the byte range is, unused results just get discarded before returning
- intermediate snapshot object maps are loaded even when diffing against the beginning of time (fromsnapname == NULL)
- HEAD object map is loaded even when exclusive lock is held

https://gitlab.com/qemu-project/qemu/-/issues/1026


Related issues 4 (0 open4 closed)

Blocked by rbd - Bug #53897: diff-iterate can report holes when diffing against the beginning of time (fromsnapname == NULL)ResolvedIlya Dryomov

Actions
Copied to rbd - Backport #64106: quincy: improve rbd_diff_iterate2() performance in fast-diff modeResolvedIlya DryomovActions
Copied to rbd - Backport #64107: reef: improve rbd_diff_iterate2() performance in fast-diff modeResolvedIlya DryomovActions
Copied to rbd - Backport #64108: pacific: improve rbd_diff_iterate2() performance in fast-diff modeResolvedIlya DryomovActions
Actions #1

Updated by Ilya Dryomov 6 months ago

Ilya Dryomov wrote:

- intermediate snapshot object maps are loaded even when diffing against the beginning of time (fromsnapname == NULL)

This is tied to https://tracker.ceph.com/issues/53897 and requires resolution there. Otherwise results in fast-diff mode wouldn't match those in list-snaps ("slow") mode.

Actions #2

Updated by Ilya Dryomov 6 months ago

  • Blocked by Bug #53897: diff-iterate can report holes when diffing against the beginning of time (fromsnapname == NULL) added
Actions #3

Updated by Ilya Dryomov 4 months ago

  • Status changed from In Progress to Fix Under Review
  • Backport set to pacific,quincy,reef
  • Pull request ID set to 55127
Actions #4

Updated by Ilya Dryomov 4 months ago

  • Status changed from Fix Under Review to Pending Backport
Actions #5

Updated by Backport Bot 4 months ago

  • Copied to Backport #64106: quincy: improve rbd_diff_iterate2() performance in fast-diff mode added
Actions #6

Updated by Backport Bot 4 months ago

  • Copied to Backport #64107: reef: improve rbd_diff_iterate2() performance in fast-diff mode added
Actions #7

Updated by Backport Bot 4 months ago

  • Copied to Backport #64108: pacific: improve rbd_diff_iterate2() performance in fast-diff mode added
Actions #8

Updated by Backport Bot 4 months ago

  • Tags set to backport_processed
Actions #9

Updated by Backport Bot 2 months ago

While running with --resolve-parent, the script "backport-create-issue" noticed that all backports of this issue are in status "Resolved" or "Rejected".

Actions #10

Updated by Ilya Dryomov 2 months ago

  • Status changed from Pending Backport to Resolved
Actions

Also available in: Atom PDF