]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
16 years agomon: clean mon monmap cons
Sage Weil [Tue, 27 Jan 2009 22:42:27 +0000 (14:42 -0800)]
mon: clean mon monmap cons

16 years agodstart: no preload gprof helper
Sage Weil [Tue, 27 Jan 2009 22:42:17 +0000 (14:42 -0800)]
dstart: no preload gprof helper

16 years agoconfig: avoid wonky times in g_config
Sage Weil [Tue, 27 Jan 2009 22:15:00 +0000 (14:15 -0800)]
config: avoid wonky times in g_config

16 years agomon: disable pgmap_dumps
Sage Weil [Tue, 27 Jan 2009 22:19:46 +0000 (14:19 -0800)]
mon: disable pgmap_dumps

This aren't trimmed!

16 years agomds: optimize EMetaBlob::fullbit, remotebit, nullbit encoding
Sage Weil [Tue, 27 Jan 2009 21:51:51 +0000 (13:51 -0800)]
mds: optimize EMetaBlob::fullbit, remotebit, nullbit encoding

Encode in constructor to avoid intermediate representation during
journaling.

16 years agobuffer: optimize append()
Sage Weil [Tue, 27 Jan 2009 21:23:57 +0000 (13:23 -0800)]
buffer: optimize append()

Avoid repeatedly dereferencing list tail.

16 years agokclient: fix osd timeout merge error
Sage Weil [Tue, 27 Jan 2009 18:46:18 +0000 (10:46 -0800)]
kclient: fix osd timeout merge error

16 years agodstart: less debug output
Sage Weil [Tue, 27 Jan 2009 18:42:55 +0000 (10:42 -0800)]
dstart: less debug output

16 years agoosd: throttle sub_ops too
Sage Weil [Tue, 27 Jan 2009 18:27:39 +0000 (10:27 -0800)]
osd: throttle sub_ops too

16 years agoosd: adjust pending_ops when requeuing opq
Sage Weil [Tue, 27 Jan 2009 17:48:37 +0000 (09:48 -0800)]
osd: adjust pending_ops when requeuing opq

16 years agomds: show which segment trimming is blocked on
Sage Weil [Tue, 27 Jan 2009 00:30:11 +0000 (16:30 -0800)]
mds: show which segment trimming is blocked on

16 years agoosd: locally requeue on repeer if still primary
Sage Weil [Tue, 27 Jan 2009 18:40:11 +0000 (10:40 -0800)]
osd: locally requeue on repeer if still primary

kclient osd_client and Objecter need only resend when primary
changes.

16 years agokclient: fix RETRY_SESSION seq value
Sage Weil [Mon, 26 Jan 2009 20:13:26 +0000 (12:13 -0800)]
kclient: fix RETRY_SESSION seq value

Should be existing session's seq, not new sessions.  Error causes
SimpleMessenger to throw an assertion

msg/SimpleMessenger.cc:1283: FAILED assert(reply.connect_seq > connect_seq)

16 years agokclient: only send one ping per laggy osd
Sage Weil [Tue, 27 Jan 2009 04:57:06 +0000 (20:57 -0800)]
kclient: only send one ping per laggy osd

16 years agomds: include xattr updates in cap messages; accept xattr cap updates
Sage Weil [Tue, 27 Jan 2009 04:21:17 +0000 (20:21 -0800)]
mds: include xattr updates in cap messages; accept xattr cap updates

16 years agomds: adjust some debug levels
Sage Weil [Tue, 27 Jan 2009 03:56:40 +0000 (19:56 -0800)]
mds: adjust some debug levels

16 years agotodo
Sage Weil [Sat, 24 Jan 2009 05:23:38 +0000 (21:23 -0800)]
todo

16 years agoosd: drop osd_lock while pausing/requeueing opq
Sage Weil [Tue, 27 Jan 2009 00:21:36 +0000 (16:21 -0800)]
osd: drop osd_lock while pausing/requeueing opq

An in-progress op may need to take osd_lock.

