]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
16 years agoosd: clean up mkfs vs peek_super
Sage Weil [Thu, 20 Nov 2008 22:40:08 +0000 (14:40 -0800)]
osd: clean up mkfs vs peek_super

16 years agoosd: fix peek_whoami
Sage Weil [Thu, 20 Nov 2008 22:00:33 +0000 (14:00 -0800)]
osd: fix peek_whoami

16 years agoosd: make peek_whoami verify fsid
Sage Weil [Thu, 20 Nov 2008 21:54:44 +0000 (13:54 -0800)]
osd: make peek_whoami verify fsid

16 years agoosd: decode superblock properly
Sage Weil [Thu, 20 Nov 2008 21:54:34 +0000 (13:54 -0800)]
osd: decode superblock properly

16 years agovstart: 3 osds
Sage Weil [Thu, 20 Nov 2008 21:42:06 +0000 (13:42 -0800)]
vstart: 3 osds

16 years agocstring: pre-terminate even if content unspecified
Sage Weil [Thu, 20 Nov 2008 21:31:13 +0000 (13:31 -0800)]
cstring: pre-terminate even if content unspecified

16 years agoosd: feed type name into workqueue
Sage Weil [Wed, 19 Nov 2008 19:19:28 +0000 (11:19 -0800)]
osd: feed type name into workqueue

16 years agoosd: convert snap trimming to snap_trim_wq
Sage Weil [Wed, 19 Nov 2008 19:14:53 +0000 (11:14 -0800)]
osd: convert snap trimming to snap_trim_wq

16 years agoosd: basic scrub works
Sage Weil [Wed, 19 Nov 2008 19:04:37 +0000 (11:04 -0800)]
osd: basic scrub works

16 years agoosd: update stats when op is applied
Sage Weil [Wed, 19 Nov 2008 19:04:23 +0000 (11:04 -0800)]
osd: update stats when op is applied

16 years agoosd: add scrub wq
Sage Weil [Wed, 19 Nov 2008 00:46:52 +0000 (16:46 -0800)]
osd: add scrub wq

16 years agoos: use nstring instead of string for attrsets
Sage Weil [Thu, 20 Nov 2008 21:22:37 +0000 (13:22 -0800)]
os: use nstring instead of string for attrsets

16 years agoebofs: fix occasional bdev shutdown hang
Sage Weil [Thu, 20 Nov 2008 20:44:37 +0000 (12:44 -0800)]
ebofs: fix occasional bdev shutdown hang

16 years agoosd: adjust merge_log
Sage Weil [Thu, 20 Nov 2008 19:54:09 +0000 (11:54 -0800)]
osd: adjust merge_log

Object should only be marked missing if new entry is newer.  If
they are the same, it may or may not be missing (depending on
whether it was before merge_log).

16 years agomsgr: ref count message while they are owned by the messenger
Sage Weil [Thu, 20 Nov 2008 19:31:12 +0000 (11:31 -0800)]
msgr: ref count message while they are owned by the messenger

Users still assume they hold the only reference, at least until
they call send_message.

One caveat is that ms_handle_failure is passed a message with an
unknown number of refs.  The method should not try to free or
re-use the message.

16 years agomsgr: reference count messenger
Sage Weil [Thu, 20 Nov 2008 18:36:19 +0000 (10:36 -0800)]
msgr: reference count messenger

We want an explicit destroy() method, because the SimpleMessenger
needs to join the dispatch thread, and that can't happen just on
the last reference drop because that may happen in the dispatch
thread itself.

16 years agovstart: launch valgrind with --valgrind
Sage Weil [Thu, 20 Nov 2008 18:32:42 +0000 (10:32 -0800)]
vstart: launch valgrind with --valgrind

just for cosd atm

16 years agomsgr todo
Sage Weil [Thu, 20 Nov 2008 17:52:33 +0000 (09:52 -0800)]
msgr todo

16 years agoMakefile: adjust link order (libcommon first _and_ last)
Sage Weil [Thu, 20 Nov 2008 17:52:22 +0000 (09:52 -0800)]
Makefile: adjust link order (libcommon first _and_ last)

