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: prevent extent merging across shard boundaries #11216
Conversation
We cannot have a single extent span a shard boundary. If we reach a shard boundary, stop merging extents. Note that it might be better to move the shard boundary, but it is awkward to force that to happen at this point. Signed-off-by: Sage Weil <sage@redhat.com>
Signed-off-by: Sage Weil <sage@redhat.com>
retest this please |
1 similar comment
retest this please |
@liewegas I am seeing the following rocksdb tx after 1 hour run of 4K RW. 2016-09-26 14:25:00.624709 7fb8ddbaa700 30 submit_transaction Rocksdb transaction: out of that spanning blob part is 4689. |
On Mon, 26 Sep 2016, somnathr wrote:
Right
The spanning blobs should normally be small. The current exception seems But it will take a bit of tuning.. we need to make sure the max blob size OR, we could make the reshard smart enough to cleave an uncompressed |
|
||
// identify the *next* shard | ||
auto pshard = shards.begin(); | ||
while (pshard != shards.end() && |
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.
Really should assert that p != end(). Not sure if seek_lextent really guarantees it. But if it doesn't things will really go south when you do n = p+1 later :(
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.
seek_lextent doesn't guarantee that and that's why all the caller of seek_lextent() has a end check except this.
We should add that check or assert here I agree.
We cannot have a single extent span a shard boundary. If we reach
a shard boundary, stop merging extents.
Note that it might be better to move the shard boundary, but it is
awkward to force that to happen at this point.
Signed-off-by: Sage Weil sage@redhat.com