From afcb617dc9791aa6551a1856c89b3e8e2648eabc Mon Sep 17 00:00:00 2001 From: xie xingguo Date: Tue, 5 Sep 2017 20:56:32 +0800 Subject: [PATCH] osd/PrimaryLogPG: do not generate data digest for BlueStore by default BlueStore enables CRC by default, so this is a dup and gains no more benefits. Turn this off by default, which is good for performance. Signed-off-by: xie xingguo --- qa/standalone/scrub/osd-scrub-repair.sh | 27 +++++++++++---------- qa/suites/rados/basic/tasks/scrub_test.yaml | 1 + src/common/options.cc | 4 +++ src/os/ObjectStore.h | 3 +++ src/os/bluestore/BlueStore.h | 5 +++- src/os/filestore/FileStore.h | 4 +++ src/osd/ECBackend.cc | 12 ++++++--- src/osd/PrimaryLogPG.cc | 20 +++++++++++---- src/osd/ReplicatedBackend.cc | 15 +++++++++--- 9 files changed, 65 insertions(+), 26 deletions(-) diff --git a/qa/standalone/scrub/osd-scrub-repair.sh b/qa/standalone/scrub/osd-scrub-repair.sh index 3b94dc4769e..3e1287c962d 100755 --- a/qa/standalone/scrub/osd-scrub-repair.sh +++ b/qa/standalone/scrub/osd-scrub-repair.sh @@ -49,6 +49,7 @@ function run() { export CEPH_ARGS CEPH_ARGS+="--fsid=$(uuidgen) --auth-supported=none " CEPH_ARGS+="--mon-host=$CEPH_MON " + CEPH_ARGS+="--osd-skip-data-digest=false " local funcs=${@:-$(set | sed -n -e 's/^\(TEST_[0-9a-z_]*\) .*/\1/p')} for func in $funcs ; do @@ -1858,7 +1859,7 @@ function corrupt_scrub_erasure() { "primary": false } ], - "selected_object_info": "3:9175b684:::EOBJ1:head(21'1 client.4179.0:1 dirty|data_digest|omap_digest s 7 uv 1 dd 2ddbf8f5 od ffffffff alloc_hint [0 0 0])", + "selected_object_info": "3:9175b684:::EOBJ1:head(21'1 client.4179.0:1 dirty|data_digest s 7 uv 1 dd 2ddbf8f5 alloc_hint [0 0 0])", "union_shard_errors": [ "size_mismatch_oi", "obj_size_oi_mismatch" @@ -1899,7 +1900,7 @@ function corrupt_scrub_erasure() { "primary": false } ], - "selected_object_info": "3:b197b25d:::EOBJ3:head(37'3 client.4251.0:1 dirty|data_digest|omap_digest s 7 uv 3 dd 2ddbf8f5 od ffffffff alloc_hint [0 0 0])", + "selected_object_info": "3:b197b25d:::EOBJ3:head(37'3 client.4251.0:1 dirty|data_digest s 7 uv 3 dd 2ddbf8f5 alloc_hint [0 0 0])", "union_shard_errors": [ "missing" ], @@ -2017,7 +2018,7 @@ function corrupt_scrub_erasure() { ] } ], - "selected_object_info": "3:5e723e06:::EOBJ4:head(45'6 client.4289.0:1 dirty|data_digest|omap_digest s 7 uv 6 dd 2ddbf8f5 od ffffffff alloc_hint [0 0 0])", + "selected_object_info": "3:5e723e06:::EOBJ4:head(45'6 client.4289.0:1 dirty|data_digest s 7 uv 6 dd 2ddbf8f5 alloc_hint [0 0 0])", "union_shard_errors": [], "errors": [ "attr_value_mismatch", @@ -2058,7 +2059,7 @@ function corrupt_scrub_erasure() { "primary": false } ], - "selected_object_info": "3:8549dfb5:::EOBJ5:head(65'7 client.4441.0:1 dirty|data_digest|omap_digest s 7 uv 7 dd 2ddbf8f5 od ffffffff alloc_hint [0 0 0])", + "selected_object_info": "3:8549dfb5:::EOBJ5:head(65'7 client.4441.0:1 dirty|data_digest s 7 uv 7 dd 2ddbf8f5 alloc_hint [0 0 0])", "union_shard_errors": [ "size_mismatch_oi", "obj_size_oi_mismatch" @@ -2140,7 +2141,7 @@ EOF "primary": false } ], - "selected_object_info": "3:9175b684:::EOBJ1:head(27'1 client.4155.0:1 dirty|data_digest|omap_digest s 7 uv 1 dd 2ddbf8f5 od ffffffff alloc_hint [0 0 0])", + "selected_object_info": "3:9175b684:::EOBJ1:head(27'1 client.4155.0:1 dirty|data_digest s 7 uv 1 dd 2ddbf8f5 alloc_hint [0 0 0])", "union_shard_errors": [ "read_error", "size_mismatch_oi", @@ -2186,7 +2187,7 @@ EOF "primary": false } ], - "selected_object_info": "3:b197b25d:::EOBJ3:head(41'3 client.4199.0:1 dirty|data_digest|omap_digest s 7 uv 3 dd 2ddbf8f5 od ffffffff alloc_hint [0 0 0])", + "selected_object_info": "3:b197b25d:::EOBJ3:head(41'3 client.4199.0:1 dirty|data_digest s 7 uv 3 dd 2ddbf8f5 alloc_hint [0 0 0])", "union_shard_errors": [ "missing" ], @@ -2310,7 +2311,7 @@ EOF "primary": false } ], - "selected_object_info": "3:5e723e06:::EOBJ4:head(48'6 client.4223.0:1 dirty|data_digest|omap_digest s 7 uv 6 dd 2ddbf8f5 od ffffffff alloc_hint [0 0 0])", + "selected_object_info": "3:5e723e06:::EOBJ4:head(48'6 client.4223.0:1 dirty|data_digest s 7 uv 6 dd 2ddbf8f5 alloc_hint [0 0 0])", "union_shard_errors": [], "errors": [ "attr_value_mismatch", @@ -2357,7 +2358,7 @@ EOF "primary": false } ], - "selected_object_info": "3:8549dfb5:::EOBJ5:head(65'7 client.4288.0:1 dirty|data_digest|omap_digest s 7 uv 7 dd 2ddbf8f5 od ffffffff alloc_hint [0 0 0])", + "selected_object_info": "3:8549dfb5:::EOBJ5:head(65'7 client.4288.0:1 dirty|data_digest s 7 uv 7 dd 2ddbf8f5 alloc_hint [0 0 0])", "union_shard_errors": [ "size_mismatch_oi", "obj_size_oi_mismatch" @@ -2415,7 +2416,7 @@ EOF "primary": false } ], - "selected_object_info": "3:9175b684:::EOBJ1:head(21'1 client.4179.0:1 dirty|data_digest|omap_digest s 7 uv 1 dd 2ddbf8f5 od ffffffff alloc_hint [0 0 0])", + "selected_object_info": "3:9175b684:::EOBJ1:head(21'1 client.4179.0:1 dirty|data_digest s 7 uv 1 dd 2ddbf8f5 alloc_hint [0 0 0])", "union_shard_errors": [ "read_error", "size_mismatch_oi", @@ -2462,7 +2463,7 @@ EOF "primary": false } ], - "selected_object_info": "3:9babd184:::EOBJ2:head(29'2 client.4217.0:1 dirty|data_digest|omap_digest s 7 uv 2 dd 2ddbf8f5 od ffffffff alloc_hint [0 0 0])", + "selected_object_info": "3:9babd184:::EOBJ2:head(29'2 client.4217.0:1 dirty|data_digest s 7 uv 2 dd 2ddbf8f5 alloc_hint [0 0 0])", "union_shard_errors": [ "ec_hash_error" ], @@ -2504,7 +2505,7 @@ EOF "primary": false } ], - "selected_object_info": "3:b197b25d:::EOBJ3:head(37'3 client.4251.0:1 dirty|data_digest|omap_digest s 7 uv 3 dd 2ddbf8f5 od ffffffff alloc_hint [0 0 0])", + "selected_object_info": "3:b197b25d:::EOBJ3:head(37'3 client.4251.0:1 dirty|data_digest s 7 uv 3 dd 2ddbf8f5 alloc_hint [0 0 0])", "union_shard_errors": [ "missing" ], @@ -2628,7 +2629,7 @@ EOF ] } ], - "selected_object_info": "3:5e723e06:::EOBJ4:head(45'6 client.4289.0:1 dirty|data_digest|omap_digest s 7 uv 6 dd 2ddbf8f5 od ffffffff alloc_hint [0 0 0])", + "selected_object_info": "3:5e723e06:::EOBJ4:head(45'6 client.4289.0:1 dirty|data_digest s 7 uv 6 dd 2ddbf8f5 alloc_hint [0 0 0])", "union_shard_errors": [], "errors": [ "attr_value_mismatch", @@ -2674,7 +2675,7 @@ EOF "primary": false } ], - "selected_object_info": "3:8549dfb5:::EOBJ5:head(65'7 client.4441.0:1 dirty|data_digest|omap_digest s 7 uv 7 dd 2ddbf8f5 od ffffffff alloc_hint [0 0 0])", + "selected_object_info": "3:8549dfb5:::EOBJ5:head(65'7 client.4441.0:1 dirty|data_digest s 7 uv 7 dd 2ddbf8f5 alloc_hint [0 0 0])", "union_shard_errors": [ "size_mismatch_oi", "ec_size_error", diff --git a/qa/suites/rados/basic/tasks/scrub_test.yaml b/qa/suites/rados/basic/tasks/scrub_test.yaml index d87f5bfdd35..268fd01ea43 100644 --- a/qa/suites/rados/basic/tasks/scrub_test.yaml +++ b/qa/suites/rados/basic/tasks/scrub_test.yaml @@ -24,5 +24,6 @@ overrides: conf: osd: osd deep scrub update digest min age: 0 + osd skip data digest: false tasks: - scrub_test: diff --git a/src/common/options.cc b/src/common/options.cc index d8f2744e8b6..6a126227e88 100644 --- a/src/common/options.cc +++ b/src/common/options.cc @@ -1911,6 +1911,10 @@ std::vector