Commit Graph

31821 Commits

Author SHA1 Message Date
Sage Weil
5c4129dfb8 Merge pull request #1295 from yuyuyu101/keyvaluestore-enhance
Keyvaluestore enhance(backport to firely)

Pulling this into firefly because it doesn't (substantiatively) touch anything outside of KeyValueStore.

Reviewed-by: Sage Weil <sage@inktank.com>
2014-02-23 07:24:43 -08:00
Sage Weil
8ef0d7e6e8 Merge pull request #1297 from ceph/wip-ec-bugs
Wip ec bugs

Reviewed-by: Sage Weil <sage@inktank.com>
2014-02-23 07:12:40 -08:00
Sage Weil
6d8cb22e58 unittest_ecbackend: fix signed/unsigned warnings
In file included from test/osd/TestECBackend.cc:20:0:
../src/gtest/include/gtest/gtest.h: In instantiation of ‘testing::AssertionResult testing::internal::CmpHelperEQ(const char*, const char*, const T1&, const T2&) [with T1 = long unsigned int; T2 = int]’:
../src/gtest/include/gtest/gtest.h:1300:30: required from ‘static testing::AssertionResult testing::internal::EqHelper::Compare(const char*, const char*, const T1&, const T2&) [with T1 = long unsigned int; T2 = int; bool lhs_is_null_literal = false]’
test/osd/TestECBackend.cc:30:281: required from here
warning: ../src/gtest/include/gtest/gtest.h:1263:3: comparison between signed and unsigned integer expressions [-Wsign-compare]

Signed-off-by: Sage Weil <sage@inktank.com>
2014-02-22 22:00:55 -08:00
Sage Weil
bff4a3bf42 Merge pull request #1301 from ceph/wip-scrub-primary
mon/PGMonitor: fix primary osd check on deep-scrub

gitbuilders are now passing
2014-02-22 21:56:53 -08:00
Sage Weil
fed655e3e9 mon/PGMonitor: fix primary osd check on deep-scrub
s/!=/==/.  Logic was reversed.

Broken in 40bdcb8850.

Signed-off-by: Sage Weil <sage@inktank.com>
2014-02-22 21:31:48 -08:00
Samuel Just
5516f8c1ff Merge pull request #1300 from ceph/wip-7513
PGLog::activate_not_complete typo

Reviewed-by: David Zafman <david.zafman@inktank.com>
2014-02-22 17:35:46 -08:00
Samuel Just
7b0f3d9092 PGLog::activate_not_complete: fix log.complete_to increment typo
info.last_complete should be the entry before log.complete_to.

This appears to have been a typo introduced in
dd71051a8f6ec611b3559f8e2aff3c001be37792.

Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-02-22 17:24:29 -08:00
Samuel Just
885d19631e Merge pull request #1298 from ceph/wip-subscribe
osd: fix off-by-one is boot subscription

Reviewed-by: Samuel Just <sam.just@inktank.com>
2014-02-22 17:18:55 -08:00
David Zafman
bfb3a2479a Merge pull request #1299 from ceph/wip-repair
osd/PG: fix assert when a shallow repair has fixed all errors.

Reviewed-by: David Zafman <david.zafman@inktank.com>
2014-02-22 14:55:08 -08:00
David Zafman
e3e3328ec8 osd/PG: fix assert when deep repair finds no errors
If there are no deep repairs, we don't want to assert.
Fixes:

    -1> 2014-02-21 21:13:56.393087 7f0258ff9700  0 log [INF] : 0.0 repair ok, 0 fixed
     0> 2014-02-21 21:13:56.428703 7f0258ff9700 -1 osd/PG.cc: In function 'void PG::scrub_finish()' thread 7f0258ff9700 time 2014-02-21 21:13:56.393127
osd/PG.cc: 4294: FAILED assert(deep_scrub)

Signed-off-by: David Zafman <david.zafman@inktank.com>
Signed-off-by: Sage Weil <sage@inktank.com>
2014-02-22 13:51:18 -08:00
Samuel Just
9da4d40ecc PGLog: test for missing using the correct shard value
Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-02-22 12:37:55 -08:00
Samuel Just
ace65fec8b OSD: fix query for ec pgs
We need to parse a pg_t and translate it into an spg_t.

Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-02-22 12:37:55 -08:00
Samuel Just
93983c9590 Objecter: make is_pg_changed static and const for old/newacting
Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-02-22 12:37:55 -08:00
Samuel Just
8b4cf1c09b OSDMap: make calc_pg_rank/role const for acting
Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-02-22 12:37:55 -08:00
Samuel Just
005b4fad14 Objecter: resend op if primary role changed
Fixes: #7508
Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-02-22 12:37:50 -08:00
Samuel Just
b7de0fdbcd ECTransaction: require hash_infos for deleted objects
Otherwise, an append preceded by a delete may not see the
correct HashInfo state since it won't have been cached
until the delete is applied.

Fixes: #7506
Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-02-22 12:35:40 -08:00
Samuel Just
ab4c9a67df ECUtil: clear() should reset hashes to -1, not 0
Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-02-22 12:35:40 -08:00
Samuel Just
8593ad76fc ReplicatedPG::cancel_pull: ECBackend might cancel_pull on a non-missing object
Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-02-22 12:35:40 -08:00
Samuel Just
9b85241324 ECBackend::filter_read_op: clean up read state properly
Fixes: #7494
Signed-off-by: Samuel Just <sam.just@inktank.com>
2014-02-22 12:35:40 -08:00
Sage Weil
70d23b9a0a osd: fix off-by-one is boot subscription
If we have osdmap N, we want to onetime subscribe
starting at N+1.  Among other things, it means we
hear when the NOUP flag is cleared.

This appears to have broken somewhere around
3c76b81f2f.

