| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
No functional change, but we'll need this shortly.
Signed-off-by: Sage Weil <sage@redhat.com>
|
|
|
|
|
|
|
|
|
| |
The future goal would be to change the version for each Ceph major
release to ensure C++ applications will need to be recompiled against
the librados C++ API since we don't guarentee ABI stability.
Fixes: https://tracker.ceph.com/issues/38177
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
|
|
|
|
| |
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
|
|
|
|
|
|
|
|
| |
For backwards compatibility and upgrade reasons, the librados2
API needs to be preserved and it needs to continue to be compatible
with dependent libraries like librbd1.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
|
|
|
|
|
|
|
|
| |
This is counter-intuitive and doesn't match the behavior of either
other compare ops (cmpxattr, omap_cmp) or write ops.
Fixes: http://tracker.ceph.com/issues/38383
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
|
|
|
|
| |
Signed-off-by: Sage Weil <sage@redhat.com>
|
|
|
|
|
|
| |
Remove redundant error message
Signed-off-by: David Zafman <dzafman@redhat.com>
|
|
|
|
|
|
|
| |
In fact that's just a workaround for now as we need proper raw_used_rate
present at librados.
Signed-off-by: Igor Fedotov <ifedotov@suse.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes: https://tracker.ceph.com/issues/22159
Fixes: https://tracker.ceph.com/issues/20870
This adds more parameters to estimate allocation granularity overhead and compression
effectiveness. RAW_USED column has been removed. USED column reflects
amount of space allocated for a pool at all replicas. Including
allocaction granularity overhead and taking ompression savings and
object content gaps into account.
Following columns were appended:
* STORED - approximation of bytes users've actually stored in a
pool, i.e netto data amount without compression, allocation and
other overheads (not applicable for 'rados df').
* USED COMPR - amount of bytes allocated to store compressed data, i.e.
compressed data plus allocation/replication overhead.
* UNDER COMPR - amount of data(icluding repicated one) passed through
compression and stored in that form.
Signed-off-by: Igor Fedotov <ifedotov@suse.com>
|
|\
| |
| |
| |
| | |
* refs/pull/23550/head:
auth: Kerberos authentication
|
| |
| |
| |
| | |
Signed-off-by: Daniel Oliveira <doliveira@suse.com> (github: oliveiradan)
|
|/
|
|
|
|
| |
this allows the catcher to retrieve the original error code
Signed-off-by: Casey Bodley <cbodley@redhat.com>
|
|\
| |
| |
| |
| |
| | |
rgw: initial RGWRados refactoring work
Reviewed-by: Casey Bodley <cbodley@redhat.com>
Reviewed-by: Matt Benjamin <mbenjami@redhat.com>
|
| |
| |
| |
| | |
Signed-off-by: Casey Bodley <cbodley@redhat.com>
|
|\ \
| |/
|/|
| |
| | |
librados,rpm,deb: various fixes to address librados3 transition and cleanups in librados
Reviewed-by: Josh Durgin <jdurgin@redhat.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
we have switched from tmap to omap long ago.
but keep the server side implementation around, in case ancient
client is still using these tmap APIs.
also, tmap_update() is kept, because librbd is using it for v1 image
backward compatibility.
Signed-off-by: Kefu Chai <kchai@redhat.com>
|
| |
| |
| |
| |
| |
| | |
this change reverts b8ff781ddcf737882163cf56d7c9b11e815fb699
Signed-off-by: Kefu Chai <kchai@redhat.com>
|
| |
| |
| |
| |
| |
| | |
this change partially reverts 6eca7d08893abbe41f7fa6b2834fb05e84be572b
Signed-off-by: Kefu Chai <kchai@redhat.com>
|
| |
| |
| |
| |
| |
| | |
this change partially reverts 6eca7d08893abbe41f7fa6b2834fb05e84be572b
Signed-off-by: Kefu Chai <kchai@redhat.com>
|
|/
|
|
| |
Signed-off-by: John Spray <john.spray@redhat.com>
|
|
|
|
| |
Signed-off-by: Kefu Chai <kchai@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the goal is to decouple C++ API from C API, and to version them
differently, as they are targeting different consumers.
this allows us to change the C++ API and bumping up its soversion
without requiring consumer to recompile the librados client for
using the new librados. in this way, C++ API can move faster than
C API. for example, if bufferlist interface is changed for better
performance, and this breaks existing API/ABI, we can bump up
the C++ library's soversion, and and the C library's version unchanged
but ship the new librados's C binding. so the librados client linked
against librados's C library will be able to take advantage of
the improvement in C++ library. while the librados client
linked against C++ library won't break at runtime due to unresolved
symbol or changed structure layout.
this is massive change, the genereal idea is to
* split librados.cc into two source files: librados_c.cc and
librados_cxx.cc, the former for implementing C APIs, the later
for C++ APIs.
* extract the C++ API in librados into librados-cxx, the library
name will be libradospp. but we can change it before nautilus
is released.
* link these librados libraries with static libraries which it
depends on, so "-Wl,--exclude-libs,ALL" link flags can help
hide the non-public symbols.
* extract the tests exercising librados' C++ API into a different
source file named *_cxx.cc. for instance, to move the C++ tests
in aio.cc into aio_cxx.cc
* extract the shared helper functions which do not use any librados
or librados-cxx APIs into test_shared{.cc,h}. the "shared" here
means, *shared* by C++ and C tests.
* extract the test fixtures, i.e., the subclasses of testing::Test,
for testing C++ APIs into testcase_cxx.cc.
* update qa/workunits/rados/test.sh accordingly to add the splitted
tests
* update the consumers of librados to link against librados-cxx
instead, if they are using the C++ API.
Signed-off-by: Kefu Chai <kchai@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
so we don't need parse the pg string and render it again for librados C
API.
the downside of this change is that, get_inconsistent_pgs() could be
implemented using RadosClient, instead be *in* it. but before we have
a place for the helper functions for these higher-level functions,
RadosClient is a good place for hosting them.
Signed-off-by: Kefu Chai <kchai@redhat.com>
|
|\
| |
| |
| |
| |
| |
| | |
* refs/pull/24534/head:
librados: Copy buffer on AIO read
Reviewed-by: Kefu Chai <kchai@redhat.com>
|
| |
| |
| |
| |
| |
| | |
Fixes: https://tracker.ceph.com/issues/36345
Signed-off-by: Wido den Hollander <wido@42on.com>
|
| |
| |
| |
| | |
Signed-off-by: Casey Bodley <cbodley@redhat.com>
|
|\ \
| | |
| | |
| | |
| | | |
librados: use steady clock for rados_mon_op_timeout
Reviewed-by: Kefu Chai <kchai@redhat.com>
|
| | |
| | |
| | |
| | | |
Signed-off-by: Mohamad Gebai <mgebai@suse.com>
|
| |/
|/|
| |
| | |
Signed-off-by: Sage Weil <sage@redhat.com>
|
|\ \
| | |
| | |
| | |
| | |
| | | |
mgr: fixup pgs show in unknown state
Reviewed-by: Kefu Chai <kchai@redhat.com>
Reviewed-by: John Spray <john.spray@redhat.com>
|
| | |
| | |
| | |
| | |
| | | |
Fixes: http://tracker.ceph.com/issues/25103
Signed-off-by: huanwen ren <ren.huanwen@zte.com.cn>
|
| | |
| | |
| | |
| | | |
Signed-off-by: Kefu Chai <kchai@redhat.com>
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | | |
librbd: prevent use of namespaces on pre-nautilus OSDs
Reviewed-by: Mykola Golub <mgolub@suse.com>
Reviewed-by: Josh Durgin <jdurgin@redhat.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
These methods retrieve the current minimum required OSD version
from the OSD map. This can help client applications determine if
new features are supported by the cluster.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This conflicts with the system assert.h so rename and change includes to
reflect the new name.
Fixes: http://tracker.ceph.com/issues/35682
Signed-off-by: Brad Hubbard <bhubbard@redhat.com>
|
|\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
librbd: fix potential live migration after commit issues due to not refreshed image header
Reviewed-by: Jason Dillaman <dillaman@redhat.com>
|
| |/ / /
| | | |
| | | |
| | | | |
Signed-off-by: Mykola Golub <mgolub@suse.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Return EOPNOTSUPP for auid-specific calls, or EINVAL for ones that get a non-default
auid value.
Signed-off-by: Sage Weil <sage@redhat.com>
|
|/ / /
| | |
| | |
| | | |
Signed-off-by: Sage Weil <sage@redhat.com>
|
| | |
| | |
| | |
| | | |
Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Sometimes we need to know how many elements are represented by an omap
iterator. Add a new rados_omap_iter_size to return the number of
elements in the returned iterator.
Also add some sanity checks for this to existing tests.
Tracker: http://tracker.ceph.com/issues/26948
Signed-off-by: Jeff Layton <jlayton@redhat.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- do not link libkv with ALLOC_LIBS, it turns out that if we link
tcmalloc *before* -static-libstdc++ -static-libgcc, libstdc++ and gcc
libs will show up in `ldd` output
- add `-static-libstdc++ -static-libgcc` to CMAKE_SHARED_LINKER_FLAGS
and CMAKE_EXE_LINKER_FLAGS instead of adding them to all shared
libraries and executable. simpler this way.
- link against libtcmalloc statically, because libtcmalloc is a C++
library, linking against it dynamically and linking against C++ runtime
statically will pull in depdencies on two versions of C++ runtime, which
will bring down the app at run-time.
- do not pass '-pie' to linker when building executable if
`WITH_STATIC_LIBSTDCXX` and tcmalloc is used, because the static tcmalloc
is not compiled with PIC.
- only apply '-pie' if ENABLE_SHARED is enabled.
Signed-off-by: Kefu Chai <kchai@redhat.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
this change introduce three classes: ConfigValues, ConfigProxy and
ConfigReader. in seastar port of OSD, each CPU shard will hold its own
reference of configuration, and upon changes of settings, each
shard will be updated with the new setting in async. so this forces us
to be able to keep two set of configuration at the same time. so we
need to extract the changeable part of md_config_t out. so we can
replace the old one with new one on demand, and let different shards
share the same unchanged part, amon the other things, the Options map
and the lookup tables. that's why we need ConfigValues. we will add
a policy template for this class, so we can specialize for Seastar
implementation to allow different ConfigProxy instances to point
md_config_impl<> to different ConfigValues.
because the observer interface is still using md_config_t, to minimise
the impact of this change, handle_conf_change() and
handle_subsys_change() are not changed. but as it accepts a `const
md_config_t`, which cannot be used to create/reference the ConfigProxy
holding it, we need to introduce ConfigReader for reading the updated
setting from md_config_t in a simpler way, without exposing the
internal "values" member variable.
Signed-off-by: Kefu Chai <kchai@redhat.com>
|
| |
| |
| |
| | |
Signed-off-by: Sage Weil <sage@redhat.com>
|
|\ \
| | |
| | |
| | |
| | |
| | | |
common: add lockless `md_config_t`
Reviewed-by: Sage Weil <sage@redhat.com>
Reviewed-by: Josh Durgin <jdurgin@redhat.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
before this change, we guard all read/write access to md_config_t with a
lock. after this change, this policy is optional. and is controled by a
enum named `LockPolicy`. we will use `md_config_impl<LockPolicy::SINGLE>`
to implement the lockless config used by crimson/osd.
Signed-off-by: Kefu Chai <kchai@redhat.com>
|
|\ \ \
| |/ /
|/| |
| | |
| | | |
rbd: basic support for images within namespaces
Reviewed-by: Mykola Golub <mgolub@suse.com>
|
| | |
| | |
| | |
| | | |
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
memory.h was introduced back when the shared_ptrs were still in TR1, but
we've moved to C++17 now. and the C++ clients should be compiled with
a C++11 compatible compiler. so there is no need to have this file anymore.
also replace all references of ceph::shared_ptr and ceph::weak_ptr with
std::shared_ptr and std::weak_ptr accordingly.
Signed-off-by: Kefu Chai <kchai@redhat.com>
|
|\ \
| | |
| | |
| | |
| | | |
osd, librados: add unset-manifest op
Reviewed-by: Sage Weil <sage@redhat.com>
|