]>
git.apps.os.sepia.ceph.com Git - ceph.git/log
Danny Al-Gaaf [Wed, 19 Feb 2014 17:17:54 +0000 (18:17 +0100)]
PG: use !empty() instead of size() > 0
[src/osd/PG.cc:543]: (performance) Possible inefficient checking
for 'actingbackfill' emptiness.
[src/osd/PG.cc:1480]: (performance) Possible inefficient checking
for 'actingbackfill' emptiness.
[src/osd/PG.cc:1774]: (performance) Possible inefficient checking
for 'actingbackfill' emptiness.
[src/osd/PG.cc:1810]: (performance) Possible inefficient checking
for 'actingbackfill' emptiness.
[src/osd/PG.cc:2229]: (performance) Possible inefficient checking
for 'actingbackfill' emptiness.
[src/osd/PG.cc:2599]: (performance) Possible inefficient checking
for 'actingbackfill' emptiness.
[src/osd/PG.cc:4345]: (performance) Possible inefficient checking
for 'actingbackfill' emptiness.
[src/osd/PG.cc:6067]: (performance) Possible inefficient checking
for 'actingbackfill' emptiness.
[src/osd/PG.cc:6264]: (performance) Possible inefficient checking
for 'actingbackfill' emptiness.
[src/osd/PG.cc:6807]: (performance) Possible inefficient checking
for 'actingbackfill' emptiness.
[src/osd/PG.cc:7014]: (performance) Possible inefficient checking
for 'actingbackfill' emptiness.
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
Danny Al-Gaaf [Wed, 19 Feb 2014 17:09:24 +0000 (18:09 +0100)]
RPCRecPred: use !empty() instead of size() >= 1
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
Danny Al-Gaaf [Wed, 19 Feb 2014 17:05:31 +0000 (18:05 +0100)]
KeyValueStore: prefer prefix ++operator for non-trivial iterator
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
Danny Al-Gaaf [Wed, 19 Feb 2014 17:03:45 +0000 (18:03 +0100)]
KeyValueStore: use !empty() instead of size()
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
Danny Al-Gaaf [Wed, 19 Feb 2014 17:02:19 +0000 (18:02 +0100)]
FileStore: use !empty() instead of size()
[src/os/FileStore.cc:3635]: (performance) Possible inefficient checking
for 'omap_set' emptiness.
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
Danny Al-Gaaf [Wed, 19 Feb 2014 16:59:37 +0000 (17:59 +0100)]
DBObjectMap: use !empty() instead of size()
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
Danny Al-Gaaf [Wed, 19 Feb 2014 16:57:04 +0000 (17:57 +0100)]
OSDMonitor: prefer prefix ++operator for non-trivial iterator
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
Danny Al-Gaaf [Wed, 19 Feb 2014 16:55:17 +0000 (17:55 +0100)]
OSDMonitor: use !empty() instead of size() > 0
[src/mon/OSDMonitor.cc:730]: (performance) Possible inefficient checking
for 'osd_weight' emptiness.
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
Danny Al-Gaaf [Wed, 19 Feb 2014 16:53:16 +0000 (17:53 +0100)]
MDCache: prefer prefix ++operator for non-trivial iterator
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
Danny Al-Gaaf [Wed, 19 Feb 2014 16:51:48 +0000 (17:51 +0100)]
CrushWrapper::is_valid_crush_loc(): pass function parameter by reference
[src/crush/CrushWrapper.cc:1412]: (performance) Function parameter 'loc'
should be passed by reference.
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
Danny Al-Gaaf [Wed, 19 Feb 2014 15:41:16 +0000 (16:41 +0100)]
CrushWrapper: prefer prefix ++operator for non-trivial iterator
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
Danny Al-Gaaf [Wed, 19 Feb 2014 15:38:35 +0000 (16:38 +0100)]
PGLog.h: prefer prefix ++operator for non-trivial iterator
[src/osd/PGLog.h:363]: (performance) Prefer prefix ++/-- operators for
non-primitive types.
[src/osd/PGLog.h:375]: (performance) Prefer prefix ++/-- operators for
non-primitive types.
[src/osd/PGLog.h:380]: (performance) Prefer prefix ++/-- operators for
non-primitive types.
[src/osd/PGLog.h:382]: (performance) Prefer prefix ++/-- operators for
non-primitive types.
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
Danny Al-Gaaf [Wed, 19 Feb 2014 15:24:27 +0000 (16:24 +0100)]
Client: remove a std::string::c_str() calls
[src/client/Client.cc:6821]: (performance) Passing the result of c_str() to a
function that takes std::string as argument no. 2 is slow and redundant.
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
Danny Al-Gaaf [Wed, 19 Feb 2014 15:17:43 +0000 (16:17 +0100)]
common/config.cc: prefer prefix ++operator for non-trivial iterator
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
Danny Al-Gaaf [Wed, 19 Feb 2014 15:13:19 +0000 (16:13 +0100)]
str_map.cc: prefer prefix ++operator for non-trivial iterator
[src/common/str_map.cc:55]: (performance) Prefer prefix ++/-- operators
for non-primitive types.
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
Danny Al-Gaaf [Wed, 19 Feb 2014 15:10:54 +0000 (16:10 +0100)]
Client.cc: use !empty() instead of size()
[src/client/Client.cc:2275]: (performance) Possible inefficient
checking for 'cap_snaps' emptiness.
[src/client/Client.cc:2458]: (performance) Possible inefficient
checking for 'cap_snaps' emptiness.
[src/client/Client.cc:2986]: (performance) Possible inefficient
checking for 'caps' emptiness.
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
Danny Al-Gaaf [Wed, 19 Feb 2014 14:20:12 +0000 (15:20 +0100)]
ceph_argparse.cc: prefer prefix ++operator for non-trivial iterator
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
Danny Al-Gaaf [Wed, 19 Feb 2014 14:13:31 +0000 (15:13 +0100)]
Monitor: pass function parameter by reference
[src/mon/Monitor.h:619]: (performance) Function parameter 'param_str_map'
should be passed by reference.
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
Danny Al-Gaaf [Wed, 19 Feb 2014 14:05:46 +0000 (15:05 +0100)]
BarrierContext: prefer prefix ++operator for non-trivial iterator
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
Danny Al-Gaaf [Wed, 19 Feb 2014 14:02:53 +0000 (15:02 +0100)]
BarrierContext: reduce scope of 'done' variable
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
Danny Al-Gaaf [Wed, 19 Feb 2014 13:54:02 +0000 (14:54 +0100)]
MonClient: pass function parameter by reference
[src/mon/MonClient.h:412]: (performance) Function parameter 'mon_name'
should be passed by reference.
Changed also parameter name in function implementation to match name
in declaration.
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
Samuel Just [Wed, 19 Feb 2014 00:08:12 +0000 (16:08 -0800)]
PG: insert into stray set if !us_up() && !is_acting()
This is simpler than checking actingbackfill
since it may not yet be filled in.
Fixes: #7470
Signed-off-by: Samuel Just <sam.just@inktank.com>
Reviewed-by: Greg Farnum <greg@inktank.com>
Sage Weil [Wed, 19 Feb 2014 05:10:04 +0000 (21:10 -0800)]
Merge pull request #1257 from ceph/wip-agent
osd: a few agent fixes
Reviewed-by: Samuel Just <sam.just@inktank.com>
Sage Weil [Wed, 19 Feb 2014 05:02:43 +0000 (21:02 -0800)]
osd/ReplicatedPG: EOPNOTSUPP on hit_set_get on non-replicated pools
We need to use the async read stuff for this to work.
Signed-off-by: Sage Weil <sage@inktank.com>
Sage Weil [Wed, 19 Feb 2014 05:02:15 +0000 (21:02 -0800)]
osd/ReplicatedPG: load older HitSets into memory
If our evict_mode is non-idle, load older HitSets into memory in the agent
work thread.
Signed-off-by: Sage Weil <sage@inktank.com>
Sage Weil [Mon, 17 Feb 2014 22:46:55 +0000 (14:46 -0800)]
osd/ReplicatedPG: strengthen agent_work assertions
Signed-off-by: Sage Weil <sage@inktank.com>
Samuel Just [Tue, 18 Feb 2014 23:25:33 +0000 (15:25 -0800)]
OSD: consider up/acting primary for new intervals
Both acting_up_affected and start_peering_interval need
to consider primary changes as well as acting/up changes.
Fixes: #7469
Signed-off-by: Samuel Just <sam.just@inktank.com>
Reviewed-by: Greg Farnum <greg@inktank.com>
Josh Durgin [Tue, 18 Feb 2014 23:38:34 +0000 (15:38 -0800)]
Merge pull request #1259 from ceph/wip-6677
rgw: add compatibility for MultipartUpload
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
Josh Durgin [Tue, 18 Feb 2014 23:37:58 +0000 (15:37 -0800)]
Merge pull request #1258 from ceph/wip-rgw-gc
radosgw-admin: gc list --include-all
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
Yehuda Sadeh [Tue, 18 Feb 2014 19:45:15 +0000 (11:45 -0800)]
radosgw-admin: gc list --include-all
A new option to the radosgw-admin gc list command that dumps *all* gc
entries, and not just the expired ones. This is useful for debugging.
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
Mike Lundy [Tue, 11 Feb 2014 23:58:06 +0000 (15:58 -0800)]
Throw a Timeout exception on timeout.
Signed-off-by: Mike Lundy <mike@fluffypenguin.org>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
Josh Durgin [Tue, 18 Feb 2014 21:07:53 +0000 (13:07 -0800)]
Merge pull request #1214 from ceph/wip-rgw-manifest-2
Wip rgw manifest 2
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
Yehuda Sadeh [Sat, 8 Feb 2014 01:00:07 +0000 (17:00 -0800)]
dencoder: fix for new rgw manifest code
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
Yehuda Sadeh [Sat, 8 Feb 2014 00:34:52 +0000 (16:34 -0800)]
cls/rgw: fix debug output
print the correct error value
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
Yehuda Sadeh [Mon, 3 Feb 2014 22:58:00 +0000 (14:58 -0800)]
test/rgw: manifest unitest
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
Yehuda Sadeh [Fri, 31 Jan 2014 00:05:42 +0000 (16:05 -0800)]
rgw: scalable manifest object
Define a new manifest structure. The idea is that the manifest defines a
set of rules for structuring the object parts. There are a few terms to
note:
- head: the head part of the object, which is the part that contains
the first chunk of data. An object might not have a head (as in the
case of multipart-part objects.
- stripe: data portion of a single rgw object that resides on a single
rados object.
- part: a collection of stripes that make a contiguous part of an
object. A regular object will only have one part (although might have
many stripes), a multipart object might have many parts. Each part
has a fixed stripe size, although the last stripe of a part might
be smaller than that. Consecutive parts may be merged if their stripe
value is the same.
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
Gregory Farnum [Tue, 18 Feb 2014 20:34:29 +0000 (12:34 -0800)]
Merge pull request #1227 from ceph/wip-7394
Improve the OSD and generic monitor timeout mechanisms
Reviewed-by: Sage Weil <sage@inktank.com>
Samuel Just [Tue, 18 Feb 2014 18:56:02 +0000 (10:56 -0800)]
Merge remote-tracking branch 'upstream/wip-ecbackend-for-review'
Reviewed-by: Sage Weil <sage@inktank.com>
Sage Weil [Tue, 18 Feb 2014 16:22:17 +0000 (08:22 -0800)]
Merge pull request #1255 from ceph/wip-cache-perf
osd: add perfcounters for new cache and agent events
Reviewed-by: Haomai Wang <haomaiwang@gmail.com>
Sage Weil [Mon, 17 Feb 2014 21:05:58 +0000 (13:05 -0800)]
osd/ReplicatedPG: clean up agent skip debug output
Signed-off-by: Sage Weil <sage@inktank.com>
Sage Weil [Mon, 17 Feb 2014 20:23:44 +0000 (12:23 -0800)]
osd: l_osd_agent_{wake,skip,flush,evict}
Signed-off-by: Sage Weil <sage@inktank.com>
Sage Weil [Mon, 17 Feb 2014 20:20:28 +0000 (12:20 -0800)]
osd: l_osd_tier_[dirty|clean]
Signed-off-by: Sage Weil <sage@inktank.com>
Sage Weil [Mon, 17 Feb 2014 20:19:36 +0000 (12:19 -0800)]
osd: l_osd_tier_whiteout
Signed-off-by: Sage Weil <sage@inktank.com>
Sage Weil [Mon, 17 Feb 2014 20:18:49 +0000 (12:18 -0800)]
osd: l_osd_tier_evict
Signed-off-by: Sage Weil <sage@inktank.com>
Sage Weil [Mon, 17 Feb 2014 18:55:54 +0000 (10:55 -0800)]
osd: l_osd_tier_[try_]flush[_fail]
Signed-off-by: Sage Weil <sage@inktank.com>
Sage Weil [Mon, 17 Feb 2014 18:52:36 +0000 (10:52 -0800)]
osd: l_osd_copyfrom
Signed-off-by: Sage Weil <sage@inktank.com>
Samuel Just [Sun, 16 Feb 2014 01:33:39 +0000 (17:33 -0800)]
RadosModel: only output if missing header is actually a problem
Signed-off-by: Samuel Just <sam.just@inktank.com>
Samuel Just [Sun, 16 Feb 2014 01:33:07 +0000 (17:33 -0800)]
Objecter: track primary explicitly to detect changing primaries
Signed-off-by: Samuel Just <sam.just@inktank.com>
Samuel Just [Sun, 16 Feb 2014 01:32:34 +0000 (17:32 -0800)]
ReplicatedPG: add some debugging if waiting_for_commit is non-empty
Signed-off-by: Samuel Just <sam.just@inktank.com>
Samuel Just [Mon, 27 Jan 2014 21:37:08 +0000 (13:37 -0800)]
osd/: instantiate the right backend based on pool
Signed-off-by: Samuel Just <sam.just@inktank.com>
Samuel Just [Thu, 6 Feb 2014 02:49:41 +0000 (18:49 -0800)]
ECBackend: flesh out ECBackend implementation
Signed-off-by: Samuel Just <sam.just@inktank.com>
Samuel Just [Sat, 1 Feb 2014 04:20:55 +0000 (20:20 -0800)]
osd/ECTransaction: add type encapsulating EC transaction
Signed-off-by: Samuel Just <sam.just@inktank.com>
Samuel Just [Fri, 20 Dec 2013 00:15:27 +0000 (16:15 -0800)]
osd/ECUtil: add ec encode/decode util helpers
Signed-off-by: Samuel Just <sam.just@inktank.com>
Samuel Just [Sat, 15 Feb 2014 00:13:01 +0000 (16:13 -0800)]
ObjectStore: add bufferlist/string getattr
Signed-off-by: Samuel Just <sam.just@inktank.com>
Samuel Just [Mon, 17 Feb 2014 01:42:30 +0000 (17:42 -0800)]
buffer: allow caller to initialize bufferhash state
Signed-off-by: Samuel Just <sam.just@inktank.com>
Samuel Just [Mon, 17 Feb 2014 05:26:41 +0000 (21:26 -0800)]
osd_types: add swap, claim_append to ObjectModDesc
Signed-off-by: Samuel Just <sam.just@inktank.com>
Samuel Just [Sat, 1 Feb 2014 04:06:58 +0000 (20:06 -0800)]
OSD,PG: pass through EC messages
Signed-off-by: Samuel Just <sam.just@inktank.com>
Samuel Just [Fri, 20 Dec 2013 00:15:03 +0000 (16:15 -0800)]
messages,osd: add EC messages and associated types
Signed-off-by: Samuel Just <sam.just@inktank.com>
Samuel Just [Thu, 12 Dec 2013 19:17:04 +0000 (11:17 -0800)]
src/osd/: add ECBackend stubs
Signed-off-by: Samuel Just <sam.just@inktank.com>
Samuel Just [Sun, 16 Feb 2014 03:08:42 +0000 (19:08 -0800)]
PGBackend: make getattrs virtual
This way, the backend can choose to filter private attrs.
Signed-off-by: Samuel Just <sam.just@inktank.com>
Samuel Just [Sun, 16 Feb 2014 03:08:13 +0000 (19:08 -0800)]
ReplicatedPG: fix size checking for ECBackend pools
Allow the backend to adjust the logical object size before
checking against the ondisk size.
Signed-off-by: Samuel Just <sam.just@inktank.com>
Samuel Just [Sat, 8 Feb 2014 22:04:14 +0000 (14:04 -0800)]
PGBackend/ReplicatedBackend: factor out logical to ondisk size mapping
Signed-off-by: Samuel Just <sam.just@inktank.com>
Samuel Just [Sat, 8 Feb 2014 21:52:28 +0000 (13:52 -0800)]
PGBackend/ReplicatedBackend: move the backend agnostic code into PGBackend for scrub
Signed-off-by: Samuel Just <sam.just@inktank.com>
Samuel Just [Sat, 8 Feb 2014 21:40:50 +0000 (13:40 -0800)]
ReplicatedBackend: factor out be_deep-scrub
Signed-off-by: Samuel Just <sam.just@inktank.com>
Samuel Just [Thu, 30 Jan 2014 21:06:50 +0000 (13:06 -0800)]
osd/: replace bufferptr with bufferlist for attrs in recovery
Now we won't have to keep converting back and forth!
Signed-off-by: Samuel Just <sam.just@inktank.com>
Samuel Just [Mon, 10 Feb 2014 22:05:09 +0000 (14:05 -0800)]
PG::discover_all_missing: request a FULLLOG
Otherwise, we cannot correct for divergent objects in the missing
set.
Signed-off-by: Samuel Just <sam.just@inktank.com>
Samuel Just [Wed, 29 Jan 2014 21:38:04 +0000 (13:38 -0800)]
PG,ReplicatedPG: Generalize missing_loc for ECBackend
Prior to EC pools, unfound => missing. Now, unfound (unreadable,
really) is dependent on the PGBackend requirements for reconstituting
an object. This also means recovering an object missing on a replica
but not the primary requires tracking the missing_loc set.
Thus, rather than maintaining missing_loc only for objects missing
on the primary, the MissingLoc structure will track all missing
objects actingbackfill-wide until each object is recovered.
For simplicity, since we don't really know what objects need recovery
until activation (and since we can't do anything with that information
prior to activation anyway), we defer populating the missing_loc
information until activation.
We need peers to rollback divergent log entries before we attempt to
read the relevant objects. The simplest way to accomplish this seems to
be the simply choose to always activate peers if search_for_missing
turns up missing objects.
Due to EC pools, missing is necessary, but not sufficient for readability.
Thus, we instead check is_unreadable for cases where we need to read the object
and reserve is_missing for cases where we need the object context.
wait_for_missing_object becomes waiting_for_unreadable_object in order to avoid
having another layer of waiting_for_* maps. These ops may be requeued
either when the primary is recovered or when the object is no longer degraded,
depending on when the object becomes readable.
Signed-off-by: Samuel Just <sam.just@inktank.com>
Samuel Just [Wed, 12 Feb 2014 18:53:13 +0000 (10:53 -0800)]
PG: allow PGBackend to set criteria for PG up-ness
ECBackend needs to be able to require that a readable
set of the most recent interval to write be available
in order to ensure that it rolls back the log far
enough.
Signed-off-by: Samuel Just <sam.just@inktank.com>
Samuel Just [Tue, 28 Jan 2014 00:52:05 +0000 (16:52 -0800)]
PGBackend: add some additional helpers.
ECBackend's primary specific logic mostly won't treat the
primary shard specially, so it'll be handy to have primary
agnostic helpers for get_shard_info and get_shard_missing.
Signed-off-by: Samuel Just <sam.just@inktank.com>
Samuel Just [Tue, 28 Jan 2014 00:52:20 +0000 (16:52 -0800)]
PG,PGBackend: expose acting and backfill_targets
Signed-off-by: Samuel Just <sam.just@inktank.com>
Samuel Just [Sat, 1 Feb 2014 05:42:45 +0000 (21:42 -0800)]
os/: allow objects with NO_GEN but non-NO_SHARD shard
Signed-off-by: Samuel Just <sam.just@inktank.com>
Samuel Just [Wed, 12 Feb 2014 18:46:09 +0000 (10:46 -0800)]
PG: skip CRUSH_ITEM_NONE in acting set in various places
Signed-off-by: Samuel Just <sam.just@inktank.com>
Samuel Just [Wed, 12 Feb 2014 18:44:45 +0000 (10:44 -0800)]
osd/: extend pg_interval_t to include primary
Otherwise, we cannot correctly determine up_from/up_thru for
old intervals. Also, we need this information to determine
when a new interval starts due to a new primary without a
change in the acting set.
Signed-off-by: Samuel Just <sam.just@inktank.com>
Samuel Just [Wed, 12 Feb 2014 18:48:56 +0000 (10:48 -0800)]
Objecter: handle primary other than acting[0]
EC pool particularly might have CRUSH_ITEM_NONE as acting[0] which
is not a valid osd.
Signed-off-by: Samuel Just <sam.just@inktank.com>
Samuel Just [Wed, 12 Feb 2014 18:45:07 +0000 (10:45 -0800)]
OSDMap: handle CRUSH_ITEM_NONE in acting sets
Signed-off-by: Samuel Just <sam.just@inktank.com>
Samuel Just [Thu, 23 Jan 2014 22:52:01 +0000 (14:52 -0800)]
OSDMap: fill in get_primary_shard
Signed-off-by: Samuel Just <sam.just@inktank.com>
Samuel Just [Thu, 23 Jan 2014 21:09:54 +0000 (13:09 -0800)]
PG: introduce calc_ec_acting
Signed-off-by: Samuel Just <sam.just@inktank.com>
Samuel Just [Thu, 23 Jan 2014 18:12:45 +0000 (10:12 -0800)]
PG: refactor calc_acting to handle pg_shard_t changes
Signed-off-by: Samuel Just <sam.just@inktank.com>
Samuel Just [Tue, 28 Jan 2014 20:50:05 +0000 (12:50 -0800)]
osd/: refer to pg by spg_t and replica by pg_shard_t
We may have multiple pg shards on the same osd for an
ec pool. Thus, replicas must be referred to by <osd, shard>
and pgs by <pgid, shard>.
Signed-off-by: Samuel Just <sam.just@inktank.com>
Samuel Just [Thu, 16 Jan 2014 23:27:36 +0000 (15:27 -0800)]
messages/: include shard information in various pg messages
We can no longer use the messenger source information to determine
the origin of the message since an osd might have more than one
shard of a particular pg. Thus, we need to include a pg_shard_t
from field to indicate origin. Similarly, pg_t is no longer
sufficient to specify the destination pg, we instead use spg_t.
In the event that we get a message from an old peer, we default
from to pg_shard_t(get_source().num(), ghobject_t::no_shard())
and spg_t to spg_t(pgid, ghobject_t::no_shard()). This suffices
because non-NO_SHARD shards can only appear once ec pools have
been enabled -- and doing that bans unenlightened osds.
Signed-off-by: Samuel Just <sam.just@inktank.com>
Samuel Just [Sun, 16 Feb 2014 01:43:19 +0000 (17:43 -0800)]
ReplicatedBackend: excise OSDService*
This should eventually make it easier to mock out a PGBackend::Listener.
Signed-off-by: Samuel Just <sam.just@inktank.com>
Samuel Just [Thu, 23 Jan 2014 01:56:30 +0000 (17:56 -0800)]
PGBackend/ReplicatedBackend: move temp handling into PGBackend
Temp handling is also the same in ReplicatedBackend as in ECBackend.
Signed-off-by: Samuel Just <sam.just@inktank.com>
Samuel Just [Sat, 1 Feb 2014 06:52:37 +0000 (22:52 -0800)]
PGBackend: use whoami_shard().shard in rollback*, objects*
Signed-off-by: Samuel Just <sam.just@inktank.com>
Samuel Just [Thu, 23 Jan 2014 01:50:04 +0000 (17:50 -0800)]
ReplicatedBackend/PGBackend: move objects_* methods into PGBackend
These also are unchanged in ECBackend.
Signed-off-by: Samuel Just <sam.just@inktank.com>
Samuel Just [Thu, 23 Jan 2014 01:46:22 +0000 (17:46 -0800)]
PGBackend/ReplicatedBackend: move rollback methods into PGBackend
These will end up essentially unchanged in ECBackend as it turns out.
Signed-off-by: Samuel Just <sam.just@inktank.com>
Samuel Just [Wed, 11 Dec 2013 23:03:44 +0000 (15:03 -0800)]
osd_types: introduce spg_t, pg_shard_t
Signed-off-by: Samuel Just <sam.just@inktank.com>
Samuel Just [Mon, 16 Dec 2013 23:40:04 +0000 (15:40 -0800)]
ObjectStore: use ghobject_t for setattrs
Signed-off-by: Samuel Just <sam.just@inktank.com>
Samuel Just [Fri, 27 Dec 2013 19:26:11 +0000 (11:26 -0800)]
src/osd: pass in version to recover to recover_object
Otherwise we need to do some annoying contortions to
get it out of the missing sets.
Signed-off-by: Samuel Just <sam.just@inktank.com>
Samuel Just [Thu, 6 Feb 2014 02:42:34 +0000 (18:42 -0800)]
osd/: Add a shard parameter to SnapMapper to handle multiple pg shards
Signed-off-by: Samuel Just <sam.just@inktank.com>
Samuel Just [Mon, 17 Feb 2014 22:20:44 +0000 (14:20 -0800)]
TestPGLog: remove test with DELETE op with prior_version = eversion_t()
Signed-off-by: Samuel Just <sam.just@inktank.com>
Samuel Just [Mon, 10 Feb 2014 22:07:07 +0000 (14:07 -0800)]
PGLog::merge_old_entry: simplify the oe.version > ne.version case
If ne.version < oe.version, the correct answer is to rollback oe.version
if possible regardless of what the entries are.
Also, rearrange to deal with the fact that we cannot roll back a missing
object.
Signed-off-by: Samuel Just <sam.just@inktank.com>
Sage Weil [Mon, 17 Feb 2014 18:50:39 +0000 (10:50 -0800)]
osd: l_osd_tier_promote
Signed-off-by: Sage Weil <sage@inktank.com>
Yan, Zheng [Mon, 17 Feb 2014 23:15:58 +0000 (07:15 +0800)]
Merge pull request #1128 from ceph/wip-dirfrags
Fixes for mds cluster + directory fragments
Samuel Just [Fri, 7 Feb 2014 01:26:24 +0000 (17:26 -0800)]
PG: just ignore rollbacks on objects we have already failed to rollback
The relevant changes to missing and/or the filestore will have
already been made.
Signed-off-by: Samuel Just <sam.just@inktank.com>
Samuel Just [Mon, 10 Feb 2014 22:04:30 +0000 (14:04 -0800)]
PG::remove_snap_mapped_object: use pg_whoami.shard
Signed-off-by: Samuel Just <sam.just@inktank.com>
Samuel Just [Sun, 16 Feb 2014 01:44:57 +0000 (17:44 -0800)]
ReplicatedPG: take snapset_obc write lock where appropriate
Otherwise, we might read it for backfill before it's fully created
on a peer.
Signed-off-by: Samuel Just <sam.just@inktank.com>
Samuel Just [Tue, 11 Feb 2014 02:35:47 +0000 (18:35 -0800)]
ReplicatedPG: release backfill state on_global_recover not peer recover
There may now be multiple backfill peers.
Signed-off-by: Samuel Just <sam.just@inktank.com>
Samuel Just [Tue, 11 Feb 2014 02:34:52 +0000 (18:34 -0800)]
ReplicatedPG: take clone write lock as well in make_writeable
Otherwise, we might start backfilling the clone before the op is
complete.
Signed-off-by: Samuel Just <sam.just@inktank.com>
Samuel Just [Thu, 23 Jan 2014 21:32:21 +0000 (13:32 -0800)]
ReplicatedPG,osd_types: seperate require_rollback from ec_pool
It's handy to allow a pool to answer false to ec_pool() and
true to require_rollback() in order to allow a replicated
pool to test the rollback mechanisms without allowing
non-NO_SHARD shards.
Signed-off-by: Samuel Just <sam.just@inktank.com>
Samuel Just [Mon, 10 Feb 2014 22:07:46 +0000 (14:07 -0800)]
ReplicatedPG:: remove_snap_mapped_object already removes the object
Signed-off-by: Samuel Just <sam.just@inktank.com>