]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
16 years agoclass: some fixes
Yehuda Sadeh [Fri, 15 May 2009 23:43:52 +0000 (16:43 -0700)]
class: some fixes

16 years agoclass: some api implementation
Yehuda Sadeh [Fri, 15 May 2009 22:18:25 +0000 (15:18 -0700)]
class: some api implementation

16 years agoosd: fix compilation issue
Yehuda Sadeh [Fri, 15 May 2009 20:37:51 +0000 (13:37 -0700)]
osd: fix compilation issue

16 years agoclass: add register/unregister
Yehuda Sadeh [Fri, 15 May 2009 17:30:34 +0000 (10:30 -0700)]
class: add register/unregister

16 years agoclass: remove initial test class
Yehuda Sadeh [Thu, 14 May 2009 22:59:30 +0000 (15:59 -0700)]
class: remove initial test class

16 years agoMerge branch 'unstable' into rados
Sage Weil [Fri, 15 May 2009 05:35:24 +0000 (22:35 -0700)]
Merge branch 'unstable' into rados

16 years agoclass: typedef method, use C style naming
Sage Weil [Fri, 15 May 2009 05:34:55 +0000 (22:34 -0700)]
class: typedef method, use C style naming

16 years agoclass: rename ClassEntry.h -> ClassLibrary.h
Sage Weil [Fri, 15 May 2009 05:26:02 +0000 (22:26 -0700)]
class: rename ClassEntry.h -> ClassLibrary.h

16 years agomds: kill fugly arg to rdlock_path_pin_ref
Sage Weil [Thu, 14 May 2009 23:33:48 +0000 (16:33 -0700)]
mds: kill fugly arg to rdlock_path_pin_ref

The caller (readdir, in this case) can do it now, since it now does the
acquire_locks() call.

16 years agomds: rdlock filelock during readdir
Sage Weil [Thu, 14 May 2009 23:31:29 +0000 (16:31 -0700)]
mds: rdlock filelock during readdir

This ensures any uncommitted creates/whatevers in the directory flush
(and we see them!).

16 years agomds: no rdlock in filelock LOCK state
Sage Weil [Thu, 14 May 2009 23:30:51 +0000 (16:30 -0700)]
mds: no rdlock in filelock LOCK state

Otherwise we get wrlocks AND rdlocks at the same time, which is clearly
problematic.  Der.

Also fix _rdlock_kick to not simple_lock, since that won't help us.

16 years agomds: drain wrlocks before going from LOCK->SYNC in file_eval
Sage Weil [Thu, 14 May 2009 23:10:27 +0000 (16:10 -0700)]
mds: drain wrlocks before going from LOCK->SYNC in file_eval

This avoids excessive waits for the journal to flush on lock->sync
when a client request holds a wrlock.  There's no reason to hurry.. if
someone needs it sync we can to the transition then; otherwise, it'll
happen when the wrlock is dropped.

16 years agoclass: basic api for class, call class_init when class loads
Yehuda Sadeh [Thu, 14 May 2009 22:55:31 +0000 (15:55 -0700)]
class: basic api for class, call class_init when class loads

16 years agorados: define rdcall, wrcall on arbitrary class, method
Sage Weil [Thu, 14 May 2009 22:51:22 +0000 (15:51 -0700)]
rados: define rdcall, wrcall on arbitrary class, method

16 years agoosd: make classhandler requests async
Sage Weil [Thu, 14 May 2009 22:29:31 +0000 (15:29 -0700)]
osd: make classhandler requests async

Handle deferred request queues in OSD, class loading and state
in ClassHandler.

16 years agoclass: rename ClassList -> ClassLibrary
Sage Weil [Thu, 14 May 2009 21:34:21 +0000 (14:34 -0700)]
class: rename ClassList -> ClassLibrary

16 years agoclass: rename ClassLibrary -> ClassInfo
Sage Weil [Thu, 14 May 2009 21:33:06 +0000 (14:33 -0700)]
class: rename ClassLibrary -> ClassInfo

16 years agorados: only export rados_* from librados.so
Sage Weil [Thu, 14 May 2009 21:18:32 +0000 (14:18 -0700)]
rados: only export rados_* from librados.so

16 years ago.gitignore update
Sage Weil [Thu, 14 May 2009 21:23:40 +0000 (14:23 -0700)]
.gitignore update

16 years agomds: break CAP_RDCACHE into CAP_SHARED, CAP_CACHE
Sage Weil [Thu, 14 May 2009 20:57:25 +0000 (13:57 -0700)]
mds: break CAP_RDCACHE into CAP_SHARED, CAP_CACHE

