Alex Ainscow [Thu, 23 Jan 2025 16:56:25 +0000 (16:56 +0000)]
interval_set: Fix test_interval_set.cc
Here we duplicate all the original tests which used "insert" to verify they also pass with "union_insert". All new tests are modified to use "union_of" and "union_insert"
Alex Ainscow [Thu, 23 Jan 2025 09:28:09 +0000 (09:28 +0000)]
interval_set: Add back insert()
A reviewer (see github) was concerned that the policing provided by insert() may have been required for some applications of insert_set. As such, I have re-instated the old insert method and instead refactored "union_insert". IU have also enhanced the comments.
Alex Ainscow [Wed, 8 Jan 2025 22:18:35 +0000 (22:18 +0000)]
interval_set: erase and subtract enhancements
The old erase would only allow intervals which exist to be erased. It is often useful to erase any interval, even if it does not exist or partially overlaps one or many intervals.
Alex Ainscow [Wed, 8 Jan 2025 22:16:49 +0000 (22:16 +0000)]
interval_set: Enhancements to improve efficiency of insert() and to allow more flexibility.
The old insert was restrictive in ranges that could be added in. The new interface allows for a range to be added, whether it extends or joins other intervals.
Also change a number of interfaces to use the new insert.
Alex Ainscow [Wed, 8 Jan 2025 22:04:56 +0000 (22:04 +0000)]
interval_map: Add interfaces for getting start/end and lower ranges.
These new utilities add the ability to:
get_lower_range: Return the lowest interval iterator which covers the specified range
get_start_off(): return the first offset in the interval.
get_end_off(): Return the end offset of the last interval
contains(): Return true if specified is entirely contained within the interval map.
Zac Dover [Sat, 18 Jan 2025 04:04:14 +0000 (14:04 +1000)]
doc/cephfs: edit disaster-recovery-experts (3 of x)
Edit the fifth and sixth sections of
doc/cephfs/disaster-recovery-experts.rst in preparation for adding
deeper explanations of the contexts in which one should use the various
commands listed on that page.
The sections edited in this commit are
- MDS Map Reset
- Recovery From Mission Metadata Objects
Zac Dover [Sun, 19 Jan 2025 12:49:52 +0000 (22:49 +1000)]
doc/cephfs: disaster-recovery-experts cleanup
Properly wrap a poorly-formatted paragraph that looks just awful in an
80-column viewport and change MDS to "MDS daemons" where the latter
makes the sentence a lot clearer.
Zac Dover [Fri, 17 Jan 2025 12:33:49 +0000 (22:33 +1000)]
doc/cephfs: edit disaster-recovery-experts (2 of x)
Edit the third and fourth sections of
doc/cephfs/disaster-recovery-experts.rst in preparation for adding
deeper explanations of the contexts in which one should use the various
commands listed on that page.
Follows https://github.com/ceph/ceph/pull/61426
https://tracker.ceph.com/issues/69557
Co-authored-by: Anthony D'Atri <anthony.datri@gmail.com> Signed-off-by: Zac Dover <zac.dover@proton.me>
Zac Dover [Fri, 17 Jan 2025 12:23:17 +0000 (22:23 +1000)]
doc/cephfs: remove link to undeveloped tool
Remove a link to a tracker for a planned-but-never-developed tool that
would have facilitated the importation or exportation of a RADOS pool to
a file. This is a part of a project to improve the CephFS Disaster
Recovery documentation, which was requested by Eugen Block. See the
tracker issue below for more on this project.
Follows https://github.com/ceph/ceph/pull/61411
See https://github.com/ceph/ceph/pull/61411#discussion_r1918525109
Zac Dover [Thu, 16 Jan 2025 11:51:46 +0000 (21:51 +1000)]
doc/cephfs: edit disaster-recovery-experts
Edit the first two sections of doc/cephfs/disaster-recovery-experts.rst
in preparation for adding deeper explanations of the contexts in which
one should use the various commands listed on that page.
Vallari Agrawal [Mon, 13 Jan 2025 11:05:27 +0000 (16:35 +0530)]
mon: do not show nvmeof in 'ceph versions' output
NVMeoF gateway version is independent of ceph version
so 'ceph version' shows wrong nvmeof version in output
(i.e. instead of gateway version, it shows Ceph version).
Hence, remove nvmeof in 'ceph versions' output.
To check for gateway version, use 'gw info' command.
Seena Fallah [Sun, 3 Nov 2024 22:18:57 +0000 (23:18 +0100)]
rgw: update attrs with replication status to reflect in response
In handle_replication_status_header() when the COMPLETED status is
being set to object's attr, it needs to be reflected to the current
live attrs for the corresponding request so it can be reflected in
the first try than the second.
Seena Fallah [Mon, 28 Oct 2024 01:06:53 +0000 (02:06 +0100)]
rgw: set dest bucket id in bucket sync checkpoint
bucket_source_sync_checkpoint() requires bucket id to lookup for
full-sync object and the dest pipe doesn't have it. by replcaning
the bucket key in the pipe with the bucket info we will ensure the
bucket id is set.
This commit updates RGW Config Reference - Lifecycle Settings section. In particular it changes the section where two different tunings for two different workloads are suggested. It aims for a more understandable description as asked by the contributors.
Ronen Friedman [Thu, 9 Jan 2025 17:06:37 +0000 (11:06 -0600)]
common: fix md_config_cacher_t
In its get_tracked_conf_keys() member function, the
cacher (in the existing code) initializes a static
function-block variable ('keys'), and uses it for
registering the observer.
But the cacher is instantiated on the type of
the configuration value. Thus, multiple cacher
objects for which the configuration values are
of the same type - share the static 'keys'. Only
one of the observers is registered.
Note that the code could have been simplified
somewhat, if the signature of the
get_tracked_conf_keys() function
was changed to return 'const char* const *'.
Yuri Weinstein [Mon, 13 Jan 2025 13:32:04 +0000 (05:32 -0800)]
Merge pull request #60278 from rzarzynski/wip-os-fastomapiter
os, osd: bring the lightweight OMAP iteration
Reviewed-by: Casey Bodley <cbodley@redhat.com> Reviewed-by: Matan Breizman <Matan.Brz@gmail.com> Reviewed-by: Mark Kogan <mkogan@redhat.com> Reviewed-by: Adam Kupczyk <akupczyk@redhat.com> Reviewed-by: Samuel Just <sjust@redhat.com>
Adam Kupczyk [Fri, 10 Jan 2025 08:26:54 +0000 (08:26 +0000)]
os/bluestore: Fix BlueFS::truncate()
In `struct bluefs_fnode_t` there is a vector `extents` and
the vector `extents_index` that is a log2 seek cache.
Until modifications to truncate() we never removed extents from files.
Modified truncate() did not update extents_index.
For example 10 extents long files when truncated to 0 will have:
0 extents, 10 extents_index.
After writing some data to file:
1 extents, 11 extents_index.
Now, `bluefs_fnode_t::seek` will binary search extents_index,
lets say it located seek at item #3.
It will then jump up from #0 extent (that exists) to #3 extent which
does not exist at.
The worst part is that code is now broken, as #3 != extent.end().
There are 3 parts of the fix:
1) assert in `bluefs_fnode_t::seek` to protect against
jumping outside extents
2) code in BlueFS::truncate to sync up `extents_index` with `extents`
3) dampening down assert in _replay to give a way out of cases
where incorrect "offset 12345" (12345 is file size) instead of
"offset 20000" (allocations occupied) was written to log.
Fixes: https://tracker.ceph.com/issues/69481 Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>