New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
os/bluestore: refactor dirty blob tracking along with some related fixes #10215
Conversation
2d29f9a
to
0e2390e
Compare
0e2390e
to
75348da
Compare
retest this please |
Note: The above comment was to get jenkins to retest the build. |
Hi Igor, this branch has conflicts. Can you please fix? Thanks! |
75348da
to
e7162b8
Compare
@markhpc - rebased |
retest this please |
int64_t id = get_new_id(); | ||
Blob *b = new Blob(id, c); | ||
b->get(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If BlobRef is an intrusive_ptr there shouldn't be any explicit get/put calls anywhere (except the intrustive ptr hooks)...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@liewegas. Additional ref_count increment is needed since Blobs are stored in intrusive::set blob_map. Blob has to persist while it's stored in this blob_map even if no corresponding BlobRefs are present.
Other options are either using std::set or intrusive::set but IMHO they both have some performance/memory footprint drawbacks. Have I missed something and there is better approach?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
otherwise lgtm! |
Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
… onode::blob_map enumeration Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
e7162b8
to
6beade7
Compare
@liewegas squashed and rebased. |
This is an intermediate patch before introducing refcounting for Blob instances.
Signed-off-by: Igor Fedotov ifedotov@mirantis.com