summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Add ANT_HOME to README examplewip-buck-centos-miscJoe Buck2013-09-161-2/+2
| | | | | | | | On CentOS, ANT_HOME needs to be specified (and it doesn't hurt to do so on all platforms), so I'm adding it to the README example. Signed-off-by: Joe Buck <jbbuck@gmail.com>
* Add ANT_HOME to the workunitJoe Buck2013-09-161-1/+9
| | | | | | | Specify an ANT_HOME entry for this workunit, as it is needed on CentOS. Signed-off-by: Joe Buck <jbbuck@gmail.com>
* Add java/com/ceph/crush to make cleanJoe Buck2013-09-161-1/+1
| | | | | | | A new directory wasn't having its files cleaned. Signed-off-by: Joe Buck <jbbuck@gmail.com>
* doc: Removed --fs-type option and text.John Wilkins2013-09-161-4/+0
| | | | | | fixes: #6326 Signed-off-by: John Wilkins <john.wilkins@inktank.com>
* doc: Updated the usage scenario and made a few syntax edits.John Wilkins2013-09-161-14/+17
| | | | | | fixes: #6308 Signed-off-by: John Wilkins <john.wilkins@inktank.com>
* Merge pull request #600 from dachary/fix-erasure-warningGregory Farnum2013-09-161-1/+1
|\ | | | | | | ErasureCode: fix uninitialized variable warning Reviewed-by: Greg Farnum <greg@inktank.com>
| * ErasureCode: fix uninitialized variable warningLoic Dachary2013-09-161-1/+1
| | | | | | | | Signed-off-by: Loic Dachary <loic@dachary.org>
* | Merge pull request #597 from ceph/remove-hadoop-shimGregory Farnum2013-09-1629-6141/+2
|\ \ | |/ |/| | | | | This branch built fine on the gitbuilders and the list of removed files looks good to me. Reviewed-by: Greg Farnum <greg@inktank.com>
| * hadoop: remove hadoop shimNoah Watkins2013-09-1329-6141/+2
| | | | | | | | | | | | | | | | | | The in-tree Hadoop shim was a combination of libcephfs wrapper, and the bits to support Hadoop. This has been replaced by src/java that implements generic libcephfs wrappers, and externally, the hadoop shim (see docs). Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
* | Merge pull request #538 from dachary/wip-5879athanatos2013-09-1320-0/+6737
|\ \ | |/ |/| | | | | jerasure-1.2A plugin Reviewed-by: Samuel Just <sam.just@inktank.com>
| * ErasureCodeJerasure: pluginLoic Dachary2013-09-104-0/+147
| | | | | | | | | | | | | | | | | | | | | | Create the class matching the string found in the erasure-code-technique parameter, using the same strings are the original {encoder,decoder}.c examples from Jerasure-1.2A. Registers the plugin in ErasureCodePluginRegistry. https://github.com/dachary/ceph/tree/wip-5879 refs #5879 Signed-off-by: Loic Dachary <loic@dachary.org>
| * ErasureCodeJerasure: define technique Liber8tionLoic Dachary2013-09-103-0/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | technique == "liber8tion" ErasureCodeInterface (abstract) | -> ErasureCodeJerasure (abstract) | -> ErasureCodeJerasureLiberation | -> ErasureCodeJerasureLiber8tion | == liber8tion Derived from Liberation it overloads the parse and prepare methods. parse : default to K=2 and packetsize = 8. If any of the following constraints is not satisfied, revert to the default: * K <= 8 * packetsize must not be zero prepare uses liber8tion_coding_bitmatrix https://github.com/dachary/ceph/tree/wip-5879 refs #5879 Signed-off-by: Loic Dachary <loic@dachary.org>
| * ErasureCodeJerasure: define technique BlaumRothLoic Dachary2013-09-103-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | technique == "blaum_roth" ErasureCodeInterface (abstract) | -> ErasureCodeJerasure (abstract) | -> ErasureCodeJerasureLiberation | -> ErasureCodeJerasureBlaumRoth | == blaum_roth Derived from Liberation it only overloads the prepare method to use blaum_roth_coding_bitmatrix. https://github.com/dachary/ceph/tree/wip-5879 refs #5879 Signed-off-by: Loic Dachary <loic@dachary.org>
| * ErasureCodeJerasure: define technique LiberationLoic Dachary2013-09-103-0/+95
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | technique == "liberation" parse : default to K=7, M=2 and W=7 and packetsize = 8. If any of the following constraints is not satisfied, revert to the default: * K > W * W > 2 * W is a prime number * packetsize must not be zero * packetsize must be a multiple of sizeof(int) pad_in_length : pad to a multiple of k*w*packetsize*sizeof(int) prepare, jerasure_encode, jerasure_decode map directly to the matching jerasure functions https://github.com/dachary/ceph/tree/wip-5879 refs #5879 Signed-off-by: Loic Dachary <loic@dachary.org>
| * ErasureCodeJerasure: define techniques CauchyOrig and CauchyGoodLoic Dachary2013-09-103-0/+106
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The technique Cauchy has two variants: ErasureCodeInterface (abstract) | -> ErasureCodeJerasure (abstract) | -> ErasureCodeJerasureCauchy (abstract) | | | -> ErasureCodeJerasureCauchyOrig | | == cauchy_orig | -> ErasureCodeJerasureCauchyGood | | == cauchy_good ErasureCodeJerasureCauchy defines the prepare_schedule method to be used by prepare method, which is the only one overloaded by ErasureCodeJerasureCauchyOrig (calling cauchy_original_coding_matrix) and ErasureCodeJerasureCauchyGood ( calling cauchy_good_general_coding_matrix). The schedule is retained for encoding and the bitmatrix for decoding. parse : default to K=7, M=3, W=8 and packetsize = 8. pad_in_length : pad to a multiple of k*w*packetsize*sizeof(int) jerasure_encode, jerasure_decode map directly to the matching jerasure functions https://github.com/dachary/ceph/tree/wip-5879 refs #5879 Signed-off-by: Loic Dachary <loic@dachary.org>
| * ErasureCodeJerasure: define technique ReedSolomonRAID6Loic Dachary2013-09-103-0/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | technique == reed_sol_r6_op parse : default to K=7 and W=8 . If W is not 8, 16 or 32, it reverts to 8. pad_in_length : pad to a multiple of k*w*sizeof(int) prepare, jerasure_encode, jerasure_decode map directly to the matching jerasure functions https://github.com/dachary/ceph/tree/wip-5879 refs #5879 Signed-off-by: Loic Dachary <loic@dachary.org>
| * ErasureCodeJerasure: define technique ReedSolomonVandermondeLoic Dachary2013-09-103-0/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | technique == reed_sol_van parse : default to K=7, M=3 and W=8 . If W is not 8, 16 or 32, it reverts to 8. pad_in_length : pad to a multiple of k*w*sizeof(int) prepare, jerasure_encode, jerasure_decode map directly to the matching jerasure functions https://github.com/dachary/ceph/tree/wip-5879 refs #5879 Signed-off-by: Loic Dachary <loic@dachary.org>
| * ErasureCodeJerasure: unit test common to all techniquesLoic Dachary2013-09-102-0/+110
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A typed unit test is defined and must run regardless of the technique. When a new technique is derived from ErasureCodeJerasure, it is added to the JerasureTypes typedef and the test will validate that: * it provides reasonable defaults for the technique specific parameters * it modifies the k, m and w to reasonable defaults depending on the imposed constraints ( for instance Liber8tion requires that w == 8 but the test sets it to 7 ) * the encoding of K=2, M=2 produces 4 chunks, the first two of which contains the original buffer data showing the code is systematic * decoding when all 4 chunks are available indeed retrieves the original buffer content * decoding when the two data chunks are are missing indeed retrieves the original buffer content https://github.com/dachary/ceph/tree/wip-5879 refs #5879 Signed-off-by: Loic Dachary <loic@dachary.org>
| * ErasureCodeJerasure: base class for jerasure ErasureCodeInterfaceLoic Dachary2013-09-103-1/+234
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The ErasureCodeJerasure class is derived from ErasureCodeInterface and is meant to be derived to implement each jerasure technique ( Reed-Solomon, Cauchy ... ). The parameters K ( number of data chunks ), M ( number of coding chunks ) and W ( word size ) are data members common to all techniques. The technique data member is expected to be set to a string describing the technique for debugging purposes. minimum_to_decode_with_cost ignores the cost and calls minimum_to_decode. minimum_to_decode returns the first K chunks or an error if there are not enough. Since all codes are systematic, when all chunks are available returning the first K allows for concatenation and is the best choice. The encode method converts bufferlist into char* as expected by the jerasure functions. The padding of the incoming buffer depends on the technique and is computed by the pad_in_length method. Encoding is done with the jerasure_encode method. The decode method converts the char* returned by the jerasure functions into bufferlists to be consumed by the caller. The decoding is done by the jerasure_decode method. The to_int convenience method is used to convert parameters. The is_prime convenience method will be used by some techniques to validate parameters. Immediately after creating an ErasureCodeJerasure derived object, the init method must be called. It will call the parse method to interpret the parameters required by the technique and set the k, m and w data members. The prepare method is expected to compute the matrix ( and schedule if necessary ) and store it in a data member. The init method will be called while holding the ErasureCodePluginRegistry mutex. The encode and decode methods will not be protected by a mutex and may be called by different threads for the benefit of different placement groups. They will not have any side effect on the object. https://github.com/dachary/ceph/tree/wip-5879 refs #5879 Signed-off-by: Loic Dachary <loic@dachary.org>
| * ErasureCodeJerasure: fix jerasure compilationLoic Dachary2013-09-105-21/+33
| | | | | | | | | | | | | | | | | | Add the imported jerasure-1.2A to the Makefile.am and fix the compilation warnings. https://github.com/dachary/ceph/tree/wip-5879 refs #5879 Signed-off-by: Loic Dachary <loic@dachary.org>
| * ErasureCodeJerasure: import jerasure-1.2ALoic Dachary2013-09-1012-0/+5843
| | | | | | | | | | | | | | | | | | | | | | The files are copied verbatim from http://web.eecs.utk.edu/~plank/plank/papers/Jerasure-1.2A.tar and a section is added to the top level COPYING file to reflect the BSD license. https://github.com/dachary/ceph/tree/wip-5879 refs #5879 Signed-off-by: Loic Dachary <loic@dachary.org>
* | Merge pull request #594 from ceph/fix-no-tcmalloc-buildSage Weil2013-09-131-1/+1
|\ \ | | | | | | | | | | | | make: add tmalloc lib dep in tcmalloc guard Reviewed-by: Sage Weil <sage@inktank.com>
| * | make: add tmalloc lib dep in tcmalloc guardfix-no-tcmalloc-buildNoah Watkins2013-09-131-1/+1
|/ / | | | | | | | | | | Fixes --without-tcmalloc on boxes without libtcmalloc. Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
* | Merge branch 'wip-6226'David Zafman2013-09-122-1/+8
|\ \
| * | osd/ReplicatedPG.cc: Verify that recovery is truly completeDavid Zafman2013-09-121-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Backportable change to insure that even if no new ops started or are running that indeed recovery is complete. Prevents some error condition or unforseen code path from crashing an osd. Backport: dumpling, cuttlefish Signed-off-by: David Zafman <david.zafman@inktank.com> Reviewed-by: Samuel Just <sam.just@inktank.com>
| * | osd/OSD.cc: Use MIN() so that we don't exceed osd_recovery_max_activeDavid Zafman2013-09-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Caused by 944f3b73531af791c90f0f061280160003545c63 Fixes: #6291 Backport: dumpling Signed-off-by: David Zafman <david.zafman@inktank.com> Reviewed-by: Samuel Just <sam.just@inktank.com>
* | | Merge pull request #589 from ceph/wip-6279Gregory Farnum2013-09-121-0/+1
|\ \ \ | |/ / |/| | | | | mon/MDSMonitor: don't reset incarnation when creating newfs Reviewed-by: Greg Farnum <greg@inktank.com>
| * | mon/MDSMonitor: don't reset incarnation when creating newfsYan, Zheng2013-09-121-0/+1
|/ / | | | | | | | | | | Fixes: #6279 Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
* | Merge pull request #587 from kri5/masterYehuda Sadeh2013-09-112-0/+2
|\ \ | | | | | | | | | | | | rgw-admin: Adds --metadata-key option to help Reviwed-by: Yehuda Sadeh <yehuda@inktank.com>
| * | rgw-admin: Adds --metadata-key option to helpChristophe Courtaut2013-09-112-0/+2
|/ / | | | | | | Signed-off-by: Christophe Courtaut <christophe.courtaut@gmail.com>
* | osd: bind objecter messenger to cluster addressGreg Farnum2013-09-101-0/+2
| | | | | | | | | | | | | | | | We don't want it binding to whatever willy-nilly, and as an OSD even its "client" traffic should go on the cluster address. Signed-off-by: Greg Farnum <greg@inktank.com> Reviewed-by: Sage Weil <sage@inktank.com>
* | osd: name the objecter's messenger "ms_objecter" instead of "hbclient"Greg Farnum2013-09-101-1/+1
| | | | | | | | | | | | | | Bad copypasta on initial create? Signed-off-by: Greg Farnum <greg@inktank.com> Reviewed-by: Sage Weil <sage@inktank.com>
* | Objecter: rename cancel_op -> cancel_linger_opGreg Farnum2013-09-102-7/+5
| | | | | | | | | | | | | | | | This makes it possible to converse about op_cancel and cancel_linger_op without getting too confused. Signed-off-by: Greg Farnum <greg@inktank.com> Reviewed-by: Sage Weil <sage@inktank.com>
* | Merge pull request #580 from ceph/wip-6033-redirectsGregory Farnum2013-09-109-51/+228
|\ \ | | | | | | Reviewed-by: Sage Weil <sage@inktank.com>
| * | test: update cache test since OSDs support redirectsGreg Farnum2013-09-101-12/+12
| | | | | | | | | | | | Signed-off-by: Greg Farnum <greg@inktank.com>
| * | osd: implement basic caching policies in ReplicatedPGGreg Farnum2013-09-102-17/+72
| | | | | | | | | | | | | | | | | | | | | | | | Right now these are very basic and aren't as sophisticated as we want them to end up, but we have a skeleton for where to put the decision-making logic. Signed-off-by: Greg Farnum <greg@inktank.com>
| * | Objecter: follow redirect replies from the OSDGreg Farnum2013-09-101-8/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If we get back a redirect reply, we clean up the Op's external references and re-send using the target_oloc and target_oid. To facilitate this, recalc_op_target() now only fills them in and overrides them with pool cache semantics if they're empty. Keep in mind that this is a pretty simple redirect formula -- the Objecter will keep following redirects forever if that's what the OSDs send back. The client is not providing any synchronization right now. Signed-off-by: Greg Farnum <greg@inktank.com>
| * | Objecter: write a helper function to clean up ops that need to be retriedGreg Farnum2013-09-102-4/+11
| | | | | | | | | | | | | | | | | | | | | | | | We have a little block to clean them up if we get back EAGAIN, but it's actually leaking map references; we will also use this for redirects from the OSDs. Signed-off-by: Greg Farnum <greg@inktank.com>
| * | MOSDOpReply: add a redirect memberGreg Farnum2013-09-101-1/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When present, clients must send the request to the location specified by the redirect (by using the combine_with_locator() function on request_redirect_t). A separate mechanism must be used to ensure that clients see and respect the redirect, as we do not bump up the minimum required version to decode. Signed-off-by: Greg Farnum <greg@inktank.com>
| * | Objecter: add an Op::target_oid, and use it when submitting OpsGreg Farnum2013-09-102-2/+5
| | | | | | | | | | | | | | | | | | | | | For now it's just a copy of base_oid, but soon we will allow it to be overwritten for OSD-driven redirects. Signed-off-by: Greg Farnum <greg@inktank.com>
| * | Objecter: rename Op::oid -> Op::base_oidGreg Farnum2013-09-102-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | Analagous to the oloc->base_oloc rename we did in e2fcad09d94d965867147627b73e99da9454436f, we may specify a different target name for a redirect. Rename the existing oid to base_oid to avoid any confusion. Signed-off-by: Greg Farnum <greg@inktank.com>
| * | osd: create a new request_redirect_tGreg Farnum2013-09-103-0/+77
| | | | | | | | | | | | | | | | | | | | | We'll use this so that the OSD can tell the Objecter to redirect a request to a different object somewhere else. Signed-off-by: Greg Farnum <greg@inktank.com>
| * | osd: add empty() function to object_locator_tGreg Farnum2013-09-091-0/+4
| | | | | | | | | | | | Signed-off-by: Greg Farnum <greg@inktank.com>
| * | MOSDOpReply: more const-correctnessGreg Farnum2013-09-091-1/+1
| | | | | | | | | | | | | | | | | | get_map_epoch() is a non-reference getter -- mark it as const! Signed-off-by: Greg Farnum <greg@inktank.com>
| * | ReplicatedPG: do not meaninglessly fill in the reqid on make_writeable() cloningGreg Farnum2013-09-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reqid is used to fill in a map that is used for giving clients the correct version on replayed ops, unless the reqid is blank (in which case it doesn't go into the map). Indirect clones are not ops that the client wants to observe and the version is incorrect right now, so don't fill it in. Note that this should not have actually caused any buggy behavior, because the map would have simply been overwritten by the real requested event a short time later (while still protected by locks and things). But it's very confusing. Signed-off-by: Greg Farnum <greg@inktank.com>
* | | Merge pull request #585 from ceph/wip-osd-pool-create-syntaxSage Weil2013-09-101-1/+1
|\ \ \ | | | | | | | | | | | | | | | | fix ceph tool (syntax error in command specification prevents anything from working) Reviewed-by: Sage Weil <sage@inktank.com>
| * | | mon: fix syntax error in osd pool create argsJosh Durgin2013-09-101-1/+1
|/ / / | | | | | | | | | | | | | | | Just missing a space between pgp_num and properties specification. Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
* | | Merge pull request #584 from dachary/masterSage Weil2013-09-101-2/+2
|\ \ \ | | | | | | | | | | | | | | | | autoconf: use $(UNITTEST_CXXFLAGS) in tests Reviewed-by: Sage Weil <sage@inktank.com>
| * | | autoconf: use $(UNITTEST_CXXFLAGS) in testsLoic Dachary2013-09-101-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | As suggested by Roald van Loon https://github.com/ceph/ceph/pull/538/files#r6260751 Signed-off-by: Loic Dachary <loic@dachary.org>
* | | | Merge pull request #578 from dachary/wip-6113Sage Weil2013-09-105-7/+43
|\ \ \ \ | |/ / / |/| | | | | | | | | | | mon: add key[=value] ... to osd pool create Reviewed-by: Sage Weil <sage@inktank.com>