FILE_CAP_RDCACHE was being used to mean both read access to the
file attributes (size, mtime) and permission to retain cached
data.  That lead to an incorrect definition of the filelock in the
mds, and in turn bugs with multiple client access.  These are now
CAP_*_SHARED (all locks) and CAP_FILE_CACHE (filelock only).

The main observed symptom was a client creating files in a
directory and a second client not seeing them, due to RDCACHE not
being revoked and rdcache_gen thus not incrementing, allowing a
dcache readdir to proceed.

16 years agokclient: don't skip EXPIREABLE caps
Sage Weil [Thu, 14 May 2009 20:47:31 +0000 (13:47 -0700)]
kclient: don't skip EXPIREABLE caps

EXPIREABLE is obsolete.  We need to reconnect _all_ caps!

16 years agoclass: can use ceph utility to add classes
Yehuda Sadeh [Thu, 14 May 2009 19:55:45 +0000 (12:55 -0700)]
class: can use ceph utility to add classes

e.g. ./ceph class add foo 1 --in-data=foo.so

16 years agokclient: fix crush decoding for recent changes
Sage Weil [Thu, 14 May 2009 00:02:44 +0000 (17:02 -0700)]
kclient: fix crush decoding for recent changes

16 years agorev osd protocol, disk format to reflect crush changes
Sage Weil [Wed, 13 May 2009 23:49:05 +0000 (16:49 -0700)]
rev osd protocol, disk format to reflect crush changes

16 years agocrush: fix crush_perm_choose; optimize r=0 case.
Sage Weil [Wed, 13 May 2009 23:46:20 +0000 (16:46 -0700)]
crush: fix crush_perm_choose; optimize r=0 case.

This was misbehaving for x=0, among other things.

Avoid filling in perm array for the initial (p)r=0 call.  We only
need to do a full permutation for subsequent r.

16 years agoclass: handle class_set messages
Yehuda Sadeh [Wed, 13 May 2009 23:39:17 +0000 (16:39 -0700)]
class: handle class_set messages

16 years agoclass: osd loads class
Yehuda Sadeh [Wed, 13 May 2009 22:11:39 +0000 (15:11 -0700)]
class: osd loads class

16 years agoclass: osd can request and receive class data
Yehuda Sadeh [Wed, 13 May 2009 21:52:52 +0000 (14:52 -0700)]
class: osd can request and receive class data

16 years agopsim: count result set sizes
Sage Weil [Wed, 13 May 2009 21:56:28 +0000 (14:56 -0700)]
psim: count result set sizes

16 years agocrush: fall back to exhaustive bucket search for any bucket type
Sage Weil [Wed, 13 May 2009 21:55:07 +0000 (14:55 -0700)]
crush: fall back to exhaustive bucket search for any bucket type

If we don't get a bucket-specific choice in 5 tries, do an
exhaustive search (based on a random permutation).  Only then give
up on the bucket and retry descent.

Note that the search-based fallback does not honor weighting at
all.

16 years agocrush: ditch prime number theorem; generate random permutation on the fly
Sage Weil [Wed, 13 May 2009 21:07:45 +0000 (14:07 -0700)]
crush: ditch prime number theorem; generate random permutation on the fly

16 years agocrush: improve uniform selection a bit
Sage Weil [Wed, 13 May 2009 19:02:45 +0000 (12:02 -0700)]
crush: improve uniform selection a bit

Shift to a new prime (and thus permutation) every few r.

16 years agoMerge branch 'c3' into rados
Sage Weil [Tue, 12 May 2009 15:07:51 +0000 (08:07 -0700)]
Merge branch 'c3' into rados

16 years agotestrados: C, not C++
Sage Weil [Tue, 12 May 2009 15:07:00 +0000 (08:07 -0700)]
testrados: C, not C++

16 years agolibrados: fix up #includes; use C for testrados
Sage Weil [Tue, 12 May 2009 04:16:02 +0000 (21:16 -0700)]
librados: fix up #includes; use C for testrados

16 years agorados: build librados, libcrush using libtool
Sage Weil [Tue, 12 May 2009 04:06:14 +0000 (21:06 -0700)]
rados: build librados, libcrush using libtool

Finally?

16 years agolibrados: drop librados/ dir.
Sage Weil [Mon, 11 May 2009 23:23:33 +0000 (16:23 -0700)]
librados: drop librados/ dir.

16 years agolibrados: build the .so
Sage Weil [Mon, 11 May 2009 23:22:08 +0000 (16:22 -0700)]
librados: build the .so

