| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Signed-off-by: Samuel Just <sam.just@inktank.com>
|
|
|
|
|
|
| |
This only works if the base value also matches, which it generally won't.
Signed-off-by: Sage Weil <sage@inktank.com>
|
|
|
|
| |
Signed-off-by: Sage Weil <sage@inktank.com>
|
|
|
|
| |
Signed-off-by: Sage Weil <sage@inktank.com>
|
|
|
|
| |
Signed-off-by: Sage Weil <sage@inktank.com>
|
|\
| |
| | |
osd: expose bytes used/avail via perf / asok
|
| |
| |
| |
| |
| |
| |
| | |
This values are already sent to the monitor. Expose them via the admin
socket too so collectd/diamond/whatever can pick them up.
Signed-off-by: Sage Weil <sage@inktank.com>
|
|\ \
| | |
| | |
| | |
| | | |
autoconf: use $(LIBOSD) $(LIBCOMMON) instead of libosd.a libcommon.la
Reviewed-by: Sage Weil <sage@inktank.com>
|
| | |
| | |
| | |
| | |
| | |
| | | |
hardcoded library names in unit test dependencies break compilation
Signed-off-by: Loic Dachary <loic@dachary.org>
|
| | |
| | |
| | |
| | | |
Signed-off-by: John Wilkins <john.wilkins@inktank.com>
|
| | |
| | |
| | |
| | | |
Signed-off-by: John Wilkins <john.wilkins@inktank.com>
|
| | |
| | |
| | |
| | | |
Signed-off-by: John Wilkins <john.wilkins@inktank.com>
|
| | |
| | |
| | |
| | | |
Signed-off-by: John Wilkins <john.wilkins@inktank.com>
|
| | |
| | |
| | |
| | | |
Signed-off-by: John Wilkins <john.wilkins@inktank.com>
|
| | |
| | |
| | |
| | | |
Signed-off-by: John Wilkins <john.wilkins@inktank.com>
|
| | |
| | |
| | |
| | | |
Signed-off-by: John Wilkins <john.wilkins@inktank.com>
|
| | |
| | |
| | |
| | | |
Signed-off-by: John Wilkins <john.wilkins@inktank.com>
|
|/ /
| |
| |
| | |
Signed-off-by: John Wilkins <john.wilkins@inktank.com>
|
|\ \
| | |
| | |
| | |
| | | |
erasure plugin mechanism and abstract API
Reviewed-by: Samuel Just <sam.just@inktank.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
libec_example.la is a fully functional plugin based on
ErasureCodeExample to test the ErasureCodePlugin abstract
interface. It is dynamically loaded to test the
ErasureCodePluginRegistry implementation.
Although the plugin is built in the test directory, it will be
installed. noinst_LTLIBRARIES won't build the shared library, only the
static version which is not suitable for testing.
http://tracker.ceph.com/issues/5878 refs #5878
Signed-off-by: Loic Dachary <loic@dachary.org>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
A ErasureCodePluginRegistry singleton holds all erasure plugin objects
derived from ErasureCodePlugin and dlopen(2) handles for the lifetime
of the OSD and is cleaned up by the destructor.
The registry has a single entry point ( method factory ) and should
be used as follows:
map<std::string,std::string> parameters;
parameters["directory"] = "/usr/lib/ceph/erasure-code";
ErasureCodeInterfaceRef erasure_code;
ErasureCodePluginRegistry &instance = ErasureCodePluginRegistry::instance();
instance.factory("jerasure", parameters, &erasure_code));
If the plugin requested ( "jerasure" in the example above ) is not
found in the *plugins* data member, the load method is called and will:
* dlopen(parameters["erasure-code-directory"] + "jerasure")
* f = dlsym("__erasure_code_init")
* f("jerasure")
* check that it registered "jerasure"
The plugin is expected to do something like
instance.add(plugin_name, new ErasureCodePluginJerasure());
to register itself.
The factory method is protected with a Mutex to avoid race
conditions when using the same plugin from two threads.
The erasure_codelib_LTLIBRARIES variable is added to the Makefile
and the plugins are expected to add themselves and be installed
in the $(libdir)/erasure-code
http://tracker.ceph.com/issues/5878 refs #5878
Signed-off-by: Loic Dachary <loic@dachary.org>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When dynamically loaded, a plugin is expected to define
int __erasure_code_init(char *plugin_name);
When called, it is responsible for registering an ErasureCodePlugin
derived object that provides a factory method from which the concrete
implementation of the ErasureCodeInterface object can be generated:
virtual int factory(const map<std::string,std::string> ¶meters,
ErasureCodeInterfaceRef *erasure_code) {
*erasure_code = ErasureCodeInterfaceRef(new ErasureCodeExample(parameters));
return 0;
}
The plugin instance contains the library data member which is used to
store the handle of the shared library. It is opaque to the plugin.
http://tracker.ceph.com/issues/5878 refs #5878
Signed-off-by: Loic Dachary <loic@dachary.org>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
An erasure code implementation designed for tests. Although it is fully
functional and could be used on actual data, it is mainly provided for
testing purposes. It splits data in two, computes an XOR parity and
can sustain the loss of one chunk.
The constructor will usleep(3) for parameters["usleep"] microseconds
so that the caller can create race conditions.
http://tracker.ceph.com/issues/5878 refs #5878
Signed-off-by: Loic Dachary <loic@dachary.org>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The erasure coded pool relies on this abstract interface to encode and
decode the chunks stored in the OSD. It has been designed to be
generic enough to accomodate the libraries and algorithms that are
most likely to be used. It does not claim to be universal.
http://tracker.ceph.com/issues/5878 refs #5878
Signed-off-by: Loic Dachary <loic@dachary.org>
|
|/ /
| |
| |
| | |
Signed-off-by: David Zafman <david.zafman@inktank.com>
|
|\ \
| | |
| | | |
make sure we use a version of sphinx that we can handle
|
| | |
| | |
| | |
| | | |
Signed-off-by: Alfredo Deza <alfredo.deza@inktank.com>
|
| | |
| | |
| | |
| | | |
Signed-off-by: John Wilkins <john.wilkins@inktank.com>
|
| | |
| | |
| | |
| | | |
Signed-off-by: John Wilkins <john.wilkins@inktank.com>
|
|/ /
| |
| |
| | |
Signed-off-by: John Wilkins <john.wilkins@inktank.com>
|
|\ \
| | |
| | |
| | |
| | | |
automake cleanup: implementing non-recursive make
Reviewed-by: Sage Weil <sage@inktank.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
- Enabling subdir objects
- Created a Makefile-env.am with basic automake init
- Created .am files per subdir, included from src/Makefile.am
Signed-off-by: Roald J. van Loon <roaldvanloon@gmail.com>
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| | |
cct is a member of the ObjBencher parent that we are trying to
initialize; need to pass in cct_ here.
Broken in 5dd0a83f917cb73a9985c94b9b6c2309c66d0ce3.
Fixes: #6256
Signed-off-by: Sage Weil <sage@inktank.com>
|
|\ \ |
|
| |\ \
| | | |
| | | |
| | | |
| | | | |
rgw: fix get cors, delete cors
Reviewed-by: Sage Weil <sage@inktank.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Remove a couple of variables that overrode class member. Not
really clear how it was working before, might have been a bad
merge / rebase.
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
|
| |\ \ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
init-radosgw*: fix status return value if radosgw isn't running
Backport: dumpling
Reviewed-by: Sage Weil <sage@inktank.com>
|
| |/ / /
| | | |
| | | |
| | | | |
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
|
|\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
Wip automake prepare
Reviewed-by: Sage Weil <sage@inktank.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The previous name could cause confusion (it's not only used to test
build libcommon anymore).
Signed-off-by: Roald J. van Loon <roaldvanloon@gmail.com>
|
| | | | |
| | | | |
| | | | |
| | | | | |
Signed-off-by: Roald J. van Loon <roaldvanloon@gmail.com>
|
| | | | |
| | | | |
| | | | |
| | | | | |
Signed-off-by: Roald J. van Loon <roaldvanloon@gmail.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This are tests and should be in the src/test subdir.
Signed-off-by: Roald J. van Loon <roaldvanloon@gmail.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Includes should only be includes. Moving C code to libcommon.
Signed-off-by: Roald J. van Loon <roaldvanloon@gmail.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This file is used by libcommon, so lets put it in src/common instead of
src/os.
Signed-off-by: Roald J. van Loon <roaldvanloon@gmail.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
- In "includes", inttypes.h was cluttering the system's one. This caused
random build errors on some systems/in some conditions. Renaming it.
- Add emergency defs of PRI*64 headers when int_types.h does not define
them (which, unfortunately, can happen on some systems).
Signed-off-by: Roald J. van Loon <roaldvanloon@gmail.com>
|
|/ / / /
| | | |
| | | |
| | | | |
Signed-off-by: Roald J. van Loon <roaldvanloon@gmail.com>
|
|\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
fix: build tests need libcrc.la
Reviewed-by: Sage Weil <sage@inktank.com>
|
|/ / / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Build tests are failing because the need crc32c.cc's functions, so we
need to link them against libcrc.la
Signed-off-by: Roald J. van Loon <roaldvanloon@gmail.com>
|
|\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
cleanup: state_name in NamedState init list
Reviewed-by: Sage Weil <sage@inktank.com>
|