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

rados: add option to include clones when doing flush or evict #9698

Merged
merged 3 commits into from Jul 11, 2016

Conversation

LiumxNL
Copy link
Contributor

@LiumxNL LiumxNL commented Jun 14, 2016

if a cache tier has snaps, or image existing in the pool has self-manage snaps,after io workload, there maybe lots of clone objects. in current logic, when excuting "rados cache-flush", will get an -EBUSY error if clone objects is dirty. when excuting "rados cache-evcit" will get an -EBUSY error if clone exists. it's not very comfortable to flush/evict clones one by one, in addition, for self-manage snapshot, like rbd snapshot, we cannot specify snap in rados command tool. this patch make all these older clones to be flushing/evicting when excuting "rados cache-flush/evict", after clones has flushed/evicted, the op will go through.

Signed-off-by: Mingxin Liu mingxin@xsky.com

@LiumxNL
Copy link
Contributor Author

LiumxNL commented Jun 21, 2016

@liewegas would you like to take a look? thanks!

@athanatos
Copy link
Contributor

There is an operation which exposes the existing snapshots on an object. I'd prefer to use that along with the existing cache/flush operations to flush the clones. If you want to make this easier in the rados tool, I think the logic should be implemented entirely in the tool without messing with the actual OSD-side code.

…ush-evict-all"

Signed-off-by: Mingxin Liu <mingxin@xsky.com>
@LiumxNL
Copy link
Contributor Author

LiumxNL commented Jun 27, 2016

@athanatos updated, please review, thanks a lot.

@@ -220,6 +220,8 @@ void usage(ostream& out)
" --read-percent percent of operations that are read\n"
" --target-throughput target throughput (in bytes)\n"
" --run-length total time (in seconds)\n"
"CACHE POOLS OPTIONS:\n"
" --with-clones include its elder clones to flush/evict\n"
Copy link
Member

Choose a reason for hiding this comment

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

include clones when doing flush or evict

@liewegas
Copy link
Member

liewegas commented Jul 2, 2016

Aside from the usage string, this looks good!

@liewegas liewegas changed the title Fix clones flush evict rados: add option to include clones when doing flush or evict Jul 2, 2016
@LiumxNL
Copy link
Contributor Author

LiumxNL commented Jul 3, 2016

@liewegas thanks!

…sh/cache-evict

Signed-off-by: Mingxin Liu <mingxin@xsky.com>
Signed-off-by: Mingxin Liu <mingxin@xsky.com>
@tchaikov tchaikov merged commit 90a18d8 into ceph:master Jul 11, 2016
@tchaikov
Copy link
Contributor

tested in http://pulpito.ceph.com/kchai-2016-07-10_07:48:29-rados-wip-kefu-testing---basic-mira/

the non-environmental failures are addressed by #10234 .

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