bluestore: Elastic Shared Blobs 2 - move BufferSpace#51440
Closed
bluestore: Elastic Shared Blobs 2 - move BufferSpace#51440
Conversation
After introduction of lazy statfs updates and mechanism to store them at exit, some tests required tune-up. Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
Fix it, so it can be enabled and work. Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
Add more checks on consistency. Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
Upgrade local foreach_shared_blob into _fsck_foreach_shared_blob that can be used on entire BlueStore scope. Signed-off-by: Adam Kupczyk <akupczyk@redhat.com>
This was referenced May 11, 2023
ifed01
approved these changes
May 15, 2023
Contributor
|
jenkins test make check |
57f2bd4 to
e8ef699
Compare
Contributor
Author
|
@ifed01 Got rid of #ifdef WITH_ESB, last 3 commits are changed. |
ifed01
approved these changes
May 30, 2023
When we do fsck with non-repair mode, we do not get any info about shared blobs that actually were corrupted. Now we print them. Signed-off-by: Adam Kupczyk <akupczyk@redhat.com>
Make faster exit when sharding not enabled. Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
When reshard is applied for the first time, expand reshard range to encompas whole object. Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
maybe_reshard is created to filter out unnecessary calls to request_reshard. The intended use is to let just request maybe_reshard, and delegate check if the action is really necessary to the implementation detail level. Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
When encode_some fails twice ceph aborts. Now we print object details just before. Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
Modifed bluestore_blob_t to include current size of csum_data. Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
Add printing of len to operator<< for const bluestore_blob_t. Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
Modified TransContext. Changed std::set<SharedBlobRef> shared_blobs_written to std::set<BlobRef> blobs_written Signed-off-by: Adam Kupczyk <akupczyk@redhat.com>
Move finish_write from SharedBlob to Blob. Signed-off-by: Adam Kupczyk <akupczyk@redhat.com>
This is necessary to enable adding more Buffers to Blobs that are shared. Signed-off-by: Adam Kupczyk <akupczyk@redhat.com>
Adapt split_cache to new situation. Now buffers are attached to Blob, and we need always move them, regardless that we already moved relevant SharedBlob. Signed-off-by: Adam Kupczyk <akupczyk@redhat.com>
Fix blobs having the same empty shared blob. Each blob on creation gets its own unique (empty) SharedBlob object. ExtentMap::dup() sometimes merges blobs together, so 2 different blobs get the same SharedBlob object. Function _do_remove() tries to convert shared blobs into regular ones. If it succeeds we could get 2 blobs having the same EMPTY SharedBlob object. The solution is to create detached SharedBlob if necessary. Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
With BufferSpace now attached to Blob (was SharedBlob inside it), on-the-fly 'writing' buffers must be copied to clones. Otherwise those objects will read data from disk before it is written there. Signed-off-by: Adam Kupczyk <akupczyk@redhat.com>
_dup_writing requires locking of BufferCacheShard Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
By moving BufferSpace from SharedBlob to Blob tracking of num_blobs get broken. Fixed that and reinforced by adding asserts to BufferCacheShard destructor. Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
e8ef699 to
8383201
Compare
11 tasks
14 tasks
Contributor
|
Merged as a part of #53178. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is part 2/4 of ESB work.
It executes move of BufferSpace from SharedBlob to Blob.
It is necessary for elastic shared blob logic, but cannot be turn on / off in runtime.
#51439
#51440
#51441
#51442
Contribution Guidelines
To sign and title your commits, please refer to Submitting Patches to Ceph.
If you are submitting a fix for a stable branch (e.g. "pacific"), please refer to Submitting Patches to Ceph - Backports for the proper workflow.
Checklist
Show available Jenkins commands
jenkins retest this pleasejenkins test classic perfjenkins test crimson perfjenkins test signedjenkins test make checkjenkins test make check arm64jenkins test submodulesjenkins test dashboardjenkins test dashboard cephadmjenkins test apijenkins test docsjenkins render docsjenkins test ceph-volume alljenkins test ceph-volume toxjenkins test windows