Skip to content

os/bluestore: get rid off resulting lba alignment in allocators#53483

Merged
yuriw merged 2 commits intoceph:mainfrom
ifed01:wip-ifed-no-alloc-lba-align
Dec 11, 2023
Merged

os/bluestore: get rid off resulting lba alignment in allocators#53483
yuriw merged 2 commits intoceph:mainfrom
ifed01:wip-ifed-no-alloc-lba-align

Conversation

@ifed01
Copy link
Copy Markdown
Contributor

@ifed01 ifed01 commented Sep 15, 2023

Fixes: https://tracker.ceph.com/issues/63618
Fixes: https://tracker.ceph.com/issues/62815

Signed-off-by: Igor Fedotov igor.fedotov@croit.io

Contribution Guidelines

Checklist

  • Tracker (select at least one)
    • References tracker ticket
    • Very recent bug; references commit where it was introduced
    • New feature (ticket optional)
    • Doc update (no ticket needed)
    • Code cleanup (no ticket needed)
  • Component impact
    • Affects Dashboard, opened tracker ticket
    • Affects Orchestrator, opened tracker ticket
    • No impact that needs to be tracked
  • Documentation (select at least one)
    • Updates relevant documentation
    • No doc update is appropriate
  • Tests (select at least one)
Show available Jenkins commands
  • jenkins retest this please
  • jenkins test classic perf
  • jenkins test crimson perf
  • jenkins test signed
  • jenkins test make check
  • jenkins test make check arm64
  • jenkins test submodules
  • jenkins test dashboard
  • jenkins test dashboard cephadm
  • jenkins test api
  • jenkins test docs
  • jenkins render docs
  • jenkins test ceph-volume all
  • jenkins test ceph-volume tox
  • jenkins test windows

@YiteGu
Copy link
Copy Markdown
Member

YiteGu commented Oct 20, 2023

We no longer need 64k alignment, but could we still keep 4k alignment for every time alloc?

@markhpc
Copy link
Copy Markdown
Member

markhpc commented Oct 23, 2023

We no longer need 64k alignment, but could we still keep 4k alignment for every time alloc?

I had a similar thought when we were talking about this a couple of weeks ago. I'm not sure why we want to go completely unaligned. @ifed01 any chance you could describe your thinking here? I never quite understood the rationale during our discussion.

@ifed01
Copy link
Copy Markdown
Contributor Author

ifed01 commented Oct 24, 2023

We no longer need 64k alignment, but could we still keep 4k alignment for every time alloc?

Primary allocation unit (4K by default) alignment is still preserved.

@ifed01
Copy link
Copy Markdown
Contributor Author

ifed01 commented Oct 24, 2023

We no longer need 64k alignment, but could we still keep 4k alignment for every time alloc?

I had a similar thought when we were talking about this a couple of weeks ago. I'm not sure why we want to go completely unaligned. @ifed01 any chance you could describe your thinking here? I never quite understood the rationale during our discussion.

https://tracker.ceph.com/issues/62815 should be able to provide some clue. Here is a brief overview:
When bluefs asks for 64K continuous blob the previous implementation attempted to locate such a chunk with an LBA aligned to 64K. But avl allocator tracks free chunks in buckets depending of their sizes. I.e. there is a bucket where all 64K chunks are kept. And in this bucket they're ordered by their LBAs only. Hence to find 64K aligned chunk one has to sequentially iterate through a potentially long list of chunks which are still 64K length but doesn't match the alignment requirement. Hence the performance impact. And actually there is no real need for that LBA's alignment requirement for now - hence the suggestion to get rid of it

@YiteGu
Copy link
Copy Markdown
Member

YiteGu commented Oct 26, 2023

@markhpc @aclamk Can we accelerate the review of this modification? I want to use it as soon as possible.

Make sure it's in-sync (meaning it's higher or equal and properly aligned)
with bluestore_min_alloc_size into account

Fixes: https://tracker.ceph.com/issues/63618
Signed-off-by: Igor Fedotov <igor.fedotov@croit.io>
@ifed01 ifed01 force-pushed the wip-ifed-no-alloc-lba-align branch from 5a98cdf to b0cb41a Compare December 4, 2023 18:07
@ljflores
Copy link
Copy Markdown
Member

ljflores commented Dec 5, 2023

@YiteGu it has been put in a test batch; Shaman builds were failing yesterday, but we're having better luck today. Will get it tested ASAP.

@ljflores
Copy link
Copy Markdown
Member

ljflores commented Dec 5, 2023

jenkins test api

@ifed01
Copy link
Copy Markdown
Contributor Author

ifed01 commented Dec 6, 2023

jenkins test make check

@ifed01
Copy link
Copy Markdown
Contributor Author

ifed01 commented Dec 6, 2023

jenkis test windows

@ifed01
Copy link
Copy Markdown
Contributor Author

ifed01 commented Dec 6, 2023

jenkins test windows

@YiteGu
Copy link
Copy Markdown
Member

YiteGu commented Dec 6, 2023

@YiteGu it has been put in a test batch; Shaman builds were failing yesterday, but we're having better luck today. Will get it tested ASAP.

thx, @ljflores BTW, I already backport to 16.2.14 and build by self.
@ifed01 The fact proves that this patch is very effective.

@ljflores
Copy link
Copy Markdown
Member

@yuriw yuriw merged commit 553bb23 into ceph:main Dec 11, 2023
@ifed01 ifed01 deleted the wip-ifed-no-alloc-lba-align branch December 11, 2023 19:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants