summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* OpTracker: give TrackedOp a default dump() functionwip-optrackerGreg Farnum2013-09-192-1/+33
| | | | Signed-off-by: Greg Farnum <greg@inktank.com>
* OpTracker: get rid of TrackedOp::received_time for the MessageGreg Farnum2013-09-193-12/+10
| | | | Signed-off-by: Greg Farnum <greg@inktank.com>
* OpTracker: demand that a TrackedOp gets to own its Message for life.Greg Farnum2013-09-192-5/+1
| | | | Signed-off-by: Greg Farnum <greg@inktank.com>
* OpTracker: provide a default implementation of TrackedOp::state_stringGreg Farnum2013-09-191-1/+3
| | | | | | | | We're moving towards dynamically-allocated states instead of the static ones this started with, so the whole bitmask-based thing doesn't make much sense any more. Assume people won't use that and provide a default. Signed-off-by: Greg Farnum <greg@inktank.com>
* osd: use TrackedOp::get_req() instead of direct access to the request.Greg Farnum2013-09-198-112/+109
| | | | Signed-off-by: Greg Farnum <greg@inktank.com>
* OpTracker: include a destructor for the TrackedOp base class.Greg Farnum2013-09-192-1/+2
| | | | | | | Our method of handling the OpRequest destructor is a little weird, but we're about to get rid of the request member finagling. Signed-off-by: Greg Farnum <greg@inktank.com>
* osd: change how we work around an interface limitation.Greg Farnum2013-09-191-3/+8
| | | | | | | If this had ever actually been triggered we would have hit an assert in the OpRequest destructor that op->request is non-NULL. Signed-off-by: Greg Farnum <greg@inktank.com>
* OpTracker: move OpTracker pointer and some init code into TrackedOpGreg Farnum2013-09-193-17/+24
| | | | | | Clean up some member privacy issues while we're working on them. Signed-off-by: Greg Farnum <greg@inktank.com>
* OpTracker: remove the references to "osd" in config variablesGreg Farnum2013-09-193-15/+15
| | | | | | | | We may want to have daemon-specific settings in the future, but that will be a small interface change and in the mean time this keeps a clear demarcation between OSD and OpTracker infrastructure. Signed-off-by: Greg Farnum <greg@inktank.com>
* OpTracker: move the OpTracker and OpHistory into common/TrackedOp.[h|cc]Greg Farnum2013-09-195-315/+338
| | | | Signed-off-by: Greg Farnum <greg@inktank.com>
* OpTracker: add an init_from_message() to the TrackedOp interfaceGreg Farnum2013-09-193-8/+16
| | | | | | | | | This can be used for the concrete implementations to gather any extra data out of the message and do whatever extra setup based on that they want. The OpTracker will call this after doing all its internal setup but before anybody else gets to see the TrackedOp. Signed-off-by: Greg Farnum <greg@inktank.com>
* OpTracker: start making the OpTracker into a genericGreg Farnum2013-09-194-68/+87
| | | | | | | | | We're starting by templating the create_request function and having the OpTracker work in terms of TrackedOp[Ref]s intead of OpRequest[Ref]s. This involves moving a bunch of stuff into the base-class TrackedOp. Signed-off-by: Greg Farnum <greg@inktank.com>
* OpRequest: remove obsolete comment about ref-counting (use OpRequestRef!)Greg Farnum2013-09-191-3/+0
| | | | Signed-off-by: Greg Farnum <greg@inktank.com>
* osd: move pow2_hist_t out of osd_types and into include/Greg Farnum2013-09-195-62/+82
| | | | | | | This has only been used for the OSD so far, but as with the rest of the OpRequest stuff, it's actually pretty generic. Signed-off-by: Greg Farnum <greg@inktank.com>
* Makefile: fix unittest_crc32cSage Weil2013-09-191-0/+5
| | | | | | This got dropped during the makefile refactor. Signed-off-by: Sage Weil <sage@inktank.com>
* os/FileStore: fix uninitialized varSage Weil2013-09-181-1/+1
| | | | Signed-off-by: Sage Weil <sage@inktank.com>
* doc/release-notes: v0.69Sage Weil2013-09-181-0/+50
| | | | Signed-off-by: Sage Weil <sage@inktank.com>
* Merge branch 'next'Gary Lowell2013-09-1811-6/+36
|\
| * v0.69v0.69Gary Lowell2013-09-182-1/+7
| |
| * rgw: try to create log pool if doesn't existYehuda Sadeh2013-09-131-0/+9
| | | | | | | | | | | | | | | | When using replica log, if the log pool doesn't exist all operations are going to fail. Try to create it if doesn't exist. Reviewed-by: Josh Durgin <josh.durgin@inktank.com> Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
| * rgw: NULL terminate buffer before parsing itYehuda Sadeh2013-09-131-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | Fixes: #6175 Backport: dumpling We get a buffer off the remote gateway which might not be NULL terminated. The JSON parser needs the buffer to be NULL terminated even though we provide a buffer length as it calls strlen(). Reviewed-by: Josh Durgin <josh.durgin@inktank.com> Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
| * rgw: don't call list::size() in ObjectCacheYehuda Sadeh2013-09-112-2/+6
| | | | | | | | | | | | | | | | Fixes: #6286 Use an external counter instead of calling list::size() Reviewed-by: Sage Weil <sage@inktank.com> Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
| * rgw: drain pending requests before completing writeYehuda Sadeh2013-09-112-1/+6
| | | | | | | | | | | | | | | | | | | | Fixes: #6268 When doing aio write of objects (either regular or multipart parts) we need to drain pending aio requests. Otherwise if gateway goes down then object might end up corrupted. Reviewed-by: Josh Durgin <josh.durgin@inktank.com> Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
| * rgw: when failing read from client, return correct errorYehuda Sadeh2013-09-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | Fixes: #6214 When getting a failed read from client when putting an object we returned the wrong value (always 0), which in the chunked- upload case ended up in assuming that the write was done successfully. Signed-off-by: Yehuda Sadeh <yehuda@inktank.com> Reviewed-by: Sage Weil <sage@inktank.com>
| * Merge pull request #583 from ceph/wip-6230-workunitSage Weil2013-09-091-0/+4
| |\ | | | | | | | | | | | | qa: workunits: mon: crush_ops: test 'ceph osd crush move' Reviewed-by: Sage Weil <sage@inktank.com>
| | * qa: workunits: mon: crush_ops: test 'ceph osd crush move'Joao Eduardo Luis2013-09-101-0/+4
| |/ | | | | | | Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
| * Merge pull request #582 from ceph/wip-6230Sage Weil2013-09-092-1/+2
| |\ | | | | | | | | | | | | mon: MonCommands: expect a CephString as 1st arg for 'osd crush move' Reviewed-by: Sage Weil <sage@inktank.com>
| | * mon: MonCommands: expect a CephString as 1st arg for 'osd crush move'wip-6230Joao Eduardo Luis2013-09-092-1/+2
| |/ | | | | | | | | | | Fixes: #6230 Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
* | Merge pull request #586 from ceph/wip-copyfrom-bigGregory Farnum2013-09-1715-265/+641
|\ \ | | | | | | | | | Reviewed-by: Greg Farnum <greg@inktank.com> Reviewed-by: Samuel Just <sam.just@inktank.com>
| * | ceph_test_rados: identify write seq_num in outputSage Weil2013-09-171-3/+3
| | | | | | | | | | | | Signed-off-by: Sage Weil <sage@inktank.com>
| * | librados: test copy_from without src_version specifiedSage Weil2013-09-171-16/+45
| | | | | | | | | | | | Signed-off-by: Sage Weil <sage@inktank.com>
| * | osd: allow a copy_from without knowing the src_versionSage Weil2013-09-171-5/+12
| | | | | | | | | | | | | | | | | | | | | If we don't specify the version up front, learn the version after the first chunk and enforce it thereafter to ensure we do not get torn content. Signed-off-by: Sage Weil <sage@inktank.com>
| * | ceph_test_rados: submit a racing read with every COPY_FROMSage Weil2013-09-171-21/+55
| | | | | | | | | | | | | | | | | | | | | Verify that the racing read completes after the COPY_FROM does (i.e., is blocked by it). Signed-off-by: Sage Weil <sage@inktank.com>
| * | ceph_test_rados: use get_version64() throughoutSage Weil2013-09-171-3/+3
| | | | | | | | | | | | Signed-off-by: Sage Weil <sage@inktank.com>
| * | osd: block requests on object during COPY_FROMSage Weil2013-09-172-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Block any request on an object (read or write) during the COPY_FROM operation. This could potentially be broken down into read vs write operations without much difficulty, but blocking any op indescriminately is sufficient for now, so let's keep it simple. Signed-off-by: Sage Weil <sage@inktank.com>
| * | osd: add infrastructure to block io on an obcSage Weil2013-09-174-2/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add an is_blocked() method for the obc, and add infrastructure to block any operations if it returns true. Clean up on_change(), and add a helper to kick an obc when whatever condition leading to it being blocked is no longer true. For now, is_blocked() is always false... Signed-off-by: Sage Weil <sage@inktank.com>
| * | osd/ReplicatedPG: factor some bits into finish_copySage Weil2013-09-172-39/+49
| | | | | | | | | | | | | | | | | | | | | This is a bit cleaner and hopefully more usable for osd-driven cache promotion. Signed-off-by: Sage Weil <sage@inktank.com>
| * | ceph_test_rados: more readable outputSage Weil2013-09-172-98/+113
| | | | | | | | | | | | Signed-off-by: Sage Weil <sage@inktank.com>
| * | osd/ReplicatedPG: stage object chunks to replicas during COPY_FROMSage Weil2013-09-173-10/+73
| | | | | | | | | | | | | | | | | | | | | | | | As we get each chunk of data during the COPY_FROM operation, write it out to a temporary object on the replicas. When we get all the pieces, move it into place. Signed-off-by: Sage Weil <sage@inktank.com>
| * | osd/ReplicatedPG: allow RepGathers with no versionSage Weil2013-09-111-9/+14
| | | | | | | | | | | | | | | | | | | | | If the repop has no version set, skip the updates to last_update and last_update_{applied,ondisk} and last_complete_ondisk. Signed-off-by: Sage Weil <sage@inktank.com>
| * | osd: flag new/old temp objects in MOSDSubOpSage Weil2013-09-113-1/+27
| | | | | | | | | | | | | | | | | | | | | | | | Allow us to mark when we start and stop using a temporary object in a sub_op. If we start to use it, make sure the collection exists on the replica. Signed-off-by: Sage Weil <sage@inktank.com>
| * | osd/ReplicatedPG: drop unused issue_repop() argumentsSage Weil2013-09-112-26/+6
| | | | | | | | | | | | | | | | | | These are cruft from the old parallelexec mode and can be removed. Signed-off-by: Sage Weil <sage@inktank.com>
| * | osd/ReplicatedPG: drop dead code from parallelexec issue_repopSage Weil2013-09-111-24/+15
| | | | | | | | | | | | | | | | | | This is unused and references otherwise unused variables we can remove! Signed-off-by: Sage Weil <sage@inktank.com>
| * | osd/ReplicatedPG: generate one-off unique temp object namesSage Weil2013-09-112-4/+16
| | | | | | | | | | | | Signed-off-by: Sage Weil <sage@inktank.com>
| * | osd/osd_types: move coll_t::META_COLL definitionSage Weil2013-09-113-4/+2
| | | | | | | | | | | | Signed-off-by: Sage Weil <sage@inktank.com>
| * | os/FileStore: implement collection_move_renameSage Weil2013-09-113-10/+154
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is similar to a collection_add + collection_move sequence in that we apply the same replay guards. The difference is that we roll it up into a single operation, change the filename, and make the omap content carry over by calling DBObjectMap->clone (as there is no rename function or collection awareness in the DBObjectMap). Signed-off-by: Sage Weil <sage@inktank.com>
| * | os/ObjectStore: add collection_move_renameSage Weil2013-09-111-0/+10
| | | | | | | | | | | | | | | | | | Add method to move an object between collections *and* change its name. Signed-off-by: Sage Weil <sage@inktank.com>
| * | os/FileStore: pass old + new object name to lfn_linkSage Weil2013-09-092-8/+8
| | | | | | | | | | | | | | | | | | For now, the only caller leaves the name the same. Signed-off-by: Sage Weil <sage@inktank.com>
* | | doc: Replaced code-block with inline literal to fix auto numbering.John Wilkins2013-09-171-3/+1
| | | | | | | | | | | | Signed-off-by: John Wilkins <john.wilkins@inktank.com>
* | | doc: Made s3gw.fcgi paths consistent.John Wilkins2013-09-171-2/+2
| | | | | | | | | | | | | | | | | | fixes: #6182 Signed-off-by: John Wilkins <john.wilkins@inktank.com>