]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
12 years agoconfigure: fix RPM_RELEASE
Danny Al-Gaaf [Wed, 23 Jan 2013 17:57:46 +0000 (18:57 +0100)]
configure: fix RPM_RELEASE

Use git to get RPM_RELEASE only if this is a git repo
clone and if the git command is available on the system.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
12 years agoosdmaptool: fix clitests
Sage Weil [Sun, 27 Jan 2013 04:49:47 +0000 (20:49 -0800)]
osdmaptool: fix clitests

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoosd: dump/display pool min_size
Sage Weil [Sun, 27 Jan 2013 03:33:20 +0000 (19:33 -0800)]
osd: dump/display pool min_size

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agorbd-fuse: add simple RBD FUSE client
Dan Mick [Tue, 30 Oct 2012 21:02:53 +0000 (14:02 -0700)]
rbd-fuse: add simple RBD FUSE client

Currently written in C on FUSE hi-level interfaces, so error reporting
could be better.  No serious work done for performance.  But it's
usable as it stands.

Specify -c <conf> and a mountpoint, and images show up as files in
that mountpoint.  You can create new images; they'll be created
with attributes stored in xattrs:

user.rbdfuse.imagesize: default 1GB
user.rbdfuse.imageorder: default 22
user.rbdfuse.imagefeatures: default 1 (layering)

Images may be truncated or extended by rewriting.  Currently
once an image is opened, it's not closed, so it can't be deleted
or changed outside of the fuse path.

Signed-off-by: Dan Mick <dan.mick@inktank.com>
12 years agorbd-fuse: Original code from Andreas Bluemle
Andreas Bluemle [Wed, 21 Nov 2012 07:25:48 +0000 (23:25 -0800)]
rbd-fuse: Original code from Andreas Bluemle

Signed-off-by: Andreas Bluemle <andreas.bluemle@itxperts.de>
12 years agos3/php: update to 1.5? version of API
Dan Mick [Sat, 26 Jan 2013 05:22:45 +0000 (21:22 -0800)]
s3/php: update to 1.5? version of API

Something like v1.5 of the Amazon PHP library requires the AmazonS3
constructor to be given an array of parameters rather than using
the globals.  More research needs to happen, and particularly
about the v2 API, but this might solve someone's problem with
v1.5 while we do that research.

Signed-off-by: Dan Mick <dan.mick@inktank.com>
12 years agoworkunit for iogen
tamil [Sat, 26 Jan 2013 01:59:38 +0000 (17:59 -0800)]
workunit for iogen

Signed-off-by: tamil <tamil.muthamizhan@inktank.com>
12 years agoMerge branch 'wip-osd-msgr'
Sage Weil [Sat, 26 Jan 2013 01:59:19 +0000 (17:59 -0800)]
Merge branch 'wip-osd-msgr'

Reviewed-by: Samuel Just <sam.just@inktank.com>
12 years agomon: Monitor: timecheck: only output report to dout once
Joao Eduardo Luis [Fri, 25 Jan 2013 02:48:07 +0000 (02:48 +0000)]
mon: Monitor: timecheck: only output report to dout once

Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
12 years agomon: Monitor: track timecheck round state and report on health
Joao Eduardo Luis [Wed, 23 Jan 2013 21:41:25 +0000 (21:41 +0000)]
mon: Monitor: track timecheck round state and report on health

Fixes: #3854
Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
12 years agodoc: Added new, more comprehensive OSD/PG monitoring doc.
John Wilkins [Sat, 26 Jan 2013 00:16:28 +0000 (16:16 -0800)]
doc: Added new, more comprehensive OSD/PG monitoring doc.

Signed-off-by: John Wilkins <john.wilkins@inktank.com>
12 years agodoc: Trimmed some detail and added a x-ref to detailed osd/pg monitoring doc.
John Wilkins [Sat, 26 Jan 2013 00:15:52 +0000 (16:15 -0800)]
doc: Trimmed some detail and added a x-ref to detailed osd/pg monitoring doc.

