| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| | |
osd: make the chunking in e.g. PG deletion controlable
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The motivation behind this patch is to let users control
the number of sweeps / number of objects per sweep during
PG deletion which is currently restricited to `64` at max.
```
std::pair<ghobject_t, bool> PG::do_delete_work(
ObjectStore::Transaction &t,
ghobject_t _next)
{
// ...
int max = std::min(osd->store->get_ideal_list_max(),
(int)cct->_conf->osd_target_transaction_size);
```
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
|
| |
| |
| |
| | |
Signed-off-by: Igor Fedotov <igor.fedotov@croit.io>
|
|\ \
| |/
|/|
| |
| |
| | |
osd: only call stat/getattrs once per object during deep-scrub
Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Passing in a non-empty map would otherwise exhibit quite unexpected
behavior. For the bufferptr overload, any preexisting entries would
not be overwritten due to how std::map::emplace behaves. For the
bufferlist overload, it would result in appending to any pre-existing
entries.
The prior commit cleans up one such inadvertent caller which resulted
in the below bug.
Fixes: https://tracker.ceph.com/issues/65185
Signed-off-by: Samuel Just <sjust@redhat.com>
|
|/
|
|
|
|
|
| |
for operations which permit that.
This provides additional chances to access corrupted object store.
Signed-off-by: Igor Fedotov <igor.fedotov@croit.io>
|
|
|
|
|
|
| |
This is a common method to refresh Object Store performance counters.
Signed-off-by: Igor Fedotov <igor.fedotov@croit.io>
|
|
|
|
| |
Signed-off-by: Igor Fedotov <igor.fedotov@croit.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
quiesce all activities and destage allocations to disk before killing the OSD
1) keep the old (unsafe) fast-shutdown when we are not using NCB (non null-manager())
2) skip service.prepare_to_stop() which can take as much as 10 seconds
3) skip debug options in fast-shutdown
4) set_state(STATE_STOPPING) which will stop accepting new tasks to this OSD
5) clear op_shardedwq queues, this is safe since we didn't started processing them
6) stop timer
7) drain osd_op_tp (no new items will be added)
8) now we can safely call umount which will close_db/bluefs and will destage allocation to disk
9) skip _shutdown_cache() when we are in the middle of a fast-shutdown
10) increase debug level on fast-shutdown
11) add option for bluestore_qfsck_on_mount to force scan on mount for all tests
12) disable fsck-on-umount when running fast-shutdown
13) add an option to increase debug level at fast-shutdown umount()
14) set a time limit to fast-shutdown
15) Bug-Fix BlueStore::pool_statfs don't access db after it was removed
16) Fix error message for qfsck (error was caused by PR https://github.com/ceph/ceph/pull/44563)
17) make shutdown-timeout configurable
Fixes: https://tracker.ceph.com/issues/53266
Signed-off-by: Gabriel Benhanokh <gbenhano@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The goals here are:
1. make deprecation of `FileStore` easier as creational
dependencies are segmented into a variant of `create()`
that could be cut off altogether with `FileStore`.
2. Allow crimson adapt `create()` without burdening it with
`FileStore`'s dependencies.
3. Simplify the implementation as a bunch of preprocessor
directives accumulated there over the time.
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
for two reasons:
- better performance when looking on in the return map if the key
is not a string, as we don't need to create a temporary string
as the key
- improve the performance of crimson::AlienStore, as the latter
uses the transparent comparator. as, without this change, we'd
have to perform a deep copy to fill up the returned map with
its non-transparent-comparator version.
Signed-off-by: Kefu Chai <kchai@redhat.com>
|
|
|
|
| |
Signed-off-by: wangyunqing <wangyunqing@inspur.com>
|
|
|
|
|
|
|
|
|
| |
instead of returning a raw pointer of ObjectStore, let
`ObjectStore::create()` return a `std::unique_ptr<ObjectStore>`.
less error prune this way.
Signed-off-by: Kefu Chai <kchai@redhat.com>
|
|
|
|
|
|
| |
which provides the old collection_list behaviour on the bluestore.
Signed-off-by: Mykola Golub <mgolub@suse.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We're going to stub certain modules and functions for Windows builds.
Some of them will be implemented in subsequent commits, some are platform
specific and will be skipped.
Modules:
* module.c
* subprocess.cc
* blkdev.cc
* dns_resolve.cc
* numa.cc
* syslog.h
* statvfs.h
* libblk
* neorados
Functions:
x signal functions
x fork
x chown
* socketpair_cloexec
* dump_open_fds
* run_cmd
* is_symlink
* CInode::d_type
* nbd commands
Signed-off-by: Lucian Petrut <lpetrut@cloudbasesolutions.com>
Signed-off-by: Alin Gabriel Serdean <aserdean@cloudbasesolutions.com>
|
|
|
|
|
|
|
| |
This is part of a series of commits to clean up using namespace at top
level in headers.
Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
|
|
|
|
|
|
|
|
| |
Part of a changeset to allow building all of 'common' without relying
on 'using namespace std' or 'using namespace ceph' at toplevel in
headers.
Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
|
|
|
|
|
|
|
|
|
|
| |
used by crimson::alienstore. as crimson is not using
`ObjectStore::get_omap_iterator()` for implementing
CEPH_OSD_OP_OMAPGETVALS op. instead, it's using a paged variant of
`ObjectStore::omap_get_values()`, which only exists in
CyanStore before this change.
Signed-off-by: Chunmei Liu <chunmei.liu@intel.com>
|
|
|
|
|
|
|
|
|
|
| |
some code coexist in crimson seastar environment and posix environment,
so add namespace to avoid same function conflict, for example add namespace
for CephContext, since the new namespace for classic ceph-osd,
need modify all files declare use CephContext by including "common_fwd.h"
which defined the namespace for each environment.
Signed-off-by: Chunmei Liu <chunmei.liu@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Also, don't allow children to set nref (to 0). This is the more significant
change as it required fixing various code to not do this:
<reftype> ptr = new RefCountedObjectFoo(..., 0);
as a way to create a starting reference with nref==1. This is a pretty
bad code smell so I've converted all the code doing this to use the new
factory method which produces the reference safely:
auto ptr = ceph::make_ref<RefCountedObjectFoo>(...);
libradosstriper was particularly egregious in its abuse of setting the starting
nref. :(
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
|
|
|
|
| |
Signed-off-by: Igor Fedotov <ifedotov@suse.com>
|
|\
| |
| |
| |
| | |
os, osd: readv
Reviewed-by: Sage Weil <sage@redhat.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Currently only works for bluestore.
The default version still reads each extent separately synchronously,
but I think that should not be a concern?
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
|
|/
|
|
| |
Signed-off-by: Kefu Chai <kchai@redhat.com>
|
|
|
|
| |
Signed-off-by: Sage Weil <sage@redhat.com>
|
|
|
|
| |
Signed-off-by: Mykola Golub <mgolub@suse.com>
|
|
|
|
|
|
| |
Transaction is needed in crimson, but not ObjectStore.
Signed-off-by: Samuel Just <rexludorum@gmail.com>
|
|
|
|
|
|
| |
Supported for BlueStore only.
Signed-off-by: Igor Fedotov <ifedotov@suse.com>
|
|
|
|
| |
Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
|
|
|
|
| |
Signed-off-by: Igor Fedotov <ifedotov@suse.com>
|
|
|
|
| |
Signed-off-by: Sage Weil <sage@redhat.com>
|
|
|
|
|
|
|
| |
This reverts commit 22f73ba62eb1fe337622ea2aefdcd829f8def851.
Fixes: http://tracker.ceph.com/issues/37774
Signed-off-by: Kefu Chai <kchai@redhat.com>
|
|\
| |
| |
| |
| | |
os/objectstore: add a new op OP_CREATE.
Reviewed-by: Sage Weil <sage@redhat.com>
|
| |
| |
| |
| |
| |
| | |
For OP_CREATE in bluestore mean node didn't exist, so skip search form kvdb.
Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
|
| |
| |
| |
| | |
Signed-off-by: Igor Fedotov <ifedotov@suse.com>
|
| |
| |
| |
| | |
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
|
|/
|
|
| |
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
| |
This could be useful as the used `::append(const ptr&)` variant does
not provide any measures (like coalescing adjacent bptrs) to prevent
inflation of the internal structures of a bufferlist. That is, each
call was reflected in dynamic node allocation for the `_buffers` list.
Secondary effect of this behavior is increased iteration cost driven
by large number of elements likely scattered over memory.
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
|
|\
| |
| |
| |
| |
| |
| | |
* refs/pull/24473/head:
common: drop get_contiguous() from ceph::bufferlist.
Reviewed-by: Sage Weil <sage@redhat.com>
|
| |
| |
| |
| | |
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
|
| |
| |
| |
| | |
Signed-off-by: Mohamad Gebai <mgebai@suse.com>
|
| |
| |
| |
| | |
Signed-off-by: Mohamad Gebai <mgebai@suse.com>
|
| |
| |
| |
| | |
Signed-off-by: Mohamad Gebai <mgebai@suse.com>
|
| |
| |
| |
| |
| |
| | |
Fixes: http://tracker.ceph.com/issues/24176
Signed-off-by: Mohamad Gebai <mgebai@suse.com>
|
| |
| |
| |
| | |
Signed-off-by: Kefu Chai <kchai@redhat.com>
|
|/
|
|
| |
Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
|
|
|
|
| |
Signed-off-by: Sage Weil <sage@redhat.com>
|
|
|
|
| |
Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
|
|
|
|
| |
Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
|
|
|
|
|
|
|
| |
Help make the comments clearer by correcting a few mistakes when
describing a transaction.
Signed-off-by: Bryan Stillwell <bstillwell@godaddy.com>
|