16 years agoosd: fix merge_old_entry assertion
Sage Weil [Tue, 27 Jan 2009 00:05:17 +0000 (16:05 -0800)]
osd: fix merge_old_entry assertion

Object may not be missing if it was later deleted.

16 years agoosd: fix up_thru_pending conditional
Sage Weil [Mon, 26 Jan 2009 23:25:56 +0000 (15:25 -0800)]
osd: fix up_thru_pending conditional

up_thru_pending only meaningful if non-zero.

16 years agoosd: requeue instead of draining op_queue on map update
Sage Weil [Mon, 26 Jan 2009 23:24:04 +0000 (15:24 -0800)]
osd: requeue instead of draining op_queue on map update

Also clean up waiter helpers.

16 years agoosd: keep peer_info.last_{update,complete} up to date in case we get later stray
Sage Weil [Mon, 26 Jan 2009 21:50:53 +0000 (13:50 -0800)]
osd: keep peer_info.last_{update,complete} up to date in case we get later stray

We need to be able to call peer() again after going active and get
meaningful results.

16 years agoosd: bit more verbose in oldest_update calculation
Sage Weil [Mon, 26 Jan 2009 20:42:36 +0000 (12:42 -0800)]
osd: bit more verbose in oldest_update calculation

16 years agoosd: adjust generate_backlog assertions
Sage Weil [Mon, 26 Jan 2009 20:42:14 +0000 (12:42 -0800)]
osd: adjust generate_backlog assertions

We should never generate a backlog while active.

16 years agomds: clean up EUpdate output
Sage Weil [Mon, 26 Jan 2009 20:06:12 +0000 (12:06 -0800)]
mds: clean up EUpdate output

16 years agomds: do not trim log during recovery
Sage Weil [Mon, 26 Jan 2009 20:06:03 +0000 (12:06 -0800)]
mds: do not trim log during recovery

16 years agoosd: only check replicas in recover_replicas
Sage Weil [Mon, 26 Jan 2009 19:51:43 +0000 (11:51 -0800)]
osd: only check replicas in recover_replicas

16 years agoosd: clean up activate, peer recovery debug output
Sage Weil [Mon, 26 Jan 2009 19:22:25 +0000 (11:22 -0800)]
osd: clean up activate, peer recovery debug output

16 years agomessenger: added a no-crc option
Yehuda Sadeh [Mon, 26 Jan 2009 20:47:13 +0000 (12:47 -0800)]
messenger: added a no-crc option

16 years agoosd: fix pg log trimming
Sage Weil [Mon, 26 Jan 2009 19:23:25 +0000 (11:23 -0800)]
osd: fix pg log trimming

Log entries rarely ever fall on block boundaries.  Behave
accordingly.

Also, decide whether to trim on primary only, at a high level in
op_modify.

16 years agopaxos: tolerate commits for older states
Sage Weil [Mon, 26 Jan 2009 19:06:42 +0000 (11:06 -0800)]
paxos: tolerate commits for older states

We may have races if paxos recovery restarts.

16 years agoosd: fix repop cleanup in on_change, _shutdown
Sage Weil [Mon, 26 Jan 2009 18:14:07 +0000 (10:14 -0800)]
osd: fix repop cleanup in on_change, _shutdown

16 years agoceph: warn when we get message with wrong fsid
Sage Weil [Mon, 26 Jan 2009 18:13:44 +0000 (10:13 -0800)]
ceph: warn when we get message with wrong fsid

16 years agotodos
Sage Weil [Sat, 24 Jan 2009 00:47:18 +0000 (16:47 -0800)]
todos

16 years agopaxos: ignore LAST message if pn is old
Sage Weil [Fri, 23 Jan 2009 23:21:04 +0000 (15:21 -0800)]
paxos: ignore LAST message if pn is old

And old PN means that it's from a prior COLLECT attempt.

16 years agomds: increase ino prealloc limit to 1000
Sage Weil [Sat, 24 Jan 2009 00:39:46 +0000 (16:39 -0800)]
mds: increase ino prealloc limit to 1000

Ideally this should self-tune, somehow...

