Commit Graph

110503 Commits

Author SHA1 Message Date
Casey Bodley
9826a11514 rgw: DataSyncSingleEntry loops based on progress
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2020-04-13 14:08:18 -04:00
Casey Bodley
b65b5b5a9f rgw: DataSyncSingleEntry does not duplicate bucket sync
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2020-04-13 14:08:18 -04:00
Casey Bodley
04dc0d0d77 rgw: DataSyncSingleEntry takes cached state
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2020-04-13 14:08:18 -04:00
Casey Bodley
a7d859ed2d test/rgw: add unittest_rgw_bucket_sync_cache
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2020-04-13 14:08:18 -04:00
Casey Bodley
8fdde41118 rgw: add data sync cache for bucket shards
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2020-04-13 14:08:18 -04:00
Casey Bodley
dec531ad88 rgw: track last timestamp written for bucket sync
bucket sync remembers the latest timestamp that it successfully wrote to
the bucket sync status. data sync can use this to make future decisions
without having to reread its sync status

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2020-04-13 14:08:18 -04:00
Mykola Golub
0bcaa26151 mgr/rbd_support: attempt to unregister watcher on mgr exit
Signed-off-by: Mykola Golub <mgolub@suse.com>
2020-04-13 18:47:35 +01:00
Mykola Golub
69259c8d37 mgr/rbd_support: make mirror_snapshot_schedule rescan only updated pools
Signed-off-by: Mykola Golub <mgolub@suse.com>
2020-04-13 18:45:41 +01:00
Kefu Chai
9eef41235a
Merge pull request #33989 from ifed01/wip-ifed-better-bluefs-expand
os/bluestore: open DB in read-only when expanding DB/WAL.

Reviewed-by: Adam Kupczyk <akucpzyk@redhat.com>
2020-04-14 00:28:22 +08:00
Kefu Chai
9070f9c90b
Merge pull request #33782 from aclamk/wip-alloc-aging-logging-simpler
os/bluestore: Simplified logic of sliding window.

Reviewed-by: Igor Fedotov <ifedotov@suse.com>
2020-04-14 00:25:43 +08:00
Kefu Chai
a79fc42188
Merge pull request #33434 from ifed01/wip-ifed-big-writes-deferred
os/bluestore: go deferred for 'big' writes.

Reviewed-by: Adam Kupczyk <akupczyk@redhat.com>
2020-04-14 00:25:24 +08:00
Kefu Chai
153f70c09f
Merge pull request #33715 from trociny/wip-pybind-rados-watch
pybind/rados: add watch object bindings

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
2020-04-14 00:23:21 +08:00
Casey Bodley
0f16f13af8 rgw: store timestamp in InitBucketShardSyncStatus
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2020-04-13 11:06:46 -04:00
Casey Bodley
217f57ebaa rgw: add struct data_sync_obligation
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2020-04-13 11:06:46 -04:00
Casey Bodley
dc533b9c16 rgw: add sync_single_entry() helper function
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2020-04-13 11:06:46 -04:00
Casey Bodley
1ebe74ee8e rgw: use optional for DataSyncShardMarkerTrack
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2020-04-13 11:06:46 -04:00
Casey Bodley
5b97f04d37 rgw: parse bucket-shard before DataSyncSingleEntry
it's easier for DataSyncShard to handle parsing failures before calling
MarkerTrack::start() and DataSyncSingleEntry

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2020-04-13 11:06:46 -04:00
Casey Bodley
d03fa0d310 rgw: data sync tracks timestamps for error repo
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2020-04-13 11:06:46 -04:00
Casey Bodley
59df17f1d9 rgw: add error repo primitives with timestamp comparisons
the sync error repo stores omap keys for each datalog entry that needs a
retry. this adds a new primitive for that, that also stores a timestamp
with each omap key, and will only allow overwrites/removals when a newer
timestamp is provided

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2020-04-13 11:06:46 -04:00
Casey Bodley
cbd2f7cf13 rgw: DataSyncShardCR uses GetOmapVals
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2020-04-13 11:06:46 -04:00
Casey Bodley
5a64703fd6 rgw: add CR for omap_get_vals()
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2020-04-13 11:06:46 -04:00
Casey Bodley
cfbd5807dd rgw: incremental bucket sync status stores timestamp
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2020-04-13 11:06:46 -04:00
Casey Bodley
01c601fb72 common: add [coarse_]real_time support to ceph_json.h
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2020-04-13 11:06:46 -04:00
Casey Bodley
af2114a69b rgw: don't write to error repo for async notification failures
async notifications are just hints, and don't imply an obligation to
sync the bucket shard. if we fail to sync, don't write it to the error
repo for retry. we'll see the change later when processing the datalog

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2020-04-13 11:06:46 -04:00
Casey Bodley
703e40348a rgw: remove unused RGWWaitCR
coroutines that want to sleep should just call RGWCoroutine::wait()

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2020-04-13 11:06:46 -04:00
Casey Bodley
3f2e593120
Merge pull request #33982 from cbodley/wip-cls-cmpomap
cls/cmpomap: add cls module for CMPXATTR-like functionality in omap

