Commit Graph

34796 Commits

Author SHA1 Message Date
Sage Weil
3179bb107a mon/PGMonitor: add _bytes perf counters
Leave the _kb ones in place for now.

Backport: firefly
Signed-off-by: Sage Weil <sage@redhat.com>
2014-08-06 09:18:27 -07:00
Sage Weil
adb2791adf mon/PGMonitor: add _bytes fields for all usage dumps
Leave the _kb ones in place for now.

Backport: firefly
Signed-off-by: Sage Weil <sage@redhat.com>
2014-08-06 09:14:40 -07:00
Loic Dachary
b416446cb9 Merge pull request #2165 from dachary/wip-mailmap
mailmap updates
2014-08-06 17:23:17 +02:00
Sage Weil
895318c0cd README.md: word wrap
Signed-off-by: Sage Weil <sage@redhat.com>
2014-08-06 08:16:21 -07:00
Sage Weil
500b95e568 README: symlink from README.md
It looks better as markdown than rendered as text via the markdown tool,
so just symlink it.

Signed-off-by: Sage Weil <sage@redhat.com>
2014-08-06 08:15:35 -07:00
Sage Weil
25b9761e24 Merge pull request #2202 from xinxinsh/enable-rocksdb-log-level
Enable rocksdb log level

Reviewed-by: Sage Weil <sage@redhat.com>
2014-08-06 07:46:04 -07:00
Sage Weil
818f5b7038 Merge pull request #2208 from lpabon/osd_dev_doc
Developer quick start guide

Reviewed-by: Sage Weil <sage@redhat.com>
2014-08-05 15:25:40 -07:00
Samuel Just
3f9f135f37 Merge remote-tracking branch 'upstream/next' into wip-sam-testing
Conflicts:
	src/osd/OSD.cc
2014-08-05 14:06:23 -07:00
Luis Pabón
a923e2c9eb Renamed README to README.md to render in markdown
Signed-off-by: Luis Pabón <lpabon@redhat.com>
2014-08-05 14:51:16 -04:00
Luis Pabón
52cf693e8d Developer quick start guide
Signed-off-by: Luis Pabón <lpabon@redhat.com>
2014-08-05 14:48:47 -04:00
xinxin shu
c09036aca2 enable info_log_level config option for rocksdb
Signed-off-by: xinxin shu <xinxin.shu@intel.com>
2014-08-06 02:11:38 +08:00
John Wilkins
e6935dd461 Merge pull request #2206 from ceph/wip-8875
doc: be a bit more explicit about 'ceph-deploy new' in quickstart

Reviewed-by: John Wilkins <john.wilkins@inktank.com>
2014-08-05 10:21:58 -07:00
Alfredo Deza
66de51d1a5 be a bit more explicit about 'ceph-deploy new' in quickstart
Signed-off-by: Alfredo Deza <alfredo.deza@inktank.com>
2014-08-05 12:52:00 -04:00
Sage Weil
3876da15b6 Merge branch 'master' of github.com:ceph/ceph 2014-08-05 09:15:34 -07:00
Sage Weil
bc1d2b8328 Merge remote-tracking branch 'gh/wip-8880'
Conflicts:
	src/osd/OSD.cc
2014-08-05 09:15:12 -07:00
Alfredo Deza
19b9ee947d Merge pull request #2204 from osynge/wip-dont-mkdir-by-mistake2
Do not make directories by mistake.

Reviewed-by: Alfredo Deza <adeza@redhat.com>
2014-08-05 11:50:57 -04:00
Sage Weil
b8c1cabd94 Merge pull request #1883 from ceph/wip-msgr
messenger refactoring for xio

Reviewed-by: Greg Farnum <greg@inktank.com>
2014-08-05 08:50:05 -07:00
Owen Synge
b4c80e31e3 Do not make directories by mistake.
Rational: I found I had created a series of OSD directories under "/dev/" when disks I thought existed did not exist.
Warning: This change will be noticed by end users and may effect deployment infrastructures.

