Until it is fully implemented. It's also disabled in the monitor
currently, but just in case it gets into the OSDMap, do nothing for now.
Signed-off-by: Sage Weil <sage@newdream.net>
Two things we need to handle:
- callers who already hold map_lock (split_pg())
- callers who already hold another pg->lock, and want to skip the lockdep
check for this one.
Signed-off-by: Sage Weil <sage@newdream.net>
This partially refactors the OSD split code to do the split synchronously
when processing a new OSDMap. It is incomplete in that it does not yet
do anything useful for the PG. The full solution needs to:
- Do the split synchronously when applying the map update.
- Reset the parent pg so that it repeers. This will cause problems until
we consistently consider this a new interval when looking backwards in
time; this needs to be fixed. Anybody doing generate_past_intervals()
or similar will need to consider a split/merge event as an interval
boundary.
- The recovery state machine should trigger appropriately when this
happens.
- The old PG that was split should probably be handle identically to the
new children. That means deleting the old PG instance and creating a new
PG object for the newly-split child. Ditto for merge.
Signed-off-by: Sage Weil <sage@newdream.net>
When we calculate the object's new pg, take the locator key into
consideration, to avoid a crash like
osd/OSD.cc: In function 'void OSD::split_pg(PG*, std::map<pg_t, PG*>&,ObjectStore::Transaction&)' thread 7fe3df8c4700 time 2012-02-20 18:22:19.900886
osd/OSD.cc: 4066: FAILED assert(child)
Signed-off-by: Sage Weil <sage@newdream.net>
/run isn't present on older systems. Stick with the old location until it
is more pervasive, or we add an autoconf option to control it.
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
/run/ceph should exists for creating UNIX domain sockets
ceph uses UNIX domain sockets for internal communication. Create their
directory on startup as /run is on a virtual filesystem.
Last-Update: <2012-02-26>
Bug-Debian: http://bugs.debian.org/660238
Forwarded: <ceph-devel@vger.kernel.org>
Signed-off-by: Laszlo Boszormenyi (GCS) <gcs@debian.hu>
For now, just append this to the end of the pg <pgid> query json dump.
We definitely want to do something smarter here, but I'm not sure whether
json or plaintext is the way to go.
Signed-off-by: Sage Weil <sage@newdream.net>
Dump missing objects in json. If more key is non-zero, user should ask for
more by passing the last object as the offset for the next request.
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
This is lightweight and relies on boost spirit, which we already use, so
there are no new dependencies.
There were some other libraries that also looked good, but they weren't
already packages for existing Debian distros like squeeze or even wheezy.
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>