Commit Graph

30995 Commits

Author SHA1 Message Date
Yehuda Sadeh
d26e76655b civetweb: fix module uri
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2014-01-23 09:41:00 -08:00
Yehuda Sadeh
3f20a41f87 civetweb: update submodule
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2014-01-23 09:41:00 -08:00
Yehuda Sadeh
f2f74754c9 rgw: switch mongoose to civetweb
Fixes: #7054
mongoose is now GPL, using the civetweb fork instead.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2014-01-23 09:40:59 -08:00
Sage Weil
d8bafaebd0 Merge pull request #1131 from ceph/use-unordered-map
osd: use ceph:: scoped hash_map

Reviewed-by: Sage Weil <sage@inktank.com>
2014-01-23 09:27:03 -08:00
Noah Watkins
6f8541c8da osd: use ceph:: scoped hash_map
Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
2014-01-23 07:20:42 -08:00
Josh Durgin
645dd31ca4 Merge pull request #1064 from ceph/port/libc++
support libc++
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2014-01-23 00:27:30 -08:00
Samuel Just
2b0f8cbf23 Merge branch 'wip-client-io-final'
Reviewed-by: Greg Farnum <greg@inktank.com>
Reviewed-by: David Zafman <david.zafman@inktank.com>
2014-01-22 14:52:39 -08:00
Samuel Just
ecbdeb19ff PGBackend: clarify rollback_stash name and method comments
Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-01-22 14:39:18 -08:00
Samuel Just
4fc4573fd2 PG: drop messages from down peers
This overlaps with the existing old_peering_msg() mechanism
except in one case: pulls from a replica not in the acting
set.  If such a replica gets marked down, we may resend
pulls to another replica without causing a new interval
to start.  If we recieved, but didn't process, a push in
response to such a pull prior to processing the map marking
the peer down, we might process the push after having reset
the pull state for a different pull operation.  We can
avoid this by discarding ops from down peers.

Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-01-22 14:39:18 -08:00
Samuel Just
e73a9f7b7a ReplicatedPG: make STARTSYNC a noop
Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-01-22 14:39:18 -08:00
Samuel Just
96d4a0c26e PG::calc_acting: consider newest_update_osd when choosing backfill peers
We must include newest_update_osd->second.log_tail when considering backfill
peers because in GetLog we will request logs back to the min last_update over
our acting_backfill set.  This will result in our log being extended as far
backwards as necessary to pick up any peers which can be log recovered by the
union of newest_update_osd's log and that of the chosen primary.

Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-01-22 14:39:18 -08:00
Samuel Just
7e3ccfef65 ReplicatedPG: take ReplicatedPGRef in BlessedContext
Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-01-22 14:39:18 -08:00
Samuel Just
167f852387 RadosModel: RollBack dirties the object
Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-01-22 14:39:18 -08:00
Samuel Just
6e74123c78 RadosModel: undirty with update_object_undirty
Otherwise it doesn't behave properly with snapshots since
update_object_version doesn't add another snapshot entry.

Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-01-22 14:39:17 -08:00
Samuel Just
ca37d08ea9 ReplicatedPG::trim_object: remove unused int r; declaration
Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-01-22 14:39:17 -08:00
Samuel Just
d0eda792de common/hobject: print shard as unsigned, not as char
Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-01-22 14:39:17 -08:00
Samuel Just
9273177afd ReplicatedPG::_process_copy_chunk: use append
Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-01-22 14:39:17 -08:00
Samuel Just
183f41c038 ReplicatedPG: fill in mod_desc for hitset repops
Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-01-22 14:39:17 -08:00
Samuel Just
9fd7a80088 ReplicatedPG: use append for write and writefull
Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-01-22 14:39:17 -08:00
Samuel Just
7c9425c3a8 ReplicatedPG: fill in mod_desc in finish_copyfrom
Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-01-22 14:39:17 -08:00
Samuel Just
e8a08ffa5b ReplicatedPG::finish_copyfrom: check new_obs.exists, not obs.exists
If the transaction previously created the object, the stat update
will have already happened.

Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-01-22 14:39:17 -08:00
Samuel Just
eb8f66d5d8 ReplicatedPG: handle removing the old object in finish_copy_op
do_osd_ops will need to either copy the old version out of the
way or simply delete it depending on mod_desc.  Thus, defer
handling filling that part in until we finish the copy op.

Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-01-22 14:39:17 -08:00
Samuel Just
f2384412cf ReplicatedPG: EOPNOTSUPP on ec_pool if there are omaps in the COPY_GET
Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-01-22 14:39:17 -08:00
Samuel Just
b3c2ef2d8f ReplicatedPG: make COPY_GET async read friendly
Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-01-22 14:39:17 -08:00
Samuel Just
a382ab82fe ReplicatedPG: requeue in_progress_async_reads on_change
Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-01-22 14:39:17 -08:00
Samuel Just
0bba79b722 ReplicatedPG: support async reads on ec pools
Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-01-22 14:39:17 -08:00
Samuel Just
647e75ae78 src/: add CEPH_OSD_OP_READ_SYNC
EC pools won't support SYNC reads.  This means that TMAP and friends
along with reads from an object class will not be supported.

Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-01-22 14:39:16 -08:00
Samuel Just
3ef6282c8d ReplicatedPG: use pgbackend->objects_read_sync() as appropriate
Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-01-22 14:39:16 -08:00
Samuel Just
2fe5e1f2d2 osd/: add sync/async read methods to PGBackend
Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-01-22 14:39:16 -08:00
Samuel Just
66bc91cf0a ObjectStore: _collection_move_rename needs to increment ops
Bugfix.

Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-01-22 14:39:16 -08:00
Samuel Just
a3e4a844ef PGLog,PG: reset can_rollback_to when we get a log entry without a transaction
We cannot rollback past an entry which we didn't actually
apply locally.

Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-01-22 14:39:16 -08:00
Samuel Just
347d968a9d PGLog: we cannot rollback past a recovered object entry
We don't recover the older versions, so we can't do a rollback.
In general, this is ok since we had enough copies to recover it
in the first place.

Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-01-22 14:39:16 -08:00
Samuel Just
25eced59a8 PGLog: create interface allowing interface user to cleanup/rollback
We need to be able to allow the PGLog interface user to provide
logic for rolling back and trimming log entries.  To that end,
serveral PGLog methods now take a LogEntryHander.