Signed-off-by: John Wilkins <john.wilkins@inktank.com>
12 years agodoc: Added osd/pg monitoring section to the index.
John Wilkins [Sat, 26 Jan 2013 00:14:38 +0000 (16:14 -0800)]
doc: Added osd/pg monitoring section to the index.

Signed-off-by: John Wilkins <john.wilkins@inktank.com>
12 years agodoc: Added x-ref links.
John Wilkins [Sat, 26 Jan 2013 00:14:12 +0000 (16:14 -0800)]
doc: Added x-ref links.

Signed-off-by: John Wilkins <john.wilkins@inktank.com>
12 years agoMerge branch 'master' of https://github.com/ceph/ceph
John Wilkins [Fri, 25 Jan 2013 22:25:06 +0000 (14:25 -0800)]
Merge branch 'master' of https://github.com/ceph/ceph

12 years agodoc: fixed description for pg in control section.
John Wilkins [Fri, 25 Jan 2013 22:24:37 +0000 (14:24 -0800)]
doc: fixed description for pg in control section.

Signed-off-by: John Wilkins <john.wilkins@inktank.com>
12 years agodoc: wider sidebar, larger font, cleaned tip CSS
Ross Turk [Fri, 25 Jan 2013 20:48:31 +0000 (12:48 -0800)]
doc: wider sidebar, larger font, cleaned tip CSS

The sidebar is now about a hundred pixels wider and the fonts
are larger throughout.  This works a lot better when you get
deep into the doc structure - it used to wrap horribly.

I also fixed how literals look inside .tip and .important.

Signed-off-by: Ross Turk <ross@inktank.com>
12 years agosharedptr_registry: remove extaneous Mutex::Locker declaration
Samuel Just [Fri, 25 Jan 2013 19:31:29 +0000 (11:31 -0800)]
sharedptr_registry: remove extaneous Mutex::Locker declaration

For some reason, the lookup() retry loop (for when happened to
race with a removal and grab an invalid WeakPtr) locked
the lock again.  This causes the #3836 crash since the lock
is already locked.  It's rare since it requires a lookup between
invalidation of the WeakPtr and removal of the WeakPtr entry.

Fixes: #3836
Backport: bobtail
Signed-off-by: Samuel Just <sam.just@inktank.com>
12 years agodoc: Added Subdomain section.
John Wilkins [Fri, 25 Jan 2013 18:54:07 +0000 (10:54 -0800)]
doc: Added Subdomain section.

fixes: #3778

Signed-off-by: John Wilkins <john.wilkins@inktank.com>
12 years agoosd/PG: include map epoch in query results
Sage Weil [Fri, 25 Jan 2013 17:40:07 +0000 (09:40 -0800)]
osd/PG: include map epoch in query results

Currently you can only infer it from the info.history.* fields.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoosd: kill unused addr-based send_map()
Sage Weil [Fri, 25 Jan 2013 17:30:00 +0000 (09:30 -0800)]
osd: kill unused addr-based send_map()

Not used, old API, bad.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoosd: share incoming maps via Connection*, not addrs
Sage Weil [Fri, 25 Jan 2013 17:29:37 +0000 (09:29 -0800)]
osd: share incoming maps via Connection*, not addrs

Kill a set of parallel methods that are using the old addr/inst-based
msgr APIs, and instead use Connection handles.  This is much safer and gets
us closer to killing the old msgr API.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoosd: pass new maps to dead osds via existing Connection
Sage Weil [Fri, 25 Jan 2013 17:27:00 +0000 (09:27 -0800)]
osd: pass new maps to dead osds via existing Connection

Previously we were sending these maps to dead osds via their old addrs
using a new outgoing connection and setting the flags so that the msgr
would clean up.  That mechanism is possibly buggy and fragile, and we can
avoid it entirely if we just reuse the existing heartbeat Connection.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoosd: requeue osdmaps on heartbeat connections for cluster connection
Sage Weil [Fri, 25 Jan 2013 17:25:28 +0000 (09:25 -0800)]
osd: requeue osdmaps on heartbeat connections for cluster connection