Signed-off-by: Owen Synge <osynge@suse.com>
2014-08-05 17:28:16 +02:00
Sage Weil
e5b3c093c5 Merge pull request #2200 from theanalyst/typo
doc: typo s/loose/lose

Reviewed-by: Sage Weil <sage@redhat.com>
2014-08-05 07:57:51 -07:00
Wido den Hollander
f773b24e25 powerdns: Define a application variable when not invoked from Shell
This allows to be run directly using mod_wsgi behind Apache.
2014-08-05 16:33:03 +02:00
Abhishek Lekshmanan
1682e62eeb doc: typo s/loose/lose
Signed-off-by: Abhishek Lekshmanan <abhishek.lekshmanan@gmail.com>
2014-08-05 10:35:03 +05:30
Sage Weil
541006c83d Merge pull request #1875 from dachary/wip-8437
erasure-code: benchmarking jerasure

Reviewed-by: Sage Weil <sage@redhat.com>
2014-08-04 17:41:53 -07:00
xinxin shu
b9b022e5de add annotation for rocksdb config option
Signed-off-by: xinxin shu <xinxin.shu@intel.com>
2014-08-05 06:24:44 +08:00
Samuel Just
dceab8dc49 Merge pull request #2198 from ceph/wip-8998
fix OSD SEGV in heartbeat()

Reviewed-by: Samuel Just <sam.just@inktank.com>
2014-08-04 15:12:25 -07:00
Sage Weil
8dcfbd8e3b osd: simplify dout_prefix macros
Use a get_osdmap_epoch() helper that is a bit lighter weight (by avoiding
copying around an OSDMapRef).

Signed-off-by: Sage Weil <sage@redhat.com>
2014-08-04 15:01:15 -07:00
Sage Weil
80829d7805 osd: reorder OSDService methods under proper dout_prefix macro
The dout_prefix for OSDService uses get_osdmap() to grab a shared_ptr for
the epoch printout.  The OSD one does not, and is not safe to run in all
thread contexts.

In particular, update_osd_stat() is run by the heartbeat thread and can
race with the shared_ptr itself being updated with a new map.

Ironically, if this were simply an OSDMap*, there would be no race since
the pointer is a single word and updates atomically.

Fix this, and any similar issues, by moving the OSDService methods up in
OSD.cc so that they use the safe dout macro.

Fixes: #8998
Backport: firefly (in a minimal form, I think!)
Signed-off-by: Sage Weil <sage@redhat.com>
2014-08-04 14:57:28 -07:00
Sage Weil
0b445e0f6f Merge remote-tracking branch 'gh/next' 2014-08-04 13:56:24 -07:00
Sage Weil
047c18db6f doc/release-notes: make note about init-radosgw change
This changed back in 524aee6f95 but
was not mentioned in the release notes.

Signed-off-by: Sage Weil <sage@redhat.com>
2014-08-04 13:48:06 -07:00
John Wilkins
354c4112a9 doc: Added 'x' to monitor cap.
Signed-off-by: John Wilkins <john.wilkins@inktank.com>
2014-08-04 11:47:58 -07:00
Samuel Just
18b7a37c96 Merge pull request #2166 from majianpeng/bug-fix
os/FileJournal: When dump journal, using correctly seq avoid misjudging joural corrupt.

Reviewed-by: Samuel Just <sam.just@inktank.com>
2014-08-04 10:33:16 -07:00
Samuel Just
6878e8cdbf Merge pull request #2184 from majianpeng/fix2
ECBackend: Don't directyly use get_recovery_chunk_size() in RecoveryOp::WRITING state

Reviewed-by: Samuel Just <sam.just@inktank.com>
2014-08-04 10:32:07 -07:00
Samuel Just
6f05ff8f59 Merge pull request #2194 from majianpeng/fix1
osd/ECBackend: clean up assert(r==0) in continue_recovery_op.

Reviewed-by: Samuel Just <sam.just@inktank.com>
2014-08-04 10:31:18 -07:00
Samuel Just
3897f09a70 Merge pull request #2192 from ceph/wip-8891
msg/SimpleMessenger: drop msgr lock when joining a Pipe