In PGLog::merge_old_entry, if prior_version > info.log_tail and
the object is not missing, we must have rolled back the prior
log entry.  Thus, we don't skip the entry.

To simplify the code, _merge_old_entry has been split out as
a const helper.  This way, proc_replica_log can be reexpressed
as merging the divergent replica log entries with the fully
merged authoritative log.

Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-01-22 14:39:16 -08:00
Samuel Just
c98cb1ce74 ReplicatedPG: Fill in rollback info for log events
Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-01-22 14:39:16 -08:00
Samuel Just
ecae37c33b osd/: introduce xattr caching for ec pools
Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-01-22 14:39:16 -08:00
Samuel Just
155b4b069f PGBackend,ReplicatedBackend: add support for rolling back log entries
Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-01-22 14:39:16 -08:00
Samuel Just
0528974584 osd_types: add a can_rollback_to line to pg_log_t
This allows us to determine how far back the log can be rolled.

Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-01-22 14:39:15 -08:00
Samuel Just
63f64de118 osd_types: add ObjectModDesc into pg_log_entry_t
Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-01-22 14:39:15 -08:00
Samuel Just
a7a6a2f153 osd_types: ObjectModDesc
Contains information needed to roll back a pg_log_entry_t.

Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-01-22 14:39:15 -08:00
Samuel Just
53c26bc335 osd/: move client op handling into ReplicatedBackend
Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-01-22 14:39:15 -08:00
Samuel Just
c58c8990d9 PGBackend: allow queue_transaction to specify an op
Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-01-22 14:39:15 -08:00
Samuel Just
1a4694fdde ReplicatedPG: factor out should_send_op
Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-01-22 14:39:15 -08:00
Samuel Just
26b804f266 ReplicatedPG: split out op_applied_replica
Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-01-22 14:39:15 -08:00
Samuel Just
09717e6d5e PG/ReplicatedPG: move snap map management into append_log
Both the replica and the primary should use the same append_log
mechanism to update the snap map.

Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-01-22 14:39:15 -08:00
Samuel Just
5732f0c99d ReplicatedBackend: implement RPGTransaction
RPGTransaction is essentially a wrapped ObjectStore::Transaction.
The coll_t argument is elided, tempness is instead encoded in the
hobject.  RPGTransaction tracks which temp objects are created and
cleared so we can update the ReplicatedBackend tracking and possibly
create the temp collection as needed.

Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-01-22 14:39:15 -08:00
Samuel Just
bf9390f3e2 hobject_t/ReplicatedPG: tempness is now an hobject thing
PGBackend implmentations will have complete control over the temp
collection.  Rather than specifying the collection when sending
ops into the PGBackend, hobjects themselves will be temp or not.

Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-01-22 14:39:15 -08:00
Samuel Just
c60185c01a PGBackend: add PGTransaction
Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-01-22 14:39:15 -08:00
Samuel Just
d3c8e85a44 ReplicatedBackend: update the collection_list mechanisms to skip stashed objects
Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-01-22 14:39:14 -08:00
Samuel Just
4d56e3c831 test/osd/: verify length of buffer returned in read
Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-01-22 14:39:14 -08:00
Samuel Just
0885880b30 test/osd/TestRados.cc: skip 0 weight ops
Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-01-22 14:39:14 -08:00