16 years agoebofs: add new objects to main collection
Sage Weil [Wed, 19 Nov 2008 19:00:25 +0000 (11:00 -0800)]
ebofs: add new objects to main collection

16 years agomds: remove session from xlist before deleting
Sage Weil [Thu, 20 Nov 2008 16:15:13 +0000 (08:15 -0800)]
mds: remove session from xlist before deleting

16 years agoclient: remove xlist items before deleting
Sage Weil [Thu, 20 Nov 2008 16:12:45 +0000 (08:12 -0800)]
client: remove xlist items before deleting

16 years agomds: remove Capability from session list before deleting
Sage Weil [Thu, 20 Nov 2008 16:09:27 +0000 (08:09 -0800)]
mds: remove Capability from session list before deleting

16 years agomds: pull scatterlock of xlist in destructor
Sage Weil [Thu, 20 Nov 2008 06:01:14 +0000 (22:01 -0800)]
mds: pull scatterlock of xlist in destructor

Really, this should happen sooner, but for now this is equivalent to the
old xlist::item destructor.

16 years agoos: clean up ObjectStore::Transaction interface
Sage Weil [Thu, 20 Nov 2008 05:50:39 +0000 (21:50 -0800)]
os: clean up ObjectStore::Transaction interface

Also, fix attrset * thing.. that doesn't look safe!

16 years agomsg: initialize footer
Sage Weil [Thu, 20 Nov 2008 05:48:13 +0000 (21:48 -0800)]
msg: initialize footer

16 years agolockdep: turn lockdep off during shutdown
Sage Weil [Thu, 20 Nov 2008 05:41:26 +0000 (21:41 -0800)]
lockdep: turn lockdep off during shutdown

We can't function after the static items in lockdep.cc destruct.  Disable
lockdep before that happens.

16 years agoosd: fix osd_reqid_t hash
Sage Weil [Thu, 20 Nov 2008 05:34:00 +0000 (21:34 -0800)]
osd: fix osd_reqid_t hash

blobhash is only safe on packed types.

16 years agofilestore: pad with zeroed buffer
Sage Weil [Thu, 20 Nov 2008 05:33:32 +0000 (21:33 -0800)]
filestore: pad with zeroed buffer

Shut up valgrind

16 years agoxlist: enforce removal from xlist
Sage Weil [Thu, 20 Nov 2008 03:43:58 +0000 (19:43 -0800)]
xlist: enforce removal from xlist

We want to ensure that removal takes place in the correct locking context,
not whatever context the ::item is destroyed in.

16 years agomds: fix uninit value
Sage Weil [Thu, 20 Nov 2008 00:47:12 +0000 (16:47 -0800)]
mds: fix uninit value

16 years agoosd: adjust missing in merge_old_entry
Sage Weil [Thu, 20 Nov 2008 00:38:27 +0000 (16:38 -0800)]
osd: adjust missing in merge_old_entry

Our "old" entry may have been newer, and missing.. remove from missing, and re-add
"new" entry to ensure missing reflects the correct object version.

16 years agoosd: type cleanup
Sage Weil [Wed, 19 Nov 2008 18:30:10 +0000 (10:30 -0800)]
osd: type cleanup

16 years agoosd: more merge_log updates
Sage Weil [Thu, 20 Nov 2008 00:28:09 +0000 (16:28 -0800)]
osd: more merge_log updates

16 years agomonclient: dont free messenger until races there are fixed
Sage Weil [Thu, 20 Nov 2008 00:28:49 +0000 (16:28 -0800)]
monclient: dont free messenger until races there are fixed

16 years agocmonctl: fix busy loop
Sage Weil [Wed, 19 Nov 2008 21:12:57 +0000 (13:12 -0800)]
cmonctl: fix busy loop

16 years agomon: ignore 0-byte latest
Sage Weil [Wed, 19 Nov 2008 21:09:38 +0000 (13:09 -0800)]
mon: ignore 0-byte latest