16 years agolibrados: rename c3 -> librados
Sage Weil [Mon, 11 May 2009 22:48:00 +0000 (15:48 -0700)]
librados: rename c3 -> librados

16 years agoc3: remove unnecessary include
Yehuda Sadeh [Mon, 11 May 2009 22:40:22 +0000 (15:40 -0700)]
c3: remove unnecessary include

16 years agoclass: partial implementation of class osd mon messages
Sage Weil [Mon, 11 May 2009 22:38:03 +0000 (15:38 -0700)]
class: partial implementation of class osd mon messages

16 years agoclass: remove redundant fields from the class library
Yehuda Sadeh [Mon, 11 May 2009 20:36:59 +0000 (13:36 -0700)]
class: remove redundant fields from the class library

16 years agoclass: add class name to the library list
Yehuda Sadeh [Mon, 11 May 2009 17:47:50 +0000 (10:47 -0700)]
class: add class name to the library list

16 years agoclass: fix class decoding
Yehuda Sadeh [Mon, 11 May 2009 17:30:51 +0000 (10:30 -0700)]
class: fix class decoding

16 years agoclass: add a class monitor for the paxos services
Yehuda Sadeh [Fri, 8 May 2009 23:33:30 +0000 (16:33 -0700)]
class: add a class monitor for the paxos services

16 years agoc3: exec op string
Yehuda Sadeh [Thu, 7 May 2009 22:55:29 +0000 (15:55 -0700)]
c3: exec op string

16 years agoc3: handle unhandled message
Yehuda Sadeh [Thu, 7 May 2009 22:47:50 +0000 (15:47 -0700)]
c3: handle unhandled message

16 years agoc3: rados merges issues
Yehuda Sadeh [Thu, 7 May 2009 22:33:33 +0000 (15:33 -0700)]
c3: rados merges issues

16 years agoc3: implement exec poc
Yehuda Sadeh [Wed, 6 May 2009 05:45:00 +0000 (22:45 -0700)]
c3: implement exec poc

16 years agoc3: fix rank
Yehuda Sadeh [Tue, 5 May 2009 18:56:13 +0000 (11:56 -0700)]
c3: fix rank

16 years agoc3: fix rank static allocation
Yehuda Sadeh [Mon, 4 May 2009 23:40:29 +0000 (16:40 -0700)]
c3: fix rank static allocation

16 years agoosd: add an exec op
Yehuda Sadeh [Mon, 4 May 2009 22:53:41 +0000 (15:53 -0700)]
osd: add an exec op

16 years agoc3: create a very simple interface
Yehuda Sadeh [Fri, 1 May 2009 22:42:16 +0000 (15:42 -0700)]
c3: create a very simple interface

16 years agoc3: mount through MonClient
Yehuda Sadeh [Fri, 1 May 2009 00:08:00 +0000 (17:08 -0700)]
c3: mount through MonClient

16 years agoc3: add mount/umount to mon client
Sage Weil [Mon, 11 May 2009 22:29:11 +0000 (15:29 -0700)]
c3: add mount/umount to mon client

16 years agos3: add read to unitest
Yehuda Sadeh [Thu, 30 Apr 2009 20:21:22 +0000 (13:21 -0700)]
s3: add read to unitest

16 years agoc3: ceph simple interface
Sage Weil [Mon, 11 May 2009 22:28:56 +0000 (15:28 -0700)]
c3: ceph simple interface

16 years agomds todo
Sage Weil [Mon, 11 May 2009 21:33:17 +0000 (14:33 -0700)]
mds todo

16 years agokclient: fail connection when s_addr==0 and port/nonce don't match
Sage Weil [Mon, 11 May 2009 21:00:52 +0000 (14:00 -0700)]
kclient: fail connection when s_addr==0 and port/nonce don't match

Even if s_addr is 0, the port and nonce should match.  We were
previously going ahead with the connection when we shouldn't have
been.

16 years agomds: maintain capid across mds restart and client reconnect
Sage Weil [Mon, 11 May 2009 20:54:03 +0000 (13:54 -0700)]
mds: maintain capid across mds restart and client reconnect

16 years agomon: don't replace standby mds
Sage Weil [Mon, 11 May 2009 20:21:26 +0000 (13:21 -0700)]
mon: don't replace standby mds

16 years agomds: handle MMonMap
Sage Weil [Mon, 11 May 2009 20:05:38 +0000 (13:05 -0700)]
mds: handle MMonMap

16 years agojournaler: fix replay
Sage Weil [Mon, 11 May 2009 18:51:21 +0000 (11:51 -0700)]
journaler: fix replay