If we receive an OSDMap on the cluster connection, requeue it for the
cluster messenger, and process it there where we normally do.  This avoids
any concerns about locking and ordering rules.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomsgr: add get_loopback_connection() method
Sage Weil [Fri, 25 Jan 2013 17:23:23 +0000 (09:23 -0800)]
msgr: add get_loopback_connection() method

Return the Connection* for ourselves, so we can queue messages for
ourselves.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agocommon: fix cli tests on usage
Sage Weil [Fri, 25 Jan 2013 05:48:26 +0000 (21:48 -0800)]
common: fix cli tests on usage

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoRevert "filestore: disable extra committing queue allowance"
Sage Weil [Thu, 24 Jan 2013 06:16:50 +0000 (22:16 -0800)]
Revert "filestore: disable extra committing queue allowance"

This reverts commit 44dca5c8c5058acf9bc391303dc77893793ce0be.

The allowance is not only added for btrfs as of commit
e639254a0c5f8e3528fa8f2b2b451296653556bc, which makes us happy
for both non-btrfs (lower latency) and btrfs (better small io
throughput, no big stall during commit).

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoos/FileStore: only adjust up op queue for btrfs
Sage Weil [Thu, 24 Jan 2013 06:16:49 +0000 (22:16 -0800)]
os/FileStore: only adjust up op queue for btrfs

We only need to adjust up the op queue limits during commit for btrfs,
because the snapshot initiation (async create) is currently
high-latency and the op queue is quiesced during that period.

This lets us revert 44dca5c, which disabled the extra allowance because
it is generally bad for non-btrfs writeahead mode.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoadminops.rst: revert changes for as-yet-unimplemented features
Dan Mick [Fri, 25 Jan 2013 04:52:35 +0000 (20:52 -0800)]
adminops.rst: revert changes for as-yet-unimplemented features

See wip-admin-api for the new specification

Fixes: #3724
Signed-off-by: Dan Mick <dan.mick@inktank.com>
12 years agorados: remove unused "check_stdio" parameter
Dan Mick [Thu, 24 Jan 2013 21:38:25 +0000 (13:38 -0800)]
rados: remove unused "check_stdio" parameter

Signed-off-by: Dan Mick <dan.mick@inktank.com>
12 years agorados: obey op_size for 'get'
Sage Weil [Thu, 24 Jan 2013 05:31:11 +0000 (21:31 -0800)]
rados: obey op_size for 'get'

Otherwise we try to read the whole object in one go, which doesn't bode
well for large objects (either non-optimal or simply broken).

Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Dan Mick <dan.mick@inktank.com>
12 years agoFileStore: ping TPHandle after each operation in _do_transactions
Samuel Just [Thu, 24 Jan 2013 20:02:09 +0000 (12:02 -0800)]
FileStore: ping TPHandle after each operation in _do_transactions

Each completed operation in the transaction proves thread
liveness, a stuck thread should still trigger the timeouts.

Fixes: #3928
Backport: bobtail
Signed-off-by: Samuel Just <sam.just@inktank.com>
12 years agoOSD: use TPHandle in peering_wq
Samuel Just [Thu, 24 Jan 2013 19:07:37 +0000 (11:07 -0800)]
OSD: use TPHandle in peering_wq

Implement _process overload with TPHandle argument and use
that to ping the hb map between pgs and between map epochs
when advancing a pg.  The thread will still timeout if
genuinely stuck at any point.

Fixes: 3905
Backport: bobtail
Signed-off-by: Samuel Just <sam.just@inktank.com>
12 years agoWorkQueue: add TPHandle to allow _process to ping the hb map
Samuel Just [Thu, 24 Jan 2013 19:04:04 +0000 (11:04 -0800)]
WorkQueue: add TPHandle to allow _process to ping the hb map

Backport: bobtail
Signed-off-by: Samuel Just <sam.just@inktank.com>
12 years agolibcephfs-java test: use provided environment
Sage Weil [Thu, 24 Jan 2013 23:13:37 +0000 (15:13 -0800)]
libcephfs-java test: use provided environment

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agocommon: only show -d, -f options for daemons
Sage Weil [Thu, 24 Jan 2013 21:29:03 +0000 (13:29 -0800)]
common: only show -d, -f options for daemons