16 years agoosd: merge_log fix when logs abut but do not overlap
Sage Weil [Wed, 19 Nov 2008 18:31:31 +0000 (10:31 -0800)]
osd: merge_log fix when logs abut but do not overlap

16 years agokclient: different handling of EIO, bad crc
Yehuda Sadeh [Wed, 19 Nov 2008 00:54:21 +0000 (16:54 -0800)]
kclient: different handling of EIO, bad crc

16 years agodstart: smaller cluster
Sage Weil [Wed, 19 Nov 2008 00:47:36 +0000 (16:47 -0800)]
dstart: smaller cluster

16 years agoosd: track bytes/kb usage over clones too
Sage Weil [Tue, 18 Nov 2008 23:03:27 +0000 (15:03 -0800)]
osd: track bytes/kb usage over clones too

16 years agoosd: track per-pg bytes, kb utilization
Sage Weil [Tue, 18 Nov 2008 21:57:32 +0000 (13:57 -0800)]
osd: track per-pg bytes, kb utilization

For non-clones only.

16 years agoosd: fix update_stats
Sage Weil [Tue, 18 Nov 2008 21:53:55 +0000 (13:53 -0800)]
osd: fix update_stats

16 years agoosd: verify monmap.fsid matches superblock on startup
Sage Weil [Tue, 18 Nov 2008 21:53:33 +0000 (13:53 -0800)]
osd: verify monmap.fsid matches superblock on startup

16 years agoosd: include fsid in OSDPing, and verify
Sage Weil [Tue, 18 Nov 2008 21:53:13 +0000 (13:53 -0800)]
osd: include fsid in OSDPing, and verify

16 years agoosd: maintain some per-pg stats (object counts, for now)
Sage Weil [Tue, 18 Nov 2008 05:16:33 +0000 (21:16 -0800)]
osd: maintain some per-pg stats (object counts, for now)

We'll add disk usage soon.

16 years agodstart: larger cluster
Sage Weil [Tue, 18 Nov 2008 04:42:38 +0000 (20:42 -0800)]
dstart: larger cluster

16 years agomsgr: fix reconnect after error
Sage Weil [Tue, 18 Nov 2008 23:52:54 +0000 (15:52 -0800)]
msgr: fix reconnect after error

Items in sent queue weren't being moved back to out queue, and
in_seq/out_seq weren't being set properly after an incoming
connection replaced an existing connection.

16 years agomount: typo
Yehuda Sadeh [Tue, 18 Nov 2008 18:09:07 +0000 (10:09 -0800)]
mount: typo

16 years agomds: add new directory to new_dirfrags list
Sage Weil [Tue, 18 Nov 2008 04:37:05 +0000 (20:37 -0800)]
mds: add new directory to new_dirfrags list

This ensures the directory gets committed before the mkdir event
is trimmed from the journal.  Fixes the failed assertion in
CDir::_fetched seen on mds recovery (due to a missing directory object).

16 years agomds: unqueue recovery on purging inodes
Sage Weil [Tue, 18 Nov 2008 00:46:38 +0000 (16:46 -0800)]
mds: unqueue recovery on purging inodes

If an inode is queued for file size recovery when it is purged,
unqueue it.  This catches the log replay case where client
reconnect queues up the inode.

Also, in eval_stray, skip inodes that are queued.  This should
avoid a recovery running concurrently with the purge (which could
be problematic, as it would carry a pointer to *in).

16 years agokclient: fix unmount (broken by 01a33259dbbeb380104d185073f8802eee743f98)
Sage Weil [Tue, 18 Nov 2008 00:03:47 +0000 (16:03 -0800)]
kclient: fix unmount (broken by 01a33259dbbeb380104d185073f8802eee743f98)

16 years agokclient: limit incoming messages size
Yehuda Sadeh [Mon, 17 Nov 2008 23:37:32 +0000 (15:37 -0800)]
kclient: limit incoming messages size

16 years agomount: remove extra log
Yehuda Sadeh [Mon, 17 Nov 2008 23:37:05 +0000 (15:37 -0800)]
mount: remove extra log