Fixes: #7511
Signed-off-by: Sage Weil <sage@inktank.com>
2014-02-22 08:08:37 -08:00
Haomai Wang
90ebdcc4a6 Rename keyvaluestore_check_backend to keyvaluestore_debug_check_backend
Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
2014-02-22 23:57:02 +08:00
Haomai Wang
a52d7cd03b Add KeyValueStore op thread options
Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
2014-02-22 21:05:01 +08:00
Haomai Wang
62c1631f1d Remove eio inject codes in KeyValueStore
Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
2014-02-22 21:05:01 +08:00
Haomai Wang
8c4d865900 Add config tracker to KeyValueStore
Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
2014-02-22 21:05:01 +08:00
Haomai Wang
697411c8e0 Add backend check option to KeyValueStore
Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
2014-02-22 21:05:01 +08:00
Haomai Wang
9543664b87 Remove filestore_inject_stall
Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
2014-02-22 21:05:01 +08:00
Haomai Wang
dcfe098cbe Remove m_eio in KeyValueStore
KeyValueStore use kv backend to detect errors and nearly can't know the actual
reason for error.

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
2014-02-22 21:05:01 +08:00
Haomai Wang
4b3bf3e225 Make SequencePosition sync by each transaction
Each object modify will increase SequencePosition and sync it to disk

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
2014-02-22 21:05:01 +08:00
Haomai Wang
ec8a419344 Implement collection_rename interface in KeyValueStore
Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
2014-02-22 21:05:00 +08:00
Haomai Wang
6314350f16 Remove unnecessary "check_coll" check
The goal of "check_coll" is aimed to ensure the collection is exists. But
the create and delete of collection already ensured by OSD, just remove check.

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
2014-02-22 21:05:00 +08:00
Haomai Wang
88bec06531 Optimize write call add enhance error detect
A single write call may need several keys in the backend kv store. Let get these
keys one time.

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
2014-02-22 21:05:00 +08:00
Haomai Wang
2a363d6737 Unify object level lock in GenericObjectMap
Before we copy lock implementation from DBObjectMap which provide with two locks
for header. Here just unify it to make ease.

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
2014-02-22 21:05:00 +08:00
Haomai Wang
a9fa341ee2 Fix incorrect read and truncate
If the first chunk of object is not read entirely, the current implementation
will contain it entirely which make wrong.

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
2014-02-22 21:05:00 +08:00
Haomai Wang
9ed295818b Return 0 when the offset of read exceed the length of object
Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
2014-02-22 21:05:00 +08:00
Haomai Wang
3e6a1fc6e8 Add read/write operation to store_test.cc
Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
2014-02-22 21:05:00 +08:00
Haomai Wang
4e7f1de943 Adjust some interfaces to optimize caller codes
Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
2014-02-22 21:04:59 +08:00
Haomai Wang
024a12042e Use rename operation to make colection_move atomic
Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
2014-02-22 21:04:59 +08:00
Haomai Wang
d7be540488 Add get_*_with_header to StripObjectHeader
In some situations, we need to ensure header is held and try to read, so read
interfaces need to accept header argument to allow.

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
2014-02-22 21:04:59 +08:00
Haomai Wang
c9fdceeef1 Add test for omap interface
Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
2014-02-22 21:04:59 +08:00
Haomai Wang
2b9e893a31 Move perf counter and add op queue reserve throttle
The perf counter of FileStore can shared with other ObjectStore backend, so move
it to ObjectStore and adjust position to let other KeyValueStore refer to.

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
2014-02-22 21:04:59 +08:00
Haomai Wang
5eb75927ed Fix deadlock caused by hold collection obj
Collection is a special object in KeyValueStore, if exists collection modify,
this object will be hold. When exists check collection, it will be dead lock to
try to access this object.

Now lookup transaction cache first to ensure no collection object exists
already.

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
2014-02-22 21:04:59 +08:00
David Zafman
a715c7f23f Merge branch 'wip-6685-firefly' into firefly
Reviewed-by: Samuel Just <sam.just@inktank.com>
2014-02-21 19:28:37 -08:00
Josh Durgin
f214c3eca4 Merge pull request #1293 from jwriteclub/doc-update-ceph-osd-note
Added a note that the ceph-osd command requires the cluster option.

Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2014-02-21 18:30:29 -08:00
Christopher O'Connell
c278269535 Added a note that the ceph-osd command requires the cluster option.
Signed-off-by: Christopher O'Connell <jwriteclub@gmail.com>
2014-02-21 18:26:58 -08:00
Josh Durgin
72820a8467 Merge remote-tracking branch 'origin/wip-da-SCA-20140218' into firefly
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2014-02-21 17:40:30 -08:00
Christopher O'Connell
d9bedb9ebe Added evaluation of cluster and fixed evaluation when setting initial weight on start in verbose mode
Signed-off-by: Christopher O'Connell <jwriteclub@gmail.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2014-02-21 17:32:47 -08:00
Josh Durgin
7ae055666c Merge pull request #1286 from ceph/wip-corpus
ceph-object-corpus: prune some old releases

Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2014-02-21 15:57:29 -08:00
David Zafman
a9677e136e Revert "ReplicatedPG::recover_backfill: adjust last_backfill to HEAD if snapdir"
This reverts commit 545135f3e1.

Conflicts:

	src/osd/ReplicatedPG.cc
2014-02-21 15:19:40 -08:00
Josh Durgin
78b65ace4d Merge remote-tracking branch 'origin/port/updates' into firefly
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2014-02-21 14:46:27 -08:00
Sage Weil
bd59db2101 ceph-object-corpus: prune some old releases
We do not need to test these old object encodings as they are covered by
later object collections.

Signed-off-by: Sage Weil <sage@inktank.com>
2014-02-21 13:57:24 -08:00