Reviewed-by: Samuel Just <sam.just@inktank.com>
2014-08-04 10:30:25 -07:00
Yehuda Sadeh
7b2c8b3310 cls_rgw: fix object name of objects removed on object creation
Fixes: #8972
Backport: firefly, dumpling

Reported-by: Patrycja Szabłowska <szablowska.patrycja@gmail.com>
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
(cherry picked from commit 0f8929a68a)
2014-08-04 10:04:55 -07:00
Yehuda Sadeh
8519e9ab06 rgw: need to pass need_to_wait for throttle_data()
need_to_wait wasn't passed into processor->throttle_data(). This was
broken in fix for #8937.

CID 1229541:    (PW.PARAM_SET_BUT_NOT_USED)

Backport: firefly

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
(cherry picked from commit e93818df33)
2014-08-04 10:03:40 -07:00
Yehuda Sadeh
062062479a rgw: call processor->handle_data() again if needed
Fixes: #8937

Following the fix to #8928 we end up accumulating pending data that
needs to be written. Beforehand it was working fine because we were
feeding it with the exact amount of bytes we were writing.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
(cherry picked from commit 0553890e79)
2014-08-04 09:52:51 -07:00
Sage Weil
2f44d768e7 Merge pull request #2191 from ceph/wip-rgw-need-to-wait
rgw: need to pass need_to_wait for throttle_data()

Reviewed-by: Sage Weil <sage@redhat.com>
2014-08-04 09:51:43 -07:00
Loic Dachary
78b2c10aa8 Merge pull request #2195 from apeters1971/wip-ec-isa-fast-xor
EC-ISA: provide a 10% faster simple parity operation for (k, m=1)

Reviewed-by: Loic Dachary <loic@dachary.org>
2014-08-04 18:41:05 +02:00
Loic Dachary
b22a8a9e60 Merge pull request #2193 from ceph/wip-ceph-conf
ceph-conf: flush log on exit

Reviewed-by: Loic Dachary <loic@dachary.org>
2014-08-04 18:28:49 +02:00
Andreas-Joachim Peters
516101ae99 EC-ISA: provide a 10% faster simple parity operation for (k, m=1). Add simple parity unit test for k=4,m=1 2014-08-04 15:51:15 +02:00
Ma Jianpeng
985b7c2fc2 osd/ECBackend: clean up assert(r==0) in continue_recovery_op.
After the commit(d9106ce5e4), the assert(r==0) is no longer
necessary.
2014-08-04 18:02:12 +08:00
Loic Dachary
8363a94a60 erasure-code: HTML display of benchmark results
The ceph_erasure_code_benchmark output is converted into a JSON series
suitable to display in HTML with the http://www.flotcharts.org/
library. A self contained copy of the HTML,JS,CSS files is included for
durability and can be used from the source tree with:

    CEPH_ERASURE_CODE_BENCHMARK=src/ceph_erasure_code_benchmark  \
    PLUGIN_DIRECTORY=src/.libs \
        qa/workunits/erasure-code/bench.sh fplot jerasure |
        tee qa/workunits/erasure-code/bench.js

and display with:

    firefox qa/workunits/erasure-code/bench.html

Signed-off-by: Loic Dachary <loic@dachary.org>
2014-08-04 11:42:05 +02:00
Loic Dachary
3cc723450a COPYING: Cloudwatt copyright is inline
Remove partial list of contributions since Cloudwatt copyright has been
placed in the copyright notices of the files where works covered by
copyright have been included.

Signed-off-by: Loic Dachary <loic@dachary.org>
2014-08-04 11:42:03 +02:00
Loic Dachary
e11c3fcc3b erasure-code: rework benchmark suite
Expand the default suite to enumerate all cases that are relevant to the
current code base so that it is easier to consume. Namely it means

 * iterating over object sizes of 4KB (what is used by default) and
   1MB (what was previous benchmarked)
 * grouping results in series that would make sense to plot to get the
   behavior of a given technique for a series of K/M values and all
   possible erasures.