16 years agoosd: remove RepGather::put() debug print
Sage Weil [Sat, 24 Jan 2009 00:39:26 +0000 (16:39 -0800)]
osd: remove RepGather::put() debug print

16 years agocrush: remote list builder printf
Sage Weil [Sat, 24 Jan 2009 00:39:03 +0000 (16:39 -0800)]
crush: remote list builder printf

16 years agodstart: mount btrfs with new options
Sage Weil [Fri, 23 Jan 2009 20:53:18 +0000 (12:53 -0800)]
dstart: mount btrfs with new options

16 years agokclient: statfs_request_tree alloc context is NOFS, not ATOMIC
Sage Weil [Sat, 24 Jan 2009 00:43:09 +0000 (16:43 -0800)]
kclient: statfs_request_tree alloc context is NOFS, not ATOMIC

16 years agoconfig: added include, misc stuff
Yehuda Sadeh [Fri, 23 Jan 2009 23:37:12 +0000 (15:37 -0800)]
config: added include, misc stuff

16 years agokclient: do sync writepages if FILE_WRBUFFER is being revoked
Sage Weil [Fri, 23 Jan 2009 22:50:13 +0000 (14:50 -0800)]
kclient: do sync writepages if FILE_WRBUFFER is being revoked

This doesn't capture the case where we already started writeout
and _then_ the MDS tries to revoke, but that's probably not worth
the complexity.

16 years agomds: fix max_size update
Sage Weil [Fri, 23 Jan 2009 22:40:26 +0000 (14:40 -0800)]
mds: fix max_size update

Force wrlock if client is issued WR cap; whether they are flushing
dirty data is irrelevant to whether we can safely force a wrlock.

16 years agokclient: initiate a sync when doing writepages for O_SYNC writers
Sage Weil [Fri, 23 Jan 2009 22:18:16 +0000 (14:18 -0800)]
kclient: initiate a sync when doing writepages for O_SYNC writers

Include 'startsync' osd op in write if there are any O_SYNC writers
pending on the inode.

We should eventually do the same if our WRBUFFER cap is being
revoked.

16 years agomds: set straydn.first properly for rename overwrite
Sage Weil [Fri, 23 Jan 2009 21:43:17 +0000 (13:43 -0800)]
mds: set straydn.first properly for rename overwrite

Also reorder unlink_local a bit to match rename_prepare pattern.

16 years agomds: only update cap wanted if seq matches
Sage Weil [Fri, 23 Jan 2009 21:23:22 +0000 (13:23 -0800)]
mds: only update cap wanted if seq matches

16 years agokclient: fix osd writes
Sage Weil [Fri, 23 Jan 2009 20:52:19 +0000 (12:52 -0800)]
kclient: fix osd writes

Fixes commit 9664adfcb293c18fa69febad550f6b98b9d2feb5.

16 years agomds: take straydn.first form inode.first during unlink
Sage Weil [Fri, 23 Jan 2009 20:43:00 +0000 (12:43 -0800)]
mds: take straydn.first form inode.first during unlink

16 years agokclient: resend osd ops when pg membership changes
Sage Weil [Fri, 23 Jan 2009 20:16:02 +0000 (12:16 -0800)]
kclient: resend osd ops when pg membership changes

Previously we resent only when the primary OSD changed.  See
f49f78d03ba9786f4e8423c530f0e016a8d814fa.

16 years agoconfig: read configuration file before parsing command line
Yehuda Sadeh [Fri, 23 Jan 2009 20:40:16 +0000 (12:40 -0800)]
config: read configuration file before parsing command line

also does not write configuration unless specified

16 years agomount.ceph: fix segfault when port is not specified
Yehuda Sadeh [Fri, 23 Jan 2009 20:38:29 +0000 (12:38 -0800)]
mount.ceph: fix segfault when port is not specified

16 years agoconfutils: complete config.cc configuration and adjustments
Yehuda Sadeh [Fri, 23 Jan 2009 00:42:16 +0000 (16:42 -0800)]
confutils: complete config.cc configuration and adjustments

