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
cls/cmpomap: add cls module for CMPXATTR-like functionality in omap #33982
Conversation
ef00830
to
d8e0204
Compare
see the rgw_error_repo_ primitives in #34094 for the motivating use case |
d8e0204
to
ef98b72
Compare
709f84b
to
bc15cd3
Compare
@yuvalif i pushed an update that changes the interfaces so that the Mode and Op are specified once per call, rather than for each key. i also added a |
Signed-off-by: Casey Bodley <cbodley@redhat.com>
Signed-off-by: Casey Bodley <cbodley@redhat.com>
this was defined in osd/objclass.cc but not declared in objclass/objclass.h Signed-off-by: Casey Bodley <cbodley@redhat.com>
add an objclass api for CEPH_OSD_OP_OMAPGETVALSBYKEYS Signed-off-by: Casey Bodley <cbodley@redhat.com>
provides a cmp_vals() op similar to librados' omap_cmp(), but with full support for the comparison modes and operations from cmpxattr(). if any of the requested key/value comparisons are unsuccessful, the op fails with -ECANCELED cmp_vals() can be composed with other ops like set_omap_vals() to make make them conditional on the successful comparison of all existing values also provides cmp_set_vals() and cmp_rm_keys(), which apply a mutation to only the keys that compare successfully. these enable batch operations where, unlike cmp_vals() + set_omap_vals(), you don't want one failed comparison to prevent operations on unrelated keys Signed-off-by: Casey Bodley <cbodley@redhat.com>
Signed-off-by: Casey Bodley <cbodley@redhat.com>
Signed-off-by: Casey Bodley <cbodley@redhat.com>
3fe8f98
to
e1acaef
Compare
the newly added test fails. i filed https://tracker.ceph.com/issues/45113 |
provides a
cmp_vals()
op similar to librados'omap_cmp()
, but with full support for the comparison modes and operations fromcmpxattr()
. if any of the requested key/value comparisons are unsuccessful, the op fails with-ECANCELED
cmp_vals()
can be composed with other ops likeset_omap_vals()
to make make them conditional on the successful comparison of all existing valuesalso provides
cmp_set_vals()
andcmp_rm_keys()
, which apply a mutation to only the keys that compare successfully. these enable batch operations where, unlikecmp_vals() + set_omap_vals()
, you don't want one failed comparison to prevent operations on unrelated keysChecklist
Show available Jenkins commands
jenkins retest this please
jenkins test crimson perf
jenkins test signed
jenkins test make check
jenkins test make check arm64
jenkins test submodules
jenkins test dashboard
jenkins test dashboard backend
jenkins test docs
jenkins render docs
jenkins test ceph-volume all
jenkins test ceph-volume tox