Fixes: #3073
Signed-off-by: Sage Weil <sage@inktank.com>
12 years agodoc: Syntax fixes.
John Wilkins [Thu, 24 Jan 2013 21:13:03 +0000 (13:13 -0800)]
doc: Syntax fixes.

Signed-off-by: John Wilkins <john.wilkins@inktank.com>
12 years agodoc: Updated usage for Bobtail.
John Wilkins [Thu, 24 Jan 2013 20:58:29 +0000 (12:58 -0800)]
doc: Updated usage for Bobtail.

fixes: #3831

Signed-off-by: John Wilkins <john.wilkins@inktank.com>
12 years agodoc: Updated usage for Bobtail.
John Wilkins [Thu, 24 Jan 2013 20:57:14 +0000 (12:57 -0800)]
doc: Updated usage for Bobtail.

Signed-off-by: John Wilkins <john.wilkins@inktank.com>
12 years agoMerge branch 'master' of https://github.com/ceph/ceph
John Wilkins [Thu, 24 Jan 2013 20:47:58 +0000 (12:47 -0800)]
Merge branch 'master' of https://github.com/ceph/ceph

12 years agodoc: Added example of ext4 user_xattr mount option.
John Wilkins [Thu, 24 Jan 2013 20:46:49 +0000 (12:46 -0800)]
doc: Added example of ext4 user_xattr mount option.

Signed-off-by: John Wilkins <john.wilkins@inktank.com>
12 years agorgw_rest: Make fallback uri configurable.
caleb miles [Mon, 14 Jan 2013 17:16:12 +0000 (12:16 -0500)]
rgw_rest: Make fallback uri configurable.

Some HTTP servers, notabily lighttp, do not set SCRIPT_URI, make the fallback
string configurable.

Signed-off-by: caleb miles <caleb.miles@inktank.com>
Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
12 years agocommon/HeartbeatMap: fix uninitialized variable
Sage Weil [Thu, 24 Jan 2013 18:52:46 +0000 (10:52 -0800)]
common/HeartbeatMap: fix uninitialized variable

Introduced by me in 132045ce085e8584a3e177af552ee7a5205b13d8.  Thank you,
valgrind!

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agolibcephfs-java test: jar files are in /usr/local/share/java, it seems
Sage Weil [Thu, 24 Jan 2013 18:41:34 +0000 (10:41 -0800)]
libcephfs-java test: jar files are in /usr/local/share/java, it seems

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agowireshark: fix indention
Danny Al-Gaaf [Thu, 24 Jan 2013 17:21:21 +0000 (18:21 +0100)]
wireshark: fix indention

Fix indention.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
12 years agowireshark: fix guint64 print format handling
Danny Al-Gaaf [Thu, 24 Jan 2013 17:21:20 +0000 (18:21 +0100)]
wireshark: fix guint64 print format handling

Use G_GUINT64_FORMAT to handle print format of guint64 correctly.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
12 years agoPendingReleaseNotes: pool removal cli changes
Sage Weil [Thu, 24 Jan 2013 02:50:57 +0000 (18:50 -0800)]
PendingReleaseNotes: pool removal cli changes

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoMerge remote-tracking branch 'gh/wip-rm-pool'
Sage Weil [Thu, 24 Jan 2013 02:49:05 +0000 (18:49 -0800)]
Merge remote-tracking branch 'gh/wip-rm-pool'

Reviewed-by: Samuel Just <sam.just@inktank.com>
12 years agoMerge remote-tracking branch 'gh/wip-3832-oc-flushrange'
Sage Weil [Thu, 24 Jan 2013 02:47:25 +0000 (18:47 -0800)]
Merge remote-tracking branch 'gh/wip-3832-oc-flushrange'

Reviewed-by: Sage Weil <sage@inktank.com>
12 years agoMerge branch 'wip-osd-hb'
Sage Weil [Thu, 24 Jan 2013 02:40:49 +0000 (18:40 -0800)]
Merge branch 'wip-osd-hb'