16 years agoconfutils: cleanup, bug fixes
Yehuda Sadeh [Thu, 22 Jan 2009 23:44:31 +0000 (15:44 -0800)]
confutils: cleanup, bug fixes

16 years agoconfutils: can flush config, preliminary config.cc integration
Yehuda Sadeh [Thu, 22 Jan 2009 21:41:56 +0000 (13:41 -0800)]
confutils: can flush config, preliminary config.cc integration

16 years agoconfutils: some cleanup
Yehuda Sadeh [Thu, 22 Jan 2009 20:09:06 +0000 (12:09 -0800)]
confutils: some cleanup

16 years agoconfutils: encoding/decoding using templates
Yehuda Sadeh [Thu, 22 Jan 2009 19:20:37 +0000 (11:20 -0800)]
confutils: encoding/decoding using templates

16 years agoconfutils: going forward
Yehuda Sadeh [Thu, 22 Jan 2009 01:09:04 +0000 (17:09 -0800)]
confutils: going forward

16 years agoconfutils: adding missing file
Yehuda Sadeh [Wed, 21 Jan 2009 22:23:15 +0000 (14:23 -0800)]
confutils: adding missing file

16 years agoconfutils: some more
Yehuda Sadeh [Wed, 21 Jan 2009 22:02:03 +0000 (14:02 -0800)]
confutils: some more

Signed-off-by: Yehuda Sadeh <yehuda@hq.newdream.net>
16 years agoconfutils: some more changes
Yehuda Sadeh [Wed, 21 Jan 2009 21:54:51 +0000 (13:54 -0800)]
confutils: some more changes

Signed-off-by: Yehuda Sadeh <yehuda@hq.newdream.net>
16 years agoconfig: some more changes
Yehuda Sadeh [Wed, 21 Jan 2009 00:41:40 +0000 (16:41 -0800)]
config: some more changes

Signed-off-by: Yehuda Sadeh <yehuda@hq.newdream.net>
16 years agoconfutils: still not usable
Yehuda Sadeh [Fri, 9 Jan 2009 05:46:02 +0000 (21:46 -0800)]
confutils: still not usable

16 years agoconfig: remove some old cruft
Sage Weil [Thu, 22 Jan 2009 23:48:18 +0000 (15:48 -0800)]
config: remove some old cruft

16 years agoosd: reset peering, in-flight repops on every pg change
Sage Weil [Fri, 23 Jan 2009 00:14:52 +0000 (16:14 -0800)]
osd: reset peering, in-flight repops on every pg change

Instead of complicated (and flawed) logic for letting in-progress rep ops
complete while the PG changes (but primary remains the same), reset the
pg state entirely.  Apply any ops we have in hand, but drop everything
else, including PUSH/PULL ops.

This vastly simplifies the logic in the OSD and makes it easy to reason
about things.

Fix clients (Objecter, osd_client) to resubmit ops when PG membership
changes (not just on primary change).

16 years agomds: eval_cap_gather in handle_client_caps even if no update
Sage Weil [Thu, 22 Jan 2009 19:22:04 +0000 (11:22 -0800)]
mds: eval_cap_gather in handle_client_caps even if no update

We may have recalled caps and journaled an update for some but
not all locks.  We should check for cap gathers even if something
(else) is journaled.

16 years agoscript: find high latency requests in mds log
Sage Weil [Thu, 22 Jan 2009 19:04:54 +0000 (11:04 -0800)]
script: find high latency requests in mds log

16 years agomds: fix xattr projection
Sage Weil [Thu, 22 Jan 2009 00:44:21 +0000 (16:44 -0800)]
mds: fix xattr projection

16 years agomds: drop rdlocks _after_ journaling; use new journal_and_reply helper
Sage Weil [Thu, 22 Jan 2009 00:23:00 +0000 (16:23 -0800)]
mds: drop rdlocks _after_ journaling; use new journal_and_reply helper

If we drop locks earlier we may run contexts that journal _other_
items out of order.  Badness.

16 years agomds: make cdentry debug print nicer
Sage Weil [Wed, 21 Jan 2009 23:34:47 +0000 (15:34 -0800)]
mds: make cdentry debug print nicer

