summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* common/bloom_filter: insert/contains methods for uint32_twip-bloomSage Weil2013-09-192-0/+73
| | | | | | | This will let us pass in an hobject_t::hash directly (for example) without rehashing a string. Signed-off-by: Sage Weil <sage@inktank.com>
* osd/PG: add bloom_oidSage Weil2013-09-196-11/+29
| | | | Signed-off-by: Sage Weil <sage@inktank.com>
* COPYING: make note of common/bloom_filer.hpp (boost) licenseSage Weil2013-09-192-0/+8
| | | | Signed-off-by: Sage Weil <sage@inktank.com>
* common/bloom_filter: fix whitespaceSage Weil2013-09-191-476/+470
| | | | Signed-off-by: Sage Weil <sage@inktank.com>
* wipSage Weil2013-09-191-1/+9
|
* osd: add last_archived_bloom to pg_info_tSage Weil2013-09-192-2/+12
| | | | | | | | This field will track the most recent eversion recorded in an archived bloom_filter. Any events after this point in the pg log have not yet been archived and should therefore be included in the in-memory bloom filter. Signed-off-by: Sage Weil <sage@inktank.com>
* osd: add bloom_[fpp,period] to pg_pool_tSage Weil2013-09-192-4/+19
| | | | | | | Add pool properties to control what type of bloom filter the OSD should track for each PG. Signed-off-by: Sage Weil <sage@inktank.com>
* common/bloom_filter: test behavior of sequences of bloom filtersSage Weil2013-09-191-0/+79
| | | | Signed-off-by: Sage Weil <sage@inktank.com>
* common/bloom_filter: unit testsSage Weil2013-09-193-1/+69
| | | | | | | | | | | | Fun facts: - fpp = false positive probability - fpp is a function of insert count only - at .1% fpp, we pay about 2 bytes per insert - at 1-2% fpp, we pay about 1 byte per insert - at 15% fpp, we pay about .5 bytes per insert Signed-off-by: Sage Weil <sage@inktank.com>
* common/bloom_filter: move header from include/Sage Weil2013-09-195-5/+5
| | | | Signed-off-by: Sage Weil <sage@inktank.com>
* common/bloom_filter: make bloom_filter encodableSage Weil2013-09-194-5/+104
| | | | Signed-off-by: Sage Weil <sage@inktank.com>
* common/bloom_filter: make optimal parameter calculation staticSage Weil2013-09-191-17/+29
| | | | | | | | We pass the ctor our target behavior and calculate parameters based on that. Avoid storing the target behavior, and make that calc a static method. And add a new ctor that takes the parameters explicitly. Signed-off-by: Sage Weil <sage@inktank.com>
* common/bloom_filter: make mode match formattingSage Weil2013-09-191-0/+3
| | | | | | 3 space tabs.. blech. Let's not change it now, though. Signed-off-by: Sage Weil <sage@inktank.com>
* Makefile: fix unittest_archSage Weil2013-09-191-0/+5
| | | | | | Also broken by makefile refactor. Signed-off-by: Sage Weil <sage@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>