Reviewed-by: Samuel Just <sam.just@inktank.com>
12 years agoMerge remote-tracking branch 'upstream/wip_push_after_complete'
Samuel Just [Thu, 24 Jan 2013 00:55:33 +0000 (16:55 -0800)]
Merge remote-tracking branch 'upstream/wip_push_after_complete'

Reviewed-by: Sage Weil <sage@inktank.com>
12 years agoReplicatedPG: handle omap > max_recovery_chunk
Samuel Just [Wed, 23 Jan 2013 20:49:04 +0000 (12:49 -0800)]
ReplicatedPG: handle omap > max_recovery_chunk

span_of fails if len == 0.

Backport: bobtail
Signed-off-by: Samuel Just <sam.just@inktank.com>
12 years agoReplicatedPG: correctly handle omap key larger than max chunk
Samuel Just [Wed, 23 Jan 2013 20:18:31 +0000 (12:18 -0800)]
ReplicatedPG: correctly handle omap key larger than max chunk

Backport: bobtail
Signed-off-by: Samuel Just <sam.just@inktank.com>
12 years agoReplicatedPG: start scanning omap at omap_recovered_to
Samuel Just [Wed, 23 Jan 2013 20:15:10 +0000 (12:15 -0800)]
ReplicatedPG: start scanning omap at omap_recovered_to

Previously, we started scanning omap after omap_recovered_to.
This is a problem since the break in the loop implies that
omap_recovered_to is the first key not recovered.

Backport: bobtail
Signed-off-by: Samuel Just <sam.just@inktank.com>
12 years agoReplicatedPG: don't finish_recovery_op until the transaction completes
Samuel Just [Wed, 23 Jan 2013 19:50:13 +0000 (11:50 -0800)]
ReplicatedPG: don't finish_recovery_op until the transaction completes

Signed-off-by: Samuel Just <sam.just@inktank.com>
12 years agoReplicatedPG: ack push only after transaction has completed
Samuel Just [Wed, 23 Jan 2013 19:35:47 +0000 (11:35 -0800)]
ReplicatedPG: ack push only after transaction has completed

Signed-off-by: Samuel Just <sam.just@inktank.com>
12 years agoObjectStore: add queue_transactions with oncomplete
Samuel Just [Wed, 23 Jan 2013 19:13:28 +0000 (11:13 -0800)]
ObjectStore: add queue_transactions with oncomplete

Signed-off-by: Samuel Just <sam.just@inktank.com>
12 years agorados: safety interlock on 'rmpool' command
Sage Weil [Wed, 23 Jan 2013 16:49:06 +0000 (08:49 -0800)]
rados: safety interlock on 'rmpool' command

This is a very easy way for a user to do a lot of damage with no way back.
Make sure they mean it.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agomon: implement safety interlock for deleting pools
Sage Weil [Wed, 23 Jan 2013 16:40:13 +0000 (08:40 -0800)]
mon: implement safety interlock for deleting pools

This is a very easy way for users to accidentally to a *lot* of damage.
Make it an annoying manual process to actually do this.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agocommon/HeartbeatMap: inject unhealthy heartbeat for N seconds
Sage Weil [Wed, 23 Jan 2013 05:18:45 +0000 (21:18 -0800)]
common/HeartbeatMap: inject unhealthy heartbeat for N seconds

This lets us test code that is triggered by an unhealthy heartbeat in a
generic way.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoos/FileStore: add stall injection into filestore op queue
Sage Weil [Wed, 23 Jan 2013 02:08:22 +0000 (18:08 -0800)]
os/FileStore: add stall injection into filestore op queue

Allow admin to artificially induce a stall in the op queue.  Forces the
thread(s) to sleep for N seconds.  We pause for 1 second increments and
recheck the value so that a previously stalled thread can be unwedged by
reinjecting a lower value (or 0).  To stall indefinitely, just injust
very large number.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoosd: do not join cluster if not healthy
Sage Weil [Wed, 23 Jan 2013 02:03:10 +0000 (18:03 -0800)]
osd: do not join cluster if not healthy

If our internal heartbeats are failing, do not send a boot message and try
to join the cluster.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoosd: hold lock while calling start_boot on startup
Sage Weil [Wed, 23 Jan 2013 02:01:07 +0000 (18:01 -0800)]
osd: hold lock while calling start_boot on startup

This probably doesn't strictly matter because start_boot doesn't need the
lock (currently) and few other threads should be running, but it is
better to be consistent.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoosd: do not reply to ping if internal heartbeat is not healthy
Sage Weil [Wed, 23 Jan 2013 01:56:32 +0000 (17:56 -0800)]
osd: do not reply to ping if internal heartbeat is not healthy

If we find that our internal threads are stalled, do not reply to ping
requests.  If we do this long enough, peers will mark us down.  If we are
only transiently unhealthy, we will reply to the next ping and they will
be satisfied.  If we are unhealthy and marked down, and eventually recover,
we will mark ourselves back up.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoosd: reduce op thread heartbeat default 30 -> 15 seconds
Sage Weil [Wed, 23 Jan 2013 01:53:40 +0000 (17:53 -0800)]
osd: reduce op thread heartbeat default 30 -> 15 seconds

If the thread stalls for 15 seconds, let our internal heartbeat fail.
This will let us internally respond more quickly to a stalled or failing
disk.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoMerge pull request #35 from cholcombe973/master
Yehuda Sadeh [Wed, 23 Jan 2013 00:54:39 +0000 (16:54 -0800)]
Merge pull request #35 from cholcombe973/master

Making the usage details a little better.

12 years agoMerge remote-tracking branch 'gh/wip-3833-b'
Sage Weil [Wed, 23 Jan 2013 00:13:14 +0000 (16:13 -0800)]
Merge remote-tracking branch 'gh/wip-3833-b'

Conflicts:
src/osd/OSD.cc
src/osd/OSD.h

Reviewed-by: Samuel Just <sam.just@inktank.com>
12 years agoUpdate src/rgw/rgw_admin.cc 35/head
cholcombe973 [Wed, 23 Jan 2013 00:07:27 +0000 (19:07 -0500)]
Update src/rgw/rgw_admin.cc

Improved the usage message.

12 years agoMerge branch 'wip-3651'
David Zafman [Tue, 22 Jan 2013 23:58:44 +0000 (15:58 -0800)]
Merge branch 'wip-3651'

12 years agoosd: debug support for omap deep-scrub
David Zafman [Tue, 15 Jan 2013 00:37:09 +0000 (16:37 -0800)]
osd: debug support for omap deep-scrub

Deep-scrub test support through admin socket

Signed-off-by: David Zafman <david.zafman@inktank.com>
Reviewed-by: Samuel Just <sam.just@inktank.com>
12 years agoosd: Add digest of omap for deep-scrub
David Zafman [Wed, 9 Jan 2013 03:24:13 +0000 (19:24 -0800)]
osd: Add digest of omap for deep-scrub

Add ScrubMap encode/decode v4 message with omap digest
Compute digest of header and key/value.  Use bufferlist
to reflect structure and compute as we go, clearing
bufferlist to reduce memory usage.

Signed-off-by: David Zafman <david.zafman@inktank.com>
Reviewed-by: Samuel Just <sam.just@inktank.com>
12 years agoosd: Add missing unregister_command() in OSD::shutdown()
David Zafman [Fri, 18 Jan 2013 17:31:00 +0000 (09:31 -0800)]
osd: Add missing unregister_command() in OSD::shutdown()

Signed-off-by: David Zafman <david.zafman@inktank.com>
Reviewed-by: Samuel Just <sam.just@inktank.com>
12 years agoconfig: helper to identify internal fields we should be quiet about
Sage Weil [Tue, 22 Jan 2013 22:59:30 +0000 (14:59 -0800)]
config: helper to identify internal fields we should be quiet about

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agocommon/Throttle: fix modeline, whitespace
Sage Weil [Tue, 22 Jan 2013 22:56:36 +0000 (14:56 -0800)]
common/Throttle: fix modeline, whitespace

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agodoc: Modified usage for upgrade.
John Wilkins [Tue, 22 Jan 2013 22:55:19 +0000 (14:55 -0800)]
doc: Modified usage for upgrade.

Signed-off-by: John Wilkins <john.wilkins@inktank.com>
12 years agoosd: improve sub_op flag points
Sage Weil [Tue, 22 Jan 2013 05:02:01 +0000 (21:02 -0800)]
osd: improve sub_op flag points

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoosd: refactor ReplicatedPG::do_sub_op
Sage Weil [Tue, 22 Jan 2013 04:55:20 +0000 (20:55 -0800)]
osd: refactor ReplicatedPG::do_sub_op

PULL is the only case where we don't wait for active.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoosd: make last state for slow requests more informative
Sage Weil [Tue, 22 Jan 2013 00:36:36 +0000 (16:36 -0800)]
osd: make last state for slow requests more informative

Report on the last event string, and pass in important context for the
op event list, including:

 - which peers were sent sub ops and we are waiting for
 - which pg queue we are delayed by

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoosd: dump op priority queue state via admin socket
Sage Weil [Mon, 21 Jan 2013 23:59:07 +0000 (15:59 -0800)]
osd: dump op priority queue state via admin socket

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoosd: simplify asok to single callback
Sage Weil [Mon, 21 Jan 2013 23:50:33 +0000 (15:50 -0800)]
osd: simplify asok to single callback

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agocommon/PrioritizedQueue: dump state to Formatter
Sage Weil [Mon, 21 Jan 2013 23:58:57 +0000 (15:58 -0800)]
common/PrioritizedQueue: dump state to Formatter

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agocommon/PrioritizedQueue: add min cost, max tokens per bucket
Sage Weil [Mon, 21 Jan 2013 23:29:28 +0000 (15:29 -0800)]
common/PrioritizedQueue: add min cost, max tokens per bucket

Two problems.

First, we need to cap the tokens per bucket.  Otherwise, a stream of
items at one priority over time will indefinitely inflate the tokens
available at another priority.  The cap should represent how "bursty"
we allow a given bucket to be.  Start with 4MB for now.

Second, set a floor on the item cost.  Otherwise, we can have an
infinite queue of 0 cost items that start over queues.  More
realistically, we need to balance the overhead of processing small items
with the cost of large items.  I.e., a 4 KB item is not 1/1000th as
expensive as a 4MB item.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agocommon/PrioritizedQueue: buckets -> tokens
Sage Weil [Mon, 21 Jan 2013 22:52:54 +0000 (14:52 -0800)]
common/PrioritizedQueue: buckets -> tokens

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agonote puller's max chunk in pull requests
Sage Weil [Mon, 21 Jan 2013 22:31:00 +0000 (14:31 -0800)]
note puller's max chunk in pull requests

this lets us calculate a cost value

12 years agoosd: add OpRequest flag point when commit is sent
Sage Weil [Mon, 21 Jan 2013 22:14:25 +0000 (14:14 -0800)]
osd: add OpRequest flag point when commit is sent

With writeahead journaling in particular, we can get requests that
stay in the queue for a long time even after the commit is sent to the
client while we are waiting for the transaction to apply to the fs.
Instead of showing up as 'waiting for subops', make it clear that the
client has gotten its reply and it is local state that is slow.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoosd: set PULL subop cost to size of requested data
Sage Weil [Mon, 21 Jan 2013 21:57:59 +0000 (13:57 -0800)]
osd: set PULL subop cost to size of requested data

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoosd: use Message::get_cost() function for queueing
Sage Weil [Mon, 21 Jan 2013 21:57:38 +0000 (13:57 -0800)]
osd: use Message::get_cost() function for queueing

The data payload is a decent proxy for cost in most cases, but not all.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoosd: debug msg prio, cost, latency
Sage Weil [Mon, 21 Jan 2013 21:25:21 +0000 (13:25 -0800)]
osd: debug msg prio, cost, latency

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agofilestore: filestore_queue_max_ops 500 -> 50
Sage Weil [Tue, 22 Jan 2013 05:05:00 +0000 (21:05 -0800)]
filestore: filestore_queue_max_ops 500 -> 50