16 years agomds: unique (per mds) cap_id
Sage Weil [Wed, 21 Jan 2009 23:34:31 +0000 (15:34 -0800)]
mds: unique (per mds) cap_id

A new cap_id is issued each time an MDS creates a new capability,
and is checked when releasing a capability to ensure it is the same
capability instance.  This specifically avoids a race like:

1- mds issues cap
2- mds sends cap message
3- mds and client time out cap
4- client receives cap message, sends release
5- mds reissues cap on same inode
6- mds receives release, doesn't realize the release is for the
   old capability

Checking seq numbers isn't enough because the MDS may reissue the
cap any number of times between 3 and 6.

16 years agomds: set straydn.first correctly during unlink
Sage Weil [Wed, 21 Jan 2009 22:52:38 +0000 (14:52 -0800)]
mds: set straydn.first correctly during unlink

We need to do this in _unlink_local, not get_or_create_stray, just
as we set dn->first elsewhere in Server.cc.

16 years agomds: make straydn.first match the inode
Sage Weil [Wed, 21 Jan 2009 19:47:04 +0000 (11:47 -0800)]
mds: make straydn.first match the inode

16 years agouclient: flush/release buffered data on umount
Sage Weil [Wed, 21 Jan 2009 18:42:57 +0000 (10:42 -0800)]
uclient: flush/release buffered data on umount

16 years agouclient: update caps code to match kclient logic
Sage Weil [Wed, 21 Jan 2009 18:38:06 +0000 (10:38 -0800)]
uclient: update caps code to match kclient logic

16 years agokclient: some caps cleanup
Sage Weil [Wed, 21 Jan 2009 18:37:26 +0000 (10:37 -0800)]
kclient: some caps cleanup

16 years agokclient: improve snap locking scheme
Sage Weil [Wed, 21 Jan 2009 00:35:43 +0000 (16:35 -0800)]
kclient: improve snap locking scheme

Because snap_rwsem is taken for read on every write, we want to
minimize contention.  We:

- allow cap removal to occur without snap_rwsem (read or write)
- allow fill_trace and add_cap with snap_rwsem (read)
- require write really only for update_snap_trace and on snap
  updates from the mds.

Dropping realm references without snap_rwsem gets a bit tricky.  We
keep an empty (nref==0) realm list and purge it periodically to
avoid contention in the general case.

16 years agov0.6 v0.6
Sage Weil [Tue, 20 Jan 2009 19:52:50 +0000 (11:52 -0800)]
v0.6

16 years agoMerge branch 'unstable'
Sage Weil [Tue, 20 Jan 2009 19:19:42 +0000 (11:19 -0800)]
Merge branch 'unstable'

16 years agokclient: rename lookup_mds_session get_mds_session
Sage Weil [Tue, 20 Jan 2009 18:34:00 +0000 (10:34 -0800)]
kclient: rename lookup_mds_session get_mds_session

Since it bumps the ref count.

16 years agokclient: realm create does not take a ref count
Yehuda Sadeh [Tue, 20 Jan 2009 19:04:25 +0000 (11:04 -0800)]
kclient: realm create does not take a ref count

16 years agokclient: split get_snap_realm to lookup and create
Yehuda Sadeh [Tue, 20 Jan 2009 18:52:04 +0000 (10:52 -0800)]
kclient: split get_snap_realm to lookup and create

16 years agoobjectcacher: fix object trimming
Sage Weil [Tue, 20 Jan 2009 01:03:05 +0000 (17:03 -0800)]
objectcacher: fix object trimming

Do not trim object until it fully commits.

16 years agomds: count in-flight updates per cap, not release attempts. do not expire if updating.
Sage Weil [Tue, 20 Jan 2009 01:02:02 +0000 (17:02 -0800)]
mds: count in-flight updates per cap, not release attempts.  do not expire if updating.

16 years agomds: drop rdlocks after early reply is sent
Sage Weil [Mon, 19 Jan 2009 23:05:57 +0000 (15:05 -0800)]
mds: drop rdlocks after early reply is sent