16 years agoMerge branch 'unstable' of ssh://ceph.newdream.net/git/ceph into unstable
Yehuda Sadeh [Mon, 17 Nov 2008 23:32:56 +0000 (15:32 -0800)]
Merge branch 'unstable' of ssh://ceph.newdream.net/git/ceph into unstable

16 years agocreated mount helper, can resolve mount addresses
Yehuda Sadeh [Mon, 17 Nov 2008 23:32:07 +0000 (15:32 -0800)]
created mount helper, can resolve mount addresses

16 years agoosd: rewrite merge_log
Sage Weil [Mon, 17 Nov 2008 22:42:48 +0000 (14:42 -0800)]
osd: rewrite merge_log

16 years agocmonctl: include original command in command reply to avoid weirdness
Sage Weil [Mon, 17 Nov 2008 22:21:52 +0000 (14:21 -0800)]
cmonctl: include original command in command reply to avoid weirdness

16 years agoosd: fix build_prior any_up logic again
Sage Weil [Mon, 17 Nov 2008 22:08:30 +0000 (14:08 -0800)]
osd: fix build_prior any_up logic again

last_epoch_started may be anywhere in the interval.

16 years agofilestore: fix btrfs detection based on latest btrfs-unstable
Sage Weil [Mon, 17 Nov 2008 22:00:23 +0000 (14:00 -0800)]
filestore: fix btrfs detection based on latest btrfs-unstable

Look for working CLONE_RANGE ioctl.

16 years agotodos
Sage Weil [Mon, 17 Nov 2008 21:59:55 +0000 (13:59 -0800)]
todos

16 years agocmonctl: pick new mon on timeout
Sage Weil [Mon, 17 Nov 2008 20:57:11 +0000 (12:57 -0800)]
cmonctl: pick new mon on timeout

16 years agomon: fix get_latest
Sage Weil [Mon, 17 Nov 2008 20:54:53 +0000 (12:54 -0800)]
mon: fix get_latest

16 years agomsg: non-destructively copy data buffers in set_data()
Sage Weil [Mon, 17 Nov 2008 22:42:30 +0000 (14:42 -0800)]
msg: non-destructively copy data buffers in set_data()

16 years agomds: use last_sent (not last_open) to untangle cap release races
Sage Weil [Mon, 17 Nov 2008 21:23:03 +0000 (13:23 -0800)]
mds: use last_sent (not last_open) to untangle cap release races

If we use last_open, the client has to be smart about ignoring
MDS revocations after it sends a release request.  (Or, the MDS has
to somehow know the ack is for an old cap.)  Instead, just
serialize release over all cap messages sent to the client.  It may
make for a slightly chattier cap release in some cases, but those
cases should be very rare, and this is simpler.

16 years agomds: be more forgiving on EPurgeFinish
Sage Weil [Sat, 15 Nov 2008 00:54:32 +0000 (16:54 -0800)]
mds: be more forgiving on EPurgeFinish

Inode may not be in cache because of purge_stray() avoiding
journaling it's intent to purge.  If that changes down the line,
add the assertion back.

16 years agoosd: adjust build_prior any_up logic
Sage Weil [Mon, 17 Nov 2008 18:47:30 +0000 (10:47 -0800)]
osd: adjust build_prior any_up logic

We mark the pg 'down' unless there is at least one osd alive specifically
from the last epoch started.

16 years agokclient: silence down some warning
Yehuda Sadeh [Mon, 17 Nov 2008 18:38:16 +0000 (10:38 -0800)]
kclient: silence down some warning

16 years agomds: fix an erroneous assertion (sage)
Yehuda Sadeh [Mon, 17 Nov 2008 18:37:30 +0000 (10:37 -0800)]
mds: fix an erroneous assertion (sage)

16 years agoosd todos
Sage Weil [Mon, 17 Nov 2008 17:15:44 +0000 (09:15 -0800)]
osd todos

