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

osd: support cmpext operation on EC-backed pools #15693

Merged
merged 5 commits into from Jul 25, 2017

Conversation

Projects
None yet
5 participants
@dillaman
Contributor

dillaman commented Jun 14, 2017

Slightly refactored COPY_FROM and async read handling to utilize a common approach to re-execute the OpContext. The CMPEXT operation can now perform an async read when on an EC pool and later block the guarded write should the compare fail.

@dillaman

This comment has been minimized.

Contributor

dillaman commented Jun 14, 2017

This PR blocks #14868

@dillaman dillaman changed the title from osd: support cmpext operation on EC-backed pools to [DNM]osd: support cmpext operation on EC-backed pools Jun 14, 2017

@dillaman dillaman changed the title from [DNM]osd: support cmpext operation on EC-backed pools to osd: support cmpext operation on EC-backed pools Jun 15, 2017

@dillaman

This comment has been minimized.

Contributor

dillaman commented Jun 27, 2017

retest this please

@liewegas

This comment has been minimized.

Member

liewegas commented Jul 6, 2017

needs rebase

@liewegas liewegas added this to the luminous milestone Jul 6, 2017

@dillaman

This comment has been minimized.

Contributor

dillaman commented Jul 6, 2017

@liewegas rebased

@liewegas

This comment has been minimized.

Member

liewegas commented Jul 19, 2017

2017-07-19T03:15:38.275 INFO:tasks.workunit.client.0.smithi040.stdout:                 api_tier: checking fo        api_aio: To be equal to: ret
2017-07-19T03:15:38.275 INFO:tasks.workunit.client.0.smithi040.stdout:                  api_aio:       Which is: -4095
2017-07-19T03:15:38.275 INFO:tasks.workunit.client.0.smithi040.stdout:                  api_aio: /build/ceph-12.1.1-156-g9345f8b/src/test/librados/aio.cc:4197: Failure
2017-07-19T03:15:38.275 INFO:tasks.workunit.client.0.smithi040.stdout:                  api_aio:       Expected: 0
2017-07-19T03:15:38.275 INFO:tasks.workunit.client.0.smithi040.stdout:                  api_aio: To be equal to: rd_cmpext_cmpl->get_return_value()
2017-07-19T03:15:38.276 INFO:tasks.workunit.client.0.smithi040.stdout:                  api_aio:       Which is: -4095
2017-07-19T03:15:38.276 INFO:tasks.workunit.client.0.smithi040.stdout:                  api_aio: /build/ceph-12.1.1-156-g9345f8b/src/test/librados/aio.cc:4198: Failure
2017-07-19T03:15:38.276 INFO:tasks.workunit.client.0.smithi040.stdout:                  api_aio:       Expected: 0
2017-07-19T03:15:38.276 INFO:tasks.workunit.client.0.smithi040.stdout:                  api_aio: To be equal to: ret
2017-07-19T03:15:38.276 INFO:tasks.workunit.client.0.smithi040.stdout:                  api_aio:       Which is: -4095
2017-07-19T03:15:38.276 INFO:tasks.workunit.client.0.smithi040.stdout:                  api_aio: [  FAILED  ] LibRadosAio.RoundTripCmpExtPP2 (3424 ms)

/a/sage-2017-07-19_02:35:42-rados-wip-sage-testing-distro-basic-smithi/1415059

@dillaman

This comment has been minimized.

Contributor

dillaman commented Jul 21, 2017

@liewegas fixed -- but I am going to re-run through teuthology tomorrow.

dillaman and others added some commits Jun 14, 2017

osd: generic async operation finisher handler
The COPY_FROM operation has a custom data path for restarting
itself after the read has completed. The CMPEXT operation will
need similar restart handling when running on EC pools so that
it can guard ops after an async read completes.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
osd: migrated async reads to op finisher
Once an async read completes, the OpContext is re-executed.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
osd: OpContext ops should be passed as a pointer instead of reference
It's currently being provided a bogus memory reference by 'simple_opc_create'.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
osd: fix cmpext bug
Signed-off-by: Zhengyong Wang <wangzhengyong@cmss.chinamobile.com>
osd: support cmpext operation on EC-backed pools
The forthcoming RBD compare_and_write operation needs to
support this operation when blocks are stored on an EC
pool.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>

@jdurgin jdurgin merged commit 5a1f595 into ceph:master Jul 25, 2017

4 checks passed

Signed-off-by all commits in this PR are signed
Details
Unmodified Submodules submodules for project are unmodified
Details
make check make check succeeded
Details
make check (arm64) make check succeeded
Details

@dillaman dillaman deleted the dillaman:wip-osd-cmpext-ec-pool branch Jul 25, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment