Skip to content
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: sloppy reshard boundaries to avoid spanning blobs #11263

Merged
merged 1 commit into from Sep 30, 2016

Conversation

liewegas
Copy link
Member

Make the extent map shard target size sloppy so that we can try to avoid
sharding boundaries that create spanning blobs.

Signed-off-by: Sage Weil sage@redhat.com

Make the extent map shard target size sloppy so that we can try to avoid
sharding boundaries that create spanning blobs.

Signed-off-by: Sage Weil <sage@redhat.com>
@@ -1521,7 +1523,10 @@ void BlueStore::ExtentMap::reshard(Onode *o)
dout(20) << __func__ << " old shard end 0x" << std::hex << shard_end
<< std::dec << dendl;
}
if (estimate && estimate + extent_avg > target) {
// disfavor shard boundaries that span a blob
bool would_span = (ep->logical_offset < max_blob_end) || ep->blob_offset;

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@liewegas I don't understand why it would span if ep->blob_offset is non zero ?
Could you also help me understand what is the difference between logical_offset and blob_offset within an extent ?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

blob_offset means this Extent points to the interior of the blob, not the left-hand side. That means that if we put a shard boundary starting at ep->logical_offset, the blob would span the boundary.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants