]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
16 years agomds: optional ino for mknod/mkdir/open requests
Sage Weil [Tue, 23 Dec 2008 00:12:26 +0000 (16:12 -0800)]
mds: optional ino for mknod/mkdir/open requests

Will be needed for replaying those requests if we get an early
reply, to ensure that the same ino is used.

16 years agomds: preallocate inos for each client session
Sage Weil [Tue, 23 Dec 2008 00:11:39 +0000 (16:11 -0800)]
mds: preallocate inos for each client session

Do not use preallocated inos until we have journaled the
preallocation.  If we use a newly allocated ino, do not do an
early_reply.

When the session closes, release the inos.

16 years agomds: do early replies for basic inode update operations
Sage Weil [Mon, 22 Dec 2008 22:03:43 +0000 (14:03 -0800)]
mds: do early replies for basic inode update operations

chmod, chown, etc.  Not for mknod/mkdir, which allocate inos.

16 years agomds: early_reply infrastructure
Sage Weil [Mon, 22 Dec 2008 21:48:40 +0000 (13:48 -0800)]
mds: early_reply infrastructure

16 years agomds: fix null_okay traverse logic
Sage Weil [Mon, 22 Dec 2008 21:43:29 +0000 (13:43 -0800)]
mds: fix null_okay traverse logic

16 years agomds: add safe flag to mds reply
Sage Weil [Mon, 22 Dec 2008 21:42:12 +0000 (13:42 -0800)]
mds: add safe flag to mds reply

16 years agomds: process caps if freezing and unstable lock
Sage Weil [Fri, 19 Dec 2008 23:46:06 +0000 (15:46 -0800)]
mds: process caps if freezing and unstable lock

The caps message may be a revocation ack that is needed to complete
the freeze.  In general, though, we back off even if freezing,
since we want to avoid starving the freeze as much as possible.

16 years agomds: misc filelock fixes
Sage Weil [Fri, 19 Dec 2008 22:53:43 +0000 (14:53 -0800)]
mds: misc filelock fixes

16 years agomds: auth_pin rdlocks too
Sage Weil [Fri, 19 Dec 2008 22:53:30 +0000 (14:53 -0800)]
mds: auth_pin rdlocks too

Not sure why we didn't before... :/

16 years agokclient: make mdsmap_decode print nicer info
Sage Weil [Fri, 19 Dec 2008 22:27:36 +0000 (14:27 -0800)]
kclient: make mdsmap_decode print nicer info

16 years agokclient: update num_fwd in client requests
Sage Weil [Fri, 19 Dec 2008 22:27:00 +0000 (14:27 -0800)]
kclient: update num_fwd in client requests

We were keeping our local copy, but not updating the message sent.

Also fix buggy maybe_dup behavior (dup, then set rhead pointer)!

16 years agokclient: allow mds to force open a client session
Sage Weil [Fri, 19 Dec 2008 22:24:35 +0000 (14:24 -0800)]
kclient: allow mds to force open a client session

16 years agomds: don't bump to sync if dir and subtree root
Sage Weil [Fri, 19 Dec 2008 21:54:42 +0000 (13:54 -0800)]
mds: don't bump to sync if dir and subtree root

16 years agomds: fix file_wrlock_start waiting
Sage Weil [Fri, 19 Dec 2008 21:54:17 +0000 (13:54 -0800)]
mds: fix file_wrlock_start waiting

16 years agomds: filelock typo in can_rdlock
Sage Weil [Fri, 19 Dec 2008 21:01:29 +0000 (13:01 -0800)]
mds: filelock typo in can_rdlock

16 years agomds: cleanup
Sage Weil [Thu, 18 Dec 2008 20:12:37 +0000 (12:12 -0800)]
mds: cleanup

16 years agovstart: 1 mds
Sage Weil [Thu, 18 Dec 2008 20:12:33 +0000 (12:12 -0800)]
vstart: 1 mds

16 years agomds: check_inode_max_size only change filelock state if needed
Sage Weil [Thu, 18 Dec 2008 20:12:23 +0000 (12:12 -0800)]
mds: check_inode_max_size only change filelock state if needed

Don't try to change lock state unless we actually have something
to update.

16 years agokclient: ICONTENT -> IFILE
Sage Weil [Thu, 18 Dec 2008 20:01:23 +0000 (12:01 -0800)]
kclient: ICONTENT -> IFILE

16 years agovstart: start 3 mdss
Sage Weil [Thu, 18 Dec 2008 19:31:43 +0000 (11:31 -0800)]
vstart: start 3 mdss

16 years agomds: basic filelock fixes
Sage Weil [Thu, 18 Dec 2008 19:31:36 +0000 (11:31 -0800)]
mds: basic filelock fixes

16 years agomon: add multiple mds's at once
Sage Weil [Thu, 18 Dec 2008 18:53:34 +0000 (10:53 -0800)]
mon: add multiple mds's at once

16 years agomds: kill the dirlock
Sage Weil [Thu, 18 Dec 2008 18:36:47 +0000 (10:36 -0800)]
mds: kill the dirlock

16 years agomds: make filelock a scatterlock child; move wrlock into simplelock
Sage Weil [Thu, 18 Dec 2008 18:12:43 +0000 (10:12 -0800)]
mds: make filelock a scatterlock child; move wrlock into simplelock

16 years agomds: fix mixed_sync state; send replica mixed state to primary as needed
Sage Weil [Thu, 18 Dec 2008 00:51:11 +0000 (16:51 -0800)]
mds: fix mixed_sync state; send replica mixed state to primary as needed

16 years agomds: message include cleanup
Sage Weil [Thu, 18 Dec 2008 00:00:33 +0000 (16:00 -0800)]
mds: message include cleanup

16 years agomds: fix up filelock states
Sage Weil [Wed, 17 Dec 2008 23:06:02 +0000 (15:06 -0800)]
mds: fix up filelock states

Allow wrlocks in LOCK_MIXED (which will serve the same function as
LOCK_SCATTER).

Clean up can_wrlock()/can_rdlock().. there were lots of states in
there that shouldn't have been.

16 years agomds: new FileLock lock->sync state
Sage Weil [Wed, 17 Dec 2008 22:47:55 +0000 (14:47 -0800)]
mds: new FileLock lock->sync state

Previously this was avoided, more or less by accident.  ScatterLock
has it, so we'll presumably need it in FileLock to fold them
together.

16 years agomds: rename gather lock states
Sage Weil [Wed, 17 Dec 2008 22:39:35 +0000 (14:39 -0800)]
mds: rename gather lock states

Easier to read: LOCK_oldstate_newstate, "oldstate->newstate"

16 years agomds: include max mds in mdsmap summary
Sage Weil [Tue, 23 Dec 2008 19:44:40 +0000 (11:44 -0800)]
mds: include max mds in mdsmap summary

16 years agomds: fix standby_replay on startup
Sage Weil [Tue, 23 Dec 2008 19:44:28 +0000 (11:44 -0800)]
mds: fix standby_replay on startup

16 years agoremove uninitialized warnings
Yehuda Sadeh [Mon, 22 Dec 2008 23:20:27 +0000 (15:20 -0800)]
remove uninitialized warnings

16 years agoosd: gracefully exit when create_object_store() returns NULL
Yehuda Sadeh [Mon, 22 Dec 2008 21:13:20 +0000 (13:13 -0800)]
osd: gracefully exit when create_object_store() returns NULL

16 years agoosd: inc_lock attr is optional
Sage Weil [Mon, 22 Dec 2008 17:01:48 +0000 (09:01 -0800)]
osd: inc_lock attr is optional

16 years agoosd: update pg degraded stats only when active
Sage Weil [Mon, 22 Dec 2008 06:40:46 +0000 (22:40 -0800)]
osd: update pg degraded stats only when active

peer_missing needs to be defined.

16 years agoosd: initialize generate_backlog_epoch
Sage Weil [Mon, 22 Dec 2008 06:07:33 +0000 (22:07 -0800)]
osd: initialize generate_backlog_epoch

16 years agoosd: clear_prior when activating
Sage Weil [Thu, 18 Dec 2008 19:49:42 +0000 (11:49 -0800)]
osd: clear_prior when activating

This just ensures that, once active, an osd state change affecting our
prior_set won't make us repeer.  E.g., a prior going down.

16 years agoosd: clear backlog flag when done
Sage Weil [Thu, 18 Dec 2008 19:48:32 +0000 (11:48 -0800)]
osd: clear backlog flag when done

Otherwise we won't requeue again later.

16 years agoosd: only update degraded object stats after peering
Sage Weil [Fri, 19 Dec 2008 20:17:45 +0000 (12:17 -0800)]
osd: only update degraded object stats after peering

This avoids incorrectly populating peer_missing[acting[i]], which
in turn screws up peering and recovery.

16 years agoosd: clear STATE_PEERING during replay
Sage Weil [Fri, 19 Dec 2008 00:46:07 +0000 (16:46 -0800)]
osd: clear STATE_PEERING during replay

16 years agoosd: safely encode all other attributes
Sage Weil [Fri, 19 Dec 2008 00:45:56 +0000 (16:45 -0800)]
osd: safely encode all other attributes

16 years agoosd: properly encode ondisklog attr
Sage Weil [Fri, 19 Dec 2008 00:01:41 +0000 (16:01 -0800)]
osd: properly encode ondisklog attr

Also combine into a single attr.

16 years agobuffer: optionally preallocate some append_buffer
Sage Weil [Thu, 18 Dec 2008 23:24:00 +0000 (15:24 -0800)]
buffer: optionally preallocate some append_buffer

16 years agomake time format easier to read
Sage Weil [Thu, 18 Dec 2008 19:32:08 +0000 (11:32 -0800)]
make time format easier to read

16 years agoceph: terminate dumped output
Sage Weil [Thu, 18 Dec 2008 00:48:38 +0000 (16:48 -0800)]
ceph: terminate dumped output

16 years agomon: tell stdout where the monmap came from
Sage Weil [Wed, 17 Dec 2008 19:21:59 +0000 (11:21 -0800)]
mon: tell stdout where the monmap came from

16 years agodstart: cm.txt update (for 3x)
Sage Weil [Mon, 15 Dec 2008 20:49:57 +0000 (12:49 -0800)]
dstart: cm.txt update (for 3x)

16 years agoceph: fix observe renewal; ack by paxos
Sage Weil [Wed, 17 Dec 2008 23:32:14 +0000 (15:32 -0800)]
ceph: fix observe renewal; ack by paxos

16 years agotodo
Sage Weil [Wed, 17 Dec 2008 22:06:15 +0000 (14:06 -0800)]
todo

16 years agoverify-mds-journal: periodically verify mds replay; stop if error
Sage Weil [Wed, 17 Dec 2008 21:37:34 +0000 (13:37 -0800)]
verify-mds-journal: periodically verify mds replay; stop if error

16 years agomds: only standby-replay when explicitly requested on startup.
Sage Weil [Wed, 17 Dec 2008 21:32:11 +0000 (13:32 -0800)]
mds: only standby-replay when explicitly requested on startup.

Until it does something more than just replay the log and quit.

16 years agomds: basic standby-replay hack
Sage Weil [Wed, 17 Dec 2008 21:12:27 +0000 (13:12 -0800)]
mds: basic standby-replay hack

Replay the log, and exit cleanly if everything looks ok.

16 years agomon: replace laggy standby-replay nodes too
Sage Weil [Wed, 17 Dec 2008 21:02:44 +0000 (13:02 -0800)]
mon: replace laggy standby-replay nodes too

If there is someone to take over...

16 years agomon: mark extra standby mds's as standby-replay
Sage Weil [Wed, 17 Dec 2008 20:34:28 +0000 (12:34 -0800)]
mon: mark extra standby mds's as standby-replay

Not that the mds does the right thing, yet...

16 years agoosd: enable queue_generate_backlog on pg query
Sage Weil [Wed, 17 Dec 2008 18:53:42 +0000 (10:53 -0800)]
osd: enable queue_generate_backlog on pg query

Code was disabled, oops.

16 years agomds: fix mdsmap dump
Sage Weil [Wed, 17 Dec 2008 19:20:23 +0000 (11:20 -0800)]
mds: fix mdsmap dump

Don't fall over duplicate mds (id,inc) pairs.

16 years agomsgr: stop accepter on socket error
Sage Weil [Wed, 17 Dec 2008 18:30:42 +0000 (10:30 -0800)]
msgr: stop accepter on socket error

Only if we get a few in a row.

16 years agomds: restructure mds map, clean up mdsmon
Sage Weil [Tue, 16 Dec 2008 21:06:59 +0000 (13:06 -0800)]
mds: restructure mds map, clean up mdsmon

More flexible mdsmap structure.  Cleaner interface.

16 years agomon: clean up mdsmon a bit; do takeovers from tick(), not _committed()
Sage Weil [Tue, 16 Dec 2008 19:45:57 +0000 (11:45 -0800)]
mon: clean up mdsmon a bit; do takeovers from tick(), not _committed()

This puts all the takeover logic in one place.  And avoids any
funny issues where the monitor fails before it can do a takeover.
More robust.

16 years agomon: blacklist failed mds
Sage Weil [Tue, 16 Dec 2008 18:45:10 +0000 (10:45 -0800)]
mon: blacklist failed mds

16 years agomon: expire old blacklist items (osdmap change)
Sage Weil [Tue, 16 Dec 2008 18:41:55 +0000 (10:41 -0800)]
mon: expire old blacklist items (osdmap change)

16 years agoosd: clean out acker cruft
Sage Weil [Wed, 10 Dec 2008 23:25:30 +0000 (15:25 -0800)]
osd: clean out acker cruft

16 years agorev protocol, mon disk formats due to mdsmap change
Sage Weil [Mon, 15 Dec 2008 23:41:08 +0000 (15:41 -0800)]
rev protocol, mon disk formats due to mdsmap change

16 years agomon: mdsmap infrastructure for standby states, up:standby-replay
Sage Weil [Mon, 15 Dec 2008 23:30:50 +0000 (15:30 -0800)]
mon: mdsmap infrastructure for standby states, up:standby-replay

We need a state value for standby mds's.

16 years agoosd: fix pg stat reporting
Sage Weil [Tue, 16 Dec 2008 21:37:11 +0000 (13:37 -0800)]
osd: fix pg stat reporting

We were skipping pgs that weren't active instead of not primary.

16 years agoosd: do delayed activation after replay via a queue, not timer event
Sage Weil [Tue, 16 Dec 2008 21:28:10 +0000 (13:28 -0800)]
osd: do delayed activation after replay via a queue, not timer event

This avoids osd_lock dependency by using osd->timer.

16 years agoosd: take osd_lock in generate_backlog before peer()
Sage Weil [Tue, 16 Dec 2008 21:14:30 +0000 (13:14 -0800)]
osd: take osd_lock in generate_backlog before peer()

Peer() uses the osd.timer to schedule the replay interval, which
needs osd_lock.

16 years agomds cleanup
Sage Weil [Tue, 16 Dec 2008 19:32:44 +0000 (11:32 -0800)]
mds cleanup

16 years agomds: add logclient
Sage Weil [Tue, 16 Dec 2008 19:25:21 +0000 (11:25 -0800)]
mds: add logclient

16 years agologclient: adjust link_dispatcher; add unlink_dispatcher
Sage Weil [Tue, 16 Dec 2008 19:25:14 +0000 (11:25 -0800)]
logclient: adjust link_dispatcher; add unlink_dispatcher

16 years agotodos
Sage Weil [Tue, 16 Dec 2008 18:56:53 +0000 (10:56 -0800)]
todos

16 years agomds: remove follows==0 special cases
Sage Weil [Tue, 16 Dec 2008 00:40:08 +0000 (16:40 -0800)]
mds: remove follows==0 special cases

A follows==0 shouldn't have any special meaning anymore.  See also
1876ca5ad4b92f0794c91d15502c16ad747dbf8b.

16 years agomds: when recovering size, don't munge up projected->size; use new_size
Sage Weil [Mon, 15 Dec 2008 23:57:36 +0000 (15:57 -0800)]
mds: when recovering size, don't munge up projected->size; use new_size

16 years agomds: update rbytes with size on truncate, etc.
Sage Weil [Mon, 15 Dec 2008 23:56:51 +0000 (15:56 -0800)]
mds: update rbytes with size on truncate, etc.

16 years agomon: send mdsmap on beacon from mds not in the map
Sage Weil [Mon, 15 Dec 2008 22:33:00 +0000 (14:33 -0800)]
mon: send mdsmap on beacon from mds not in the map

This happens when an mds goes laggy and is marked down by the
monitor.

16 years agomon: clean up mds failure output
Sage Weil [Mon, 15 Dec 2008 22:17:26 +0000 (14:17 -0800)]
mon: clean up mds failure output

iterator p isn't valid; use temp values.

16 years agomon: immediately propose after 'osd setmap'
Sage Weil [Mon, 15 Dec 2008 21:44:52 +0000 (13:44 -0800)]
mon: immediately propose after 'osd setmap'

Any subsequent osdmap changes will be ignored anyway.

Note that this still throws out changes _prior_ to the setmap.  In
theory, that shouldn't matter, since we're replacing the map
anyway.

16 years agoupdate debian, spec files to reflect cmonctl->ceph rename
Sage Weil [Mon, 15 Dec 2008 20:33:10 +0000 (12:33 -0800)]
update debian, spec files to reflect cmonctl->ceph rename

16 years agoceph: allow > and < to redirect command input/output
Sage Weil [Mon, 15 Dec 2008 20:00:17 +0000 (12:00 -0800)]
ceph: allow > and < to redirect command input/output

16 years agoceph: fold cobserver into ceph
Sage Weil [Mon, 15 Dec 2008 19:45:10 +0000 (11:45 -0800)]
ceph: fold cobserver into ceph

16 years agotodo
Sage Weil [Mon, 15 Dec 2008 19:34:11 +0000 (11:34 -0800)]
todo

16 years agomds: mark new directories new in journal; add to new list on replay
Sage Weil [Mon, 15 Dec 2008 19:32:32 +0000 (11:32 -0800)]
mds: mark new directories new in journal; add to new list on replay

This ensures the dir is written when the logseg is eventually
expired.

16 years agocobserver: usage
Sage Weil [Mon, 15 Dec 2008 19:17:36 +0000 (11:17 -0800)]
cobserver: usage

16 years agorename cmonctl -> ceph
Sage Weil [Mon, 15 Dec 2008 19:15:55 +0000 (11:15 -0800)]
rename cmonctl -> ceph

16 years agocobserver: retry if when no response on startup
Yehuda Sadeh [Mon, 15 Dec 2008 19:21:33 +0000 (11:21 -0800)]
cobserver: retry if when no response on startup

16 years agovstart.sh: can specify mon address
Yehuda Sadeh [Mon, 15 Dec 2008 18:45:08 +0000 (10:45 -0800)]
vstart.sh: can specify mon address

16 years agoosd: add missing declaration
Yehuda Sadeh [Mon, 15 Dec 2008 17:54:50 +0000 (09:54 -0800)]
osd: add missing declaration

16 years agovstart: debug pg reporting
Sage Weil [Mon, 15 Dec 2008 05:40:21 +0000 (21:40 -0800)]
vstart: debug pg reporting

16 years agoosd: generate_backlog asynchronously in a work queue; simplify peering a bit
Sage Weil [Mon, 15 Dec 2008 05:39:54 +0000 (21:39 -0800)]
osd: generate_backlog asynchronously in a work queue; simplify peering a bit

We do all backlog creation in a thread pool.  Break it down into the
disk scan and log integration steps, and drop PG lock as much as possible.
We only worry about pg acting changes; backlogs are only generated when the
pg is inactive.

We also simplify the activation code a bit by observing that replicas only
generate backlogs when their logs are discontiguous with the primary; in
such cases, we pull the backlog during peering and no generate_backlog
(equivalent) is needed for activation.

16 years agoosd: half-finished backlog_wq
Sage Weil [Fri, 12 Dec 2008 05:12:42 +0000 (21:12 -0800)]
osd: half-finished backlog_wq

16 years agocrush: don't recurse to leaf unless item is a bucket
Sage Weil [Fri, 12 Dec 2008 21:46:06 +0000 (13:46 -0800)]
crush: don't recurse to leaf unless item is a bucket

This avoids choking on 'chooseleaf indep 0 item device' (it's
equivalent to 'choose indep 0 item device').

16 years agoosd: shift generate_backlog out of merge_log
Sage Weil [Sat, 13 Dec 2008 04:21:34 +0000 (20:21 -0800)]
osd: shift generate_backlog out of merge_log

...in preparation for shifting it off to a worker thread.

16 years agoosd: for remaining peers, pull either log or backlog, but not both.
Sage Weil [Sat, 13 Dec 2008 04:01:14 +0000 (20:01 -0800)]
osd: for remaining peers, pull either log or backlog, but not both.

Pull as far back as peer's last_epoch_started (if they have that much).
This ensures we will pull any divergent entries, if there are any, so
that we can update our peer_missing map accordingly.

16 years agoosd: comment clean up
Sage Weil [Fri, 12 Dec 2008 23:12:42 +0000 (15:12 -0800)]
osd: comment clean up

16 years agodstart: 3x replication
Sage Weil [Fri, 12 Dec 2008 23:12:31 +0000 (15:12 -0800)]
dstart: 3x replication

16 years agoosd: simplify peer code a bit
Sage Weil [Fri, 12 Dec 2008 23:02:55 +0000 (15:02 -0800)]
osd: simplify peer code a bit

Combine the two loops.

16 years agoosd: simplify master log recreation; fix up Log::copy_after
Sage Weil [Fri, 12 Dec 2008 23:00:34 +0000 (15:00 -0800)]
osd: simplify master log recreation; fix up Log::copy_after

Pull log from a given point from peer with the largest last_update.  Do
not worry about divergence on the peer; that is handled by the new
primary.  Simplifies PG::Query struct.

Fix copy_after to set an accurate .bottom, and to behave if the split
point given is divergent (i.e. doesn't actually appear in the log).

16 years agovstart.sh/stop.sh can start and stop specific modules
Yehuda Sadeh [Fri, 12 Dec 2008 22:51:40 +0000 (14:51 -0800)]
vstart.sh/stop.sh can start and stop specific modules

16 years agodstop: kill crun too
Sage Weil [Fri, 12 Dec 2008 22:07:49 +0000 (14:07 -0800)]
dstop: kill crun too

16 years agoosd: move max_rep back to 3x
Sage Weil [Fri, 12 Dec 2008 22:07:40 +0000 (14:07 -0800)]
osd: move max_rep back to 3x