16 years agoosd: fix deadlock on map_lock vs peer_stat_lock
Sage Weil [Mon, 17 Nov 2008 17:13:08 +0000 (09:13 -0800)]
osd: fix deadlock on map_lock vs peer_stat_lock

16 years agoosd: remember past intervals instead of recalculating each time
Sage Weil [Mon, 17 Nov 2008 17:03:47 +0000 (09:03 -0800)]
osd: remember past intervals instead of recalculating each time

This _vastly_ improves the speed of build_prior (and thus activate_map).
There is no need to recalculate this information each time as it is fully
dependent on _old_ OSDMaps, not current cluster state.

16 years agomsgr: adjust mark_down locking to avoid possible race
Sage Weil [Mon, 17 Nov 2008 17:01:30 +0000 (09:01 -0800)]
msgr: adjust mark_down locking to avoid possible race

16 years agocmonctl: reprobe every second
Sage Weil [Mon, 17 Nov 2008 17:01:03 +0000 (09:01 -0800)]
cmonctl: reprobe every second

16 years agoosd: clear_map_cache at end of activate_map
Sage Weil [Sat, 15 Nov 2008 05:14:13 +0000 (21:14 -0800)]
osd: clear_map_cache at end of activate_map

after we're done with it

16 years agoosd: introduce map_lock RWLock, take read lock during heartbeat
Sage Weil [Sat, 15 Nov 2008 04:50:35 +0000 (20:50 -0800)]
osd: introduce map_lock RWLock, take read lock during heartbeat

This prevents a race between handle_osd_map updating the map while
heartbeat() is using it to ping peers.

Currently we take a write ref over the entirely to handle_osd_map; we may
be able to push that down a bit.

16 years agomsgr: small cleanup
Sage Weil [Sat, 15 Nov 2008 00:58:37 +0000 (16:58 -0800)]
msgr: small cleanup

16 years agolockdep: force backtraces on specific mutexes
Sage Weil [Sat, 15 Nov 2008 00:58:17 +0000 (16:58 -0800)]
lockdep: force backtraces on specific mutexes

Maintaining backtraces is expensive to do for every acquisition.  Make a
per-mutex flag so that specific deadlocks can be tracked down.

16 years agoosd: maintain a cache of past osd maps during repeering
Sage Weil [Sat, 15 Nov 2008 00:56:59 +0000 (16:56 -0800)]
osd: maintain a cache of past osd maps during repeering

It's expensive and stupid to load and reparse them for each PG.

16 years agoosd: pause/unpause recovery thread while processing map
Sage Weil [Sat, 15 Nov 2008 00:09:09 +0000 (16:09 -0800)]
osd: pause/unpause recovery thread while processing map

Otherwise bad things happen (everyone assumes *osdmap is static and
readable).

16 years agomds: journal updates _after_ predirty_parents (which adds parent context)
Sage Weil [Sat, 15 Nov 2008 00:31:53 +0000 (16:31 -0800)]
mds: journal updates _after_ predirty_parents (which adds parent context)

This ensures the dirlumps occur in an order that can be replayed
to reconstruct the hierarchy (ancestors first).

16 years agomds: remove bad assertion
Sage Weil [Sat, 15 Nov 2008 00:02:15 +0000 (16:02 -0800)]
mds: remove bad assertion

Inode may still be dirty.  bah.

16 years agomds: mark inode clean only when purge is complete
Sage Weil [Fri, 14 Nov 2008 23:52:58 +0000 (15:52 -0800)]
mds: mark inode clean only when purge is complete

Otherwise we confuse CDir dirty vs commit rules.

16 years agomds: only mark clean if dirty
Sage Weil [Fri, 14 Nov 2008 23:39:00 +0000 (15:39 -0800)]
mds: only mark clean if dirty

16 years agomds: adjust purge_stray sequence; include explicit ino destroy
Sage Weil [Fri, 14 Nov 2008 23:31:07 +0000 (15:31 -0800)]
mds: adjust purge_stray sequence; include explicit ino destroy

First purge the inode content.  Don't bother journaling our intent,
as that's implied by the fact that it's an unused stray.