Reviewed-by: Yuval Lifshitz <yuvalif@yahoo.com>
2020-04-13 11:03:28 -04:00
Varsha Rao
5b34a9bbf5 doc/SubmittingPatches: Fix 'Fixes line' hyperlink
Signed-off-by: Varsha Rao <varao@redhat.com>
2020-04-13 19:29:35 +05:30
Casey Bodley
e1acaef311 options: add cmpomap to osd_class_load_list
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2020-04-13 09:23:44 -04:00
Casey Bodley
577f211391 test: add ceph_test_cls_cmpomap
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2020-04-13 09:23:44 -04:00
Casey Bodley
3d5c8e982e cls/cmpomap: add cls module for CMPXATTR-like functionality in omap
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>
2020-04-13 09:23:44 -04:00
Casey Bodley
68b02d9510 objclass: add cls_cxx_map_get_vals_by_keys
add an objclass api for CEPH_OSD_OP_OMAPGETVALSBYKEYS

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2020-04-13 09:23:44 -04:00
Casey Bodley
ad990e8307 objclass: expose cls_cxx_map_get_val in header
this was defined in osd/objclass.cc but not declared in objclass/objclass.h

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2020-04-13 09:23:44 -04:00
Casey Bodley
fd760174b5 buffer: add missing != operator for bufferlist
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2020-04-13 09:23:44 -04:00
Casey Bodley
9f10d87318 buffer: comparison operators take const bufferlist&
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2020-04-13 09:23:44 -04:00
Igor Fedotov
28c8e6e643 crimson: add HybridAllocator to alienstore build.
Signed-off-by: Igor Fedotov <ifedotov@suse.com>
2020-04-13 16:23:01 +03:00
Igor Fedotov
c27490e3d6 os/bluestore: improve adjustent extents merge in hybrid allocatoc
Bitmap counterpart is inspected for adjustent free extents when
releasing extent and trying to add it to AVL tree.

Signed-off-by: Igor Fedotov <ifedotov@suse.com>
2020-04-13 16:16:07 +03:00
Igor Fedotov
cccbc62528 os/bluestore: remove HybridAllocator::init_add_free method.
It's a 100% replica of AvlAllocator one which is inherited.

Signed-off-by: Igor Fedotov <ifedotov@suse.com>
2020-04-13 16:16:07 +03:00
Igor Fedotov
b682d9a8e8 os/bluestore: configure hybrid allocator threshold to fallback.
Signed-off-by: Igor Fedotov <ifedotov@suse.com>
2020-04-13 16:16:07 +03:00
Igor Fedotov
c90eee3495 os/bluestore: add hybrid (avl+bitmap) allocator
Signed-off-by: Igor Fedotov <ifedotov@suse.com>
2020-04-13 16:16:05 +03:00
Igor Fedotov
21532045ef os/bluestore: do not require min_length to be power of two for bmap
allocator.

Signed-off-by: Igor Fedotov <ifedotov@suse.com>
2020-04-13 16:12:43 +03:00
Igor Fedotov
cccf94da46 os/bluestore: extend AvlAllocator interface.
Signed-off-by: Igor Fedotov <ifedotov@suse.com>
2020-04-13 16:12:43 +03:00
Igor Fedotov
719cd7d942 tests/test_bluestore_types: show AvlAllocator's range_seg_t size.
Extend corresponding test case to be aware of the struct's sizeof.

Signed-off-by: Igor Fedotov <ifedotov@suse.com>
2020-04-13 16:12:43 +03:00
Igor Fedotov
59c0aa5eb4 os/bluestore: make AvlAllocator overridable.
Signed-off-by: Igor Fedotov <ifedotov@suse.com>
2020-04-13 16:12:43 +03:00
Igor Fedotov
efedcc077c os/bluestore: intdoduce spillover mechanics to AvlAllocator.
This to be utilized in AvlAllocator's descendant class(es) to be able
to limit amount of entries allocator tracks. Hence bringing a cap for
RAM used by the allocator.

Signed-off-by: Igor Fedotov <ifedotov@suse.com>
2020-04-13 16:12:43 +03:00
Jeff Layton
ae1bb9d55d
Merge pull request #34455 from jtlayton/wip-44963
client: only set MClientCaps::FLAG_SYNC when flushing dirty auth caps
2020-04-13 07:22:06 -04:00
Jeff Layton
444a4e7f9b
Merge pull request #33761 from jtlayton/wip-44441
doc: document wsync and nowsync mount options in mount.ceph(8)
2020-04-13 07:20:40 -04:00
fanjunwei
ca20021d9e client: fix ceph-fuse parse command line failed
When add config fuse_max_write, then mount got error:
fuse: bad mount point `max_write=1048576': No such file or directory

Signed-off-by: fanjunwei <fanjunwei@t2cloud.net>
2020-04-13 18:17:42 +08:00
Maran Hidskes
115b3d7b7f cephadm: warn when no valid version arguments are supplied to add-repo
Currently add-repo will add a broken repository by default, this commit gives a pretty error to instruct the user to use one of the version arguments.

Fixes #45029

Signed-off-by: Maran Hidskes <maran@protonmail.com>
2020-04-13 10:20:57 +02:00
Xiubo Li
62e9820c3e qa/cephfs: scrub the subdir/ after data scan
This will make sure the rstat between subdir's inode and dirfrag
are matched.

Fixes: https://tracker.ceph.com/issues/44380
Signed-off-by: Xiubo Li <xiubli@redhat.com>
2020-04-13 00:13:35 -04:00
Kefu Chai
b176dcb3f9
Merge pull request #34231 from majianpeng/bluefs-fix-invalidate-cache-bug
os/bluestore: don't foreget invalidate cache of FileReaderBuffer.

Reviewed-by: Igor Fedotov <ifedotov@suse.com>
2020-04-13 11:03:32 +08:00