Having a deep queue limits the effectiveness of the priority queues
above by adding additional latency.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoosd: target transaction size 300 -> 30
Sage Weil [Tue, 22 Jan 2013 04:00:26 +0000 (20:00 -0800)]
osd: target transaction size 300 -> 30

Small transactions make pg removal nicer to the op queue.  It also slows
down PG deletion a bit, which may exacerbate the PG resurrection case
until #3884 is addressed.

At least on user reported this fixed an osd that kept failing due to
an internal heartbeat failure.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agofilestore: disable extra committing queue allowance
Sage Weil [Sun, 20 Jan 2013 01:33:25 +0000 (17:33 -0800)]
filestore: disable extra committing queue allowance

The motivation here is if there is a problem draining the op queue
during a sync.  For XFS and ext4, this isn't generally a problem: you
can continue to make writes while a syncfs(2) is in progress.  There
are currently some possible implementation issues with btrfs, but we
have not demonstrated them recently.

Meanwhile, this can cause queue length spikes that screw up latency.
During a commit, we allow too much into the queue (say, recovery
operations).  After the sync finishes, we have to drain it out before
we can queue new work (say, a higher priority client request).  Having
a deep queue below the point where priorities order work limits the
value of the priority queue.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoos/FileStore: allow filestore_queue_max_{ops,bytes} to be adjusted at runtime
Sage Weil [Tue, 22 Jan 2013 03:55:26 +0000 (19:55 -0800)]
os/FileStore: allow filestore_queue_max_{ops,bytes} to be adjusted at runtime

The 'committing' ones too.

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoosd: make osd_max_backfills dynamically adjustable
Sage Weil [Sun, 20 Jan 2013 06:06:27 +0000 (22:06 -0800)]
osd: make osd_max_backfills dynamically adjustable

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoosd: make OSD a config observer
Sage Weil [Sun, 20 Jan 2013 02:28:35 +0000 (18:28 -0800)]
osd: make OSD a config observer

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoqa/workunit: Add iozone test script for sync
Sam Lang [Sat, 19 Jan 2013 00:57:37 +0000 (18:57 -0600)]
qa/workunit: Add iozone test script for sync

The iozone-sync.sh script runs iozone testing
various sync flags, O_SYNC, O_DSYNC, O_RSYNC.

Signed-off-by: Sam Lang <sam.lang@inktank.com>
12 years agoobjectcacher: Remove commit_set, use flush_set
Sam Lang [Fri, 18 Jan 2013 20:59:12 +0000 (14:59 -0600)]
objectcacher: Remove commit_set, use flush_set

commit_set() and flush_set() are identical in functionality,
so use flush_set everywhere and remove commit_set from
the code.

Also fixes a bug in flush_set where the finisher context was
getting freed twice if no objects needed to be flushed.

Signed-off-by: Sam Lang <sam.lang@inktank.com>
12 years agotesting: add workunit to run hadoop internal tests.
Joe Buck [Fri, 4 Jan 2013 05:35:32 +0000 (21:35 -0800)]
testing: add workunit to run hadoop internal tests.

This workunit runs the internal tests for our local branch of hadoop-common.
Requires ant be installed on the host running the test.

Signed-off-by: Joe Buck <jbbuck@gmail.com>
12 years agoMerge branch 'wip-config'
Sage Weil [Tue, 22 Jan 2013 18:25:37 +0000 (10:25 -0800)]
Merge branch 'wip-config'

Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
12 years agoconfig: report on log level changes
Sage Weil [Mon, 21 Jan 2013 17:24:58 +0000 (09:24 -0800)]
config: report on log level changes

Signed-off-by: Sage Weil <sage@inktank.com>
12 years agoconfig: clean up output
Sage Weil [Tue, 22 Jan 2013 18:24:37 +0000 (10:24 -0800)]
config: clean up output

Report a simple list of key='value', without extra verbosity.

Signed-off-by: Sage Weil <sage@inktank.com>