Instead of specifying the iterations to run, set the size of the total
data set to be exercised and compute the iterations by dividing it by
the object size. Since the object size varies, it is impractical to
preset the number of iterations and get meaningful results.

The PARAMETERS environment variable is added to enable the caller to
inject --parameter jerasure-variant=generic, for instance.

The packets size is calculated based on the other parameters. The
options are limited when packets are small (4KB) and it would not make a
real difference to give control over it. The packet size is capped to
a maximum of 3100 bytes which is roughly what has been found to be an
optimal value for large packets (1MB).

Signed-off-by: Loic Dachary <loic@dachary.org>
2014-08-04 11:42:01 +02:00
Loic Dachary
90592e9d0e erasure-code: properly indent ErasureCodePluginSelectJerasure.cc
Signed-off-by: Loic Dachary <loic@dachary.org>
2014-08-04 11:42:00 +02:00
Loic Dachary
be3e1e4097 erasure-code: control jerasure plugin variant selection
The jerasure-variant parameter is interpreted as the name of the plugin
variant to be loaded regardless of the available CPU features. The
values can be sse3, sse4, generic. It is undocumented and meant for
benchmarking purposes, primarily to force the generic plugin to be
loaded when the sse4 would be chosen.

Signed-off-by: Loic Dachary <loic@dachary.org>
2014-08-04 11:41:58 +02:00
Loic Dachary
5fb4354f35 erasure-code: reduce jerasure verbosity
Only output a message about adjusting the buffer size when it is
adjusted, not when the size does not need adjustment.

Signed-off-by: Loic Dachary <loic@dachary.org>
2014-08-04 11:41:56 +02:00
Loic Dachary
c7daaaf5e6 erasure-code: implement alignment on chunk sizes
jerasure expects chunk sizes that are aligned on the largest possible
vector size that could be used by SSE instructions, when available (
LARGEST_VECTOR_WORDSIZE == 16 bytes ).

For techniques derived from Cauchy, encoding and decoding is done by
subdividing the chunk into packets of packetsize bytes. The operations
are done w * packetsize bytes at a time. It follows that each chunk must
have a size that is a multiple of w * packetsize bytes.

For techniques derived from Vandermonde, it is enough for a chunk to be
a multiple of w * LARGEST_VECTOR_WORDSIZE.

ErasureCodeJerasure::get_alignment returns a size alignment constraint
that has to be enforced as a multiple of the object size. The resulting
object size then has to match the chunk constraints described above
although they have no relationship with K. For Cauchy, it leads to
excessive padding, making it impossible to set sensible parameters for
when the object size is small.

When the per_chunk_alignement data member is true, the semantic of
ErasureCodeJerasure::get_alignment is changed to return a size alignment
constraint to be enforced as a multiple of the chunk size. The
ErasureCodeJerasure::get_chunk_size method is modified to use the new
semantic when appropriate.

The jerasure-per-chunk-alignement parameter is parsed to set
per_chunk_alignement for the Vandermonde and Cauchy techniques.

The memory address of a chunk is implicitly aligned to a page boundary
because it is allocated with buffer::create_page_aligned.

http://tracker.ceph.com/issues/8475 Fixes: #8475

Signed-off-by: Loic Dachary <loic@dachary.org>
2014-08-04 10:54:21 +02:00
Loic Dachary
3987ac2a41 erasure-code: cauchy techniques allow w 8,16,32
Enforce the restriction at initialization time, the same way it is done
for Reed Solomon. Choosing a w value different from 8,16,32 will lead to
memory corruption that cannot easily be traced to the cause.

Signed-off-by: Loic Dachary <loic@dachary.org>
2014-08-04 10:54:21 +02:00
Loic Dachary
cb54605b75 mailmap: sort entries
to help avoid duplicates (found one)

Signed-off-by: Loic Dachary <loic@dachary.org>
2014-08-04 08:52:03 +02:00