We will still hold wrlocks and xlocks until journal entry commits.

16 years agomds: properly close session when inodes are still being preallocated
Sage Weil [Mon, 19 Jan 2009 23:04:55 +0000 (15:04 -0800)]
mds: properly close session when inodes are still being preallocated

16 years agokclient: set i_op for special inodes
Sage Weil [Mon, 19 Jan 2009 21:29:01 +0000 (13:29 -0800)]
kclient: set i_op for special inodes

16 years agotodos
Sage Weil [Mon, 19 Jan 2009 20:28:07 +0000 (12:28 -0800)]
todos

16 years agokclient: retain comments
Sage Weil [Mon, 19 Jan 2009 20:21:33 +0000 (12:21 -0800)]
kclient: retain comments

16 years agokclient: zero out *implemented in __ceph_caps_issued()
Sage Weil [Mon, 19 Jan 2009 20:10:53 +0000 (12:10 -0800)]
kclient: zero out *implemented in __ceph_caps_issued()

Otherwise we can get garbage

16 years agokclient: don't retain unwanted RD cap
Sage Weil [Mon, 19 Jan 2009 20:09:06 +0000 (12:09 -0800)]
kclient: don't retain unwanted RD cap

This will allow an open to succeed locally, without any mechanism
to update the MDS' wanted value.

16 years agomds: take srci lock during rename to ensure ctime change propagates
Sage Weil [Mon, 19 Jan 2009 19:52:30 +0000 (11:52 -0800)]
mds: take srci lock during rename to ensure ctime change propagates

16 years agomds: expose projected fields via caps if locks permit
Sage Weil [Mon, 19 Jan 2009 19:33:12 +0000 (11:33 -0800)]
mds: expose projected fields via caps if locks permit

The new CInode::encode_caps_message() mirrors the logic in
CInode::encode_inodestat().

16 years agokclient: shouldn't lookup_open with special inode
Yehuda Sadeh [Mon, 19 Jan 2009 19:09:39 +0000 (11:09 -0800)]
kclient: shouldn't lookup_open with special inode

16 years agokclient: considered _held_ caps when deciding what to ignore in fill_inode
Sage Weil [Sun, 18 Jan 2009 02:11:48 +0000 (18:11 -0800)]
kclient: considered _held_ caps when deciding what to ignore in fill_inode

If EXCL is being revoked, we still "hold" it and should ignore inode values
provided by the MDS in fill_inode.

16 years agokclient: don't require all inode fields when just doing a lookup
Sage Weil [Sun, 18 Jan 2009 02:07:53 +0000 (18:07 -0800)]
kclient: don't require all inode fields when just doing a lookup

16 years agomds: check against client in rdlock_try
Sage Weil [Sun, 18 Jan 2009 02:07:34 +0000 (18:07 -0800)]
mds: check against client in rdlock_try

This affects our auth check in path_traverse.  No need to wait for that to
flush.. we can look at the projected version.  (Not that we're actually
checking permissions yet!)

16 years agokclient: fix cap writeback vs revocation
Sage Weil [Sun, 18 Jan 2009 02:05:16 +0000 (18:05 -0800)]
kclient: fix cap writeback vs revocation

We need to reply to a revocation via check_caps and __send_cap if we are
writing back dirty metadata.

We also need to take care to look at issued|implemented (not just issued)
when deciding what to write back (since it may be being revoked).

16 years agomds: fix rmdir ENOTEMPTY checks
Sage Weil [Sat, 17 Jan 2009 21:37:24 +0000 (13:37 -0800)]
mds: fix rmdir ENOTEMPTY checks

Look at projected inode's dirstat.size().

16 years agomon: include fsid in MMonObserveNotify
Sage Weil [Sat, 17 Jan 2009 21:24:35 +0000 (13:24 -0800)]
mon: include fsid in MMonObserveNotify

16 years agomds: fix forward truncation
Sage Weil [Sat, 17 Jan 2009 19:45:18 +0000 (11:45 -0800)]
mds: fix forward truncation