Broken by commit 497ade3b90.

Use objecter to write header (not just to read it).

Also reset the prefetch values each time the layout is set.

16 years agoosd: based reported eversion in pg_stat_t on same_primary_since
Sage Weil [Sun, 10 May 2009 05:13:37 +0000 (22:13 -0700)]
osd: based reported eversion in pg_stat_t on same_primary_since

This ensures the value increases when the primary changes.

16 years agoosd: skip initial bit of peering if already have_master_log
Sage Weil [Sun, 10 May 2009 05:12:50 +0000 (22:12 -0700)]
osd: skip initial bit of peering if already have_master_log

Once we have settled on the master log, we want to skip that
step of peer().  Namely because peer() can be called on an
active PG if an osd shows up with stray content.  We still want
to peer() in that case in case there are missing objects to be
found.

16 years agomds: fix loner drops
Sage Weil [Mon, 11 May 2009 18:34:37 +0000 (11:34 -0700)]
mds: fix loner drops

This was broken way back by commit 0c3becdf.

Only drop loner in eval().

16 years agorev protocols
Sage Weil [Mon, 11 May 2009 18:15:44 +0000 (11:15 -0700)]
rev protocols

Just for good measure, since I missed a few changes earlier.

16 years agodebian: new rules file. don't strip.
Sage Weil [Mon, 11 May 2009 18:01:50 +0000 (11:01 -0700)]
debian: new rules file.  don't strip.

16 years agoosd: fix accounting .snap thing
Sage Weil [Mon, 11 May 2009 17:44:20 +0000 (10:44 -0700)]
osd: fix accounting .snap thing

16 years agotodo
Sage Weil [Mon, 11 May 2009 17:35:56 +0000 (10:35 -0700)]
todo

16 years agoconf: improved sample
Sage Weil [Sat, 9 May 2009 18:25:27 +0000 (11:25 -0700)]
conf: improved sample

16 years agoMerge branch 'unstable' into rados
Sage Weil [Fri, 8 May 2009 21:05:31 +0000 (14:05 -0700)]
Merge branch 'unstable' into rados

16 years agomon: check for osd exists before up/down
Sage Weil [Fri, 8 May 2009 20:37:06 +0000 (13:37 -0700)]
mon: check for osd exists before up/down

16 years agoosd: maintain up_epoch AND boot_epoch; revise OSDSuperblock accordingly
Sage Weil [Fri, 8 May 2009 21:04:03 +0000 (14:04 -0700)]
osd: maintain up_epoch AND boot_epoch; revise OSDSuperblock accordingly

In order to make the superblock clean interval meaningful after we
are marked down and then up again (over the life of a single
cosd process insance), we track both boot_epoch and up_epoch,
and keep [boot_epoch,clean_thru] in the superblock.

This avoids seeing crashed pgs when and osd is wrongly marked down
and the osd marks itself up again.

16 years agoosd: add back in support for unversioned sobject_t (.snap=0)
Sage Weil [Fri, 8 May 2009 04:45:53 +0000 (21:45 -0700)]
osd: add back in support for unversioned sobject_t (.snap=0)

16 years agoosd: use / in sobject_t output
Sage Weil [Fri, 8 May 2009 04:00:04 +0000 (21:00 -0700)]
osd: use / in sobject_t output

16 years agoosd: adjust heartbeat peer lock
Sage Weil [Fri, 8 May 2009 19:55:37 +0000 (12:55 -0700)]
osd: adjust heartbeat peer lock

Need it to protect heartbeat_from_stamp.

16 years agoosd: reset heartbeat peer set on osd down
Sage Weil [Fri, 8 May 2009 19:55:16 +0000 (12:55 -0700)]
osd: reset heartbeat peer set on osd down

This clears out the timers.

16 years agobuffer: add malloc raw buffer type
Sage Weil [Fri, 8 May 2009 19:20:13 +0000 (12:20 -0700)]
buffer: add malloc raw buffer type

16 years agoosd: adjust snap collection memberships during pg split
Sage Weil [Fri, 8 May 2009 04:42:19 +0000 (21:42 -0700)]
osd: adjust snap collection memberships during pg split

16 years agoosd: adjust pg_stats during pg split
Sage Weil [Fri, 8 May 2009 04:38:26 +0000 (21:38 -0700)]
osd: adjust pg_stats during pg split

16 years agoosd: generate correct child pg when doing pg split
Sage Weil [Fri, 8 May 2009 04:32:53 +0000 (21:32 -0700)]
osd: generate correct child pg when doing pg split

