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

nautilus: os/bluestore: support RocksDB prefetch in buffered read mode #28962

Merged
merged 6 commits into from Jul 31, 2019

Conversation

@ifed01
Copy link
Contributor

commented Jul 10, 2019

Backports: #27782
No tracker.

Signed-off-by: Igor Fedotov ifedotov@suse.com

  • References tracker ticket
  • Updates documentation if necessary
  • Includes tests for new functionality or reproducer for bug
ifed01 added 5 commits Oct 25, 2018
os/bluestore: optimize mapping offset to extent in BlueFS.
Signed-off-by: Igor Fedotov <ifedotov@suse.com>
(cherry picked from commit dce3e2f)
os/bluestore: log 'buffered' in KernelDevice::read_random
Signed-off-by: Igor Fedotov <ifedotov@suse.com>
(cherry picked from commit 4f89409)
os/bluestore: call BlueFS::_init_logger earlier.
So one can use perf counters during log replay.

Signed-off-by: Igor Fedotov <ifedotov@susu.com>
(cherry picked from commit baee044)
os/bluestore: support RocksDB prefetching at BlueFS
Signed-off-by: Igor Fedotov <ifedotov@suse.com>
(cherry picked from commit f37cb01)
os/bluestore: protect BlueFS::FileReader::buf
Now this buffer might be accessed from BlueRocksRandomAccessFile
which is intended for multi-threading access. Hence we need a
proper protection for the buffer.

Signed-off-by: Igor Fedotov <ifedotov@suse.com>
(cherry picked from commit 0543559)

@ifed01 ifed01 requested a review from liewegas Jul 10, 2019

@ifed01 ifed01 added this to the nautilus milestone Jul 10, 2019

while (len > 0) {
size_t left;
if (off < buf->bl_off || off >= buf->get_buf_end()) {
s_lock.unlock();
std::unique_lock u_lock(h->lock);

This comment has been minimized.

Copy link
@liewegas

liewegas Jul 10, 2019

Member

this looks wrong. if we drop and retake the lock, don't we need to revalidate the conditions checked above?

This comment has been minimized.

Copy link
@ifed01

ifed01 Jul 12, 2019

Author Contributor

You're right. See #29012 for the fix.

This comment has been minimized.

Copy link
@ifed01

ifed01 Jul 23, 2019

Author Contributor

@liewegas - fix has been cherry-picked from #29012

os/bluestore: proper locking for BlueFS prefetching
Signed-off-by: Igor Fedotov <ifedotov@suse.com>
(cherry picked from commit c396897)
@yuriw

This comment has been minimized.

Copy link
Contributor

commented Jul 24, 2019

@yuriw

This comment has been minimized.

Copy link
Contributor

commented Jul 30, 2019

test this please

@jdurgin jdurgin merged commit aa9d616 into ceph:nautilus Jul 31, 2019

3 of 4 checks passed

Signed-off-by one or more commits in this PR are not signed
Details
Docs: build check OK - docs built
Details
Unmodified Submodules submodules for project are unmodified
Details
make check make check succeeded
Details

@ifed01 ifed01 deleted the ifed01:wip-ifed-kv-prefetch-nau branch Jul 31, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
5 participants
You can’t perform that action at this time.