Once purged, journal an event that destroys the inode and unlinks
the dentry.  Don't remove null dentry itself, as we still need to
update the stray dir... it will get removed when that is committed.

16 years agomds: avoid unnecessary issue_caps in file_eval
Sage Weil [Fri, 14 Nov 2008 23:26:01 +0000 (15:26 -0800)]
mds: avoid unnecessary issue_caps in file_eval

16 years agomds: fix placement of eval_stray call on caps release
Sage Weil [Fri, 14 Nov 2008 23:25:46 +0000 (15:25 -0800)]
mds: fix placement of eval_stray call on caps release

16 years agomds: restructure purge_stray to remove inode objects, _then_ dentry
Sage Weil [Fri, 14 Nov 2008 23:02:34 +0000 (15:02 -0800)]
mds: restructure purge_stray to remove inode objects, _then_ dentry

This ensures that any inode we are purging is referenced in the
hierarchy, since we do not destroy the stray dentry until it is
completely gone.

16 years agomds: mark and pin dentries while purging, so they don't get trimmed out from under us
Sage Weil [Fri, 14 Nov 2008 22:31:24 +0000 (14:31 -0800)]
mds: mark and pin dentries while purging, so they don't get trimmed out from under us

Aslo avoid purging more than once.

Previously it was possible to drop the dentry from the cache while
it was being purged.

16 years agomon: commit large numbers of state values quickly
Sage Weil [Fri, 14 Nov 2008 21:48:30 +0000 (13:48 -0800)]
mon: commit large numbers of state values quickly

Write them all, then sync once at the end.

Also include some infrastructure for using the latest stashed value
to recover.  Don't use it yet, though.  The interaction with
keeping last_committed and latest stashed values in sync wrt a
failure between the two is a bit tricky.

16 years agomon: use generic stash mechism to manage latest version of paxos-managed object
Sage Weil [Fri, 14 Nov 2008 20:42:56 +0000 (12:42 -0800)]
mon: use generic stash mechism to manage latest version of paxos-managed object

16 years agokclient: use generic timeout/retry code for various monitor request types
Sage Weil [Fri, 14 Nov 2008 20:08:55 +0000 (12:08 -0800)]
kclient: use generic timeout/retry code for various monitor request types

16 years agokclient: pick new mon if statfs is unresponsive; clean up other retry code
Sage Weil [Fri, 14 Nov 2008 19:14:30 +0000 (11:14 -0800)]
kclient: pick new mon if statfs is unresponsive; clean up other retry code

16 years agostreamtest: fix recursive locking
Sage Weil [Fri, 14 Nov 2008 01:45:37 +0000 (17:45 -0800)]
streamtest: fix recursive locking

16 years agojournal: detect size of raw block devices properly v0.5
Sage Weil [Fri, 14 Nov 2008 00:48:15 +0000 (16:48 -0800)]
journal: detect size of raw block devices properly

16 years agoosd: only trim pg log if pg contains complete set of osds
Sage Weil [Fri, 14 Nov 2008 00:37:56 +0000 (16:37 -0800)]
osd: only trim pg log if pg contains complete set of osds

Eventually we may want to also impose some maximum pg log size.  At
some point the cost of the long log will approach the cost of
building a backlog...

16 years agoosdmap: fix type conversions
Sage Weil [Thu, 13 Nov 2008 23:45:36 +0000 (15:45 -0800)]
osdmap: fix type conversions

16 years agocrush: mention license. minor cleanup
Sage Weil [Thu, 13 Nov 2008 23:22:24 +0000 (15:22 -0800)]
crush: mention license.  minor cleanup

16 years agobe quiet
Sage Weil [Thu, 13 Nov 2008 22:38:08 +0000 (14:38 -0800)]
be quiet

16 years agoMerge branch 'unstable' of ssh://ceph.newdream.net/git/ceph into unstable
Yehuda Sadeh [Thu, 13 Nov 2008 22:56:43 +0000 (14:56 -0800)]
Merge branch 'unstable' of ssh://ceph.newdream.net/git/ceph into unstable