16 years agoceph: don't choke on unexpected MMonMap
Sage Weil [Fri, 8 May 2009 04:13:39 +0000 (21:13 -0700)]
ceph: don't choke on unexpected MMonMap

16 years agoosd: factor out clear_recovery_state from {cancel,finish}_recovery
Sage Weil [Fri, 8 May 2009 03:49:51 +0000 (20:49 -0700)]
osd: factor out clear_recovery_state from {cancel,finish}_recovery

Also kill OSD::num_pulling counter, which is wrong anyway,
lacking locking, and probably not needed anyway with the more
general recovery_op accounting.

16 years agoosd: make sure _finish_recovery only completes when it's supposed to
Sage Weil [Fri, 8 May 2009 03:47:31 +0000 (20:47 -0700)]
osd: make sure _finish_recovery only completes when it's supposed to

Because the finish_recovery does a sync, the final cleanup is
deferred, and we have to make sure we are still done (and we
haven't, say, repeered or something).

In this case, we thus make sure we don't clear out pg
recovery_ops when we actually have ops in progress.

16 years agofilestore: fix object filename parsing
Sage Weil [Fri, 8 May 2009 00:38:46 +0000 (17:38 -0700)]
filestore: fix object filename parsing

16 years agocosd: debug filestore
Sage Weil [Thu, 7 May 2009 23:32:11 +0000 (16:32 -0700)]
cosd: debug filestore

16 years agomon: don't send mdsmap on client mount
Sage Weil [Fri, 8 May 2009 00:38:11 +0000 (17:38 -0700)]
mon: don't send mdsmap on client mount

Client can request it on first mds op.

16 years agokclient: don't wait for mdsmap on mount
Sage Weil [Fri, 8 May 2009 00:33:28 +0000 (17:33 -0700)]
kclient: don't wait for mdsmap on mount

We just need the monmap.  And osdmap, since osd_client doesn't like a
null pointer atm.

16 years agoosd: set snapid in read requests
Sage Weil [Thu, 7 May 2009 23:06:50 +0000 (16:06 -0700)]
osd: set snapid in read requests

16 years agouclient: use MonClient for mount + unmount
Sage Weil [Thu, 7 May 2009 21:21:16 +0000 (14:21 -0700)]
uclient: use MonClient for mount + unmount

16 years agomonc: add mount/umount to mon client
Sage Weil [Wed, 6 May 2009 23:28:42 +0000 (16:28 -0700)]
monc: add mount/umount to mon client

16 years agoobjecter: fix osdmap requesting
Sage Weil [Wed, 6 May 2009 23:27:37 +0000 (16:27 -0700)]
objecter: fix osdmap requesting

16 years agoosd: fix pg splits vs lockdep
Sage Weil [Wed, 6 May 2009 22:23:12 +0000 (15:23 -0700)]
osd: fix pg splits vs lockdep

PG splits create+lock the child while the parent is still locked.
Disable lockdep in that case only so that we don't crash and burn.

16 years agomon: 'osd pool create foo'
Sage Weil [Wed, 6 May 2009 21:41:42 +0000 (14:41 -0700)]
mon: 'osd pool create foo'

16 years agotodo
Sage Weil [Wed, 6 May 2009 20:51:33 +0000 (13:51 -0700)]
todo

16 years agoosd: move .snap out of object_t
Sage Weil [Wed, 6 May 2009 20:12:29 +0000 (13:12 -0700)]
osd: move .snap out of object_t

This makes the snap versioning completely orthogonal to the logical
object name (object_t).  This is key since eventually object_t
won't be structured.  And the old way made for an awkward interface
anyway.

Also killed the .snap = 0 special casing, which AFAICS was
useless.

16 years agoosd: do not use ebofs
Sage Weil [Wed, 6 May 2009 18:56:08 +0000 (11:56 -0700)]
osd: do not use ebofs

Don't compile or use ebofs.

16 years agoceph: break up ceph_fs.h header into msgr.h, rados.h
Sage Weil [Fri, 1 May 2009 13:43:53 +0000 (06:43 -0700)]
ceph: break up ceph_fs.h header into msgr.h, rados.h

16 years agokclient: recalculate pgid each time request is sent
Sage Weil [Thu, 7 May 2009 21:39:47 +0000 (14:39 -0700)]
kclient: recalculate pgid each time request is sent

The pg calculation depends on osdmap parameters that are transient.  In
contrast, the rest of calc_layout is concerned with file striping, which
is fixed (at least over the lifetime of the request).