Commit Graph

54773 Commits

Author SHA1 Message Date
Sage Weil
b7168d983c os/bluestore: use _dump_blob_map helper
Unify bnode and onode dump output.

Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-15 16:21:54 -04:00
Sage Weil
85af407cb3 os/bluestore: do writes into blob buffer cache
No change to the read-side yet.

Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-15 16:21:53 -04:00
Sage Weil
44523afe92 ceph_test_objectstore: use single bl_eq helper
Use a single bl comparator helper that dumps buffers if they do not match.

Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-15 16:21:53 -04:00
Sage Weil
d445d5b8cc os/bluestore: clean up csum read error checks
Fix warning message and return error code.

Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-15 16:06:24 -04:00
Sage Weil
3ef840d88a os/bluestore: use Blob* in WriteContext::write_item
Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-15 16:06:24 -04:00
Sage Weil
de6b2584b0 os/bluestore: switch to intrusive_set for blobs
Switch from a map of bare bluestore_blob_t's to an intrusive_set of
Blob structs that includes id, bluestore_blob_t, and BufferSpace.  The
buffer cache portion isn't used yet, but it is properly initialized with
the Cache parent.

There is no real functional change here except that during clone we move
the existing Blob from the Onode's BlobMap to the Bnode's without any
copying.

Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-15 16:05:04 -04:00
Sage Weil
e65d2b8692 os/bluestore: move blob_map out of onode_t
Move the blob_map index out of the onode_t proper.  None of the (important)
onode_t methods use the blob_map, which is expected since blobs may exist
in the onode or bnode map.  Instead, move it into Onode, parallel the
Bnode counterpart.

This will allow us to create a blob map that includes the buffer cache
with an encode/decode and lifecycle independent of the onode_t.

Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-15 15:58:23 -04:00
Sage Weil
20d75c533c Merge pull request #9526 from liewegas/wip-bluestore-csum2
os/bluestore: vary csum chunk sizes based on hints

Reviewed-by: Igor Fedotov <ifedotov@mirantis.com>
2016-06-15 15:57:30 -04:00
Sage Weil
e84c0ad933 os/bluestore: add crc32c_16 and crc32c_8
This is much faster than a slice-by-8 crc16, perhaps even without the
intel instructions.

Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-15 15:25:30 -04:00
Sage Weil
c9cdc74687 os/bluestore: whitespace
Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-15 15:25:30 -04:00
Sage Weil
21971b57ad compressor/snappy: style cleanup
Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-15 15:25:30 -04:00
Sage Weil
765a9d0e75 compressor/snappy: compress to page-aligned memory buffer
Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-15 15:25:30 -04:00
Sage Weil
5b2ce732d6 os/bluestore: remove unused ext_offset region_t field
Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-15 15:25:30 -04:00
Sage Weil
9d643af753 os/bluestore: simplify spare read path, remove pextent constraint
The previous read code had the constraint that a physical extent had to
be a multiple of the csum chunk size.  This isn't needed: we might have
a csum_block of 1MB and min_alloc_size of 4KB and that's okay.

Collapse the two helpers into a single loop that uses the blob_t::map()
method to do the pextent part of the read.  This is simpler and avoids
the temporary extents2read structure.

Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-15 15:25:30 -04:00
Sage Weil
819dd4e57c os/bluestore: csum_block -> csum_chunk
Be consistent with terminology.

Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-15 15:25:30 -04:00
Sage Weil
bd8ac2157e os/bluestore: ensure blob_t::put_ref respects csum chunk size
We can't deallocate part of a csum chunk.

Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-15 15:25:29 -04:00
Sage Weil
a82c72b2c7 ceph_test_objectstore: test larger writes from Synthetic
Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-15 15:25:29 -04:00
Sage Weil
ab81564bb8 ceph_test_objectstore: randomly vary object size and write size hints
Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-15 15:25:29 -04:00
Sage Weil
95430201de os/bluestore: choose better csum_order in _do_alloc_write
Try to use the wctx hint, but set a floor based on the buffer length.

Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-15 15:25:29 -04:00
Sage Weil
0e8294c9aa os/bluestore: make preferred csum order a function of expected_write_size
Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-15 15:25:29 -04:00
Sage Weil
d9648dc0dc os/bluestore: use larger csum blocks for sequential writes
Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-15 15:25:29 -04:00
Sage Weil
cfc688d01e os/bluestore: fix _do_alloc_write compress condition
Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-15 15:25:29 -04:00
Sage Weil
0a4e8b266f os/bluestore: set csum_order via WriteContext
Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-15 15:25:29 -04:00
Sage Weil
cbb65c0edf os/bluestore: maintain min_alloc_size_order
Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-15 15:25:29 -04:00
Sage Weil
f7d9699279 ceph_test_objectstore: test alloc hints
Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-15 15:25:29 -04:00
Sage Weil
541888f091 os/bluestore: print alloc hint flags as a string
Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-15 15:25:28 -04:00
Sage Weil
4079eb421e osd/osd_types: add ceph_osd_alloc_hint_flag_string helper
Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-15 15:25:28 -04:00
Sage Weil
9ab1b90325 os/bluestore: _setallochint -> _set_alloc_hint
Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-15 15:25:28 -04:00
Sage Weil
65f379bf3b os/bluestore: do not print bnode key to debug
Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-15 15:25:28 -04:00
Sage Weil
5b76e1d948 Merge pull request #9607 from ifed01/wip-bluestore-statfs-fsck
os/bluestore: add statfs result consistency checking to fsck

Reviewed-by: Sage Weil <sage@redhat.com>
2016-06-15 15:24:47 -04:00
Sage Weil
e09acd7b54 Merge pull request #9524 from liewegas/wip-ctz
common: add cbits/ctz/clz bit op helpers, replace open-coded calc_bits_for helpers

Reviewed-by: Samuel Just <sjust@redhat.com>
2016-06-15 15:14:30 -04:00
Sage Weil
3e3f48b908 os/bluestore/StupidAllocator: use cbits instead of calculating shift manually
Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-15 15:13:55 -04:00
Sage Weil
e411302229 osd/osd_types: pg_pool_t::calc_bits_of -> cbits
Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-15 15:13:55 -04:00
Sage Weil
bd2f897f90 Merge pull request #9696 from ifed01/wip-bluestore-csum-fixes
os/bluestore: fix for unaligned writes and improve test coverage

Reviewed-by: Sage Weil <sage@redhat.com>
2016-06-15 15:12:14 -04:00
Sage Weil
3c8c9b886c Merge pull request #9604 from ifed01/wip-bluestore-maxalloc
os/bluestore: add an option to limit max allocation size

Reviewed-by: Sage Weil <sage@redhat.com>
2016-06-15 15:05:51 -04:00
Sage Weil
fb1c16f594 Merge pull request #9378 from xiexingguo/xxg-wip-fix-piderrorcode
global: negative error return code for pidfh::write()

Reviewed-by: Kefu Chai <kchai@redhat.com>
2016-06-15 15:04:42 -04:00
Sage Weil
2fd1390f48 Merge pull request #9397 from xiexingguo/xxg-wip-fixsocketfd-leak
common/admin_socket: fix socket fd leak

Reviewed-by: Kefu Chai <kchai@redhat.com>
2016-06-15 15:04:26 -04:00
Matt Benjamin
0328fd8b70 Merge pull request #8679 from prallabh/master
rgw: Have a flavor of bucket deletion to bypass GC.

it gets the OSDs substantially hotter (CPU), but is a large speedup (I measured 54% on a small setup, some distortion from debugging)
2016-06-15 11:09:35 -04:00
Igor Fedotov
5a7a5e4404 os/bluestore: fix exceeding blob number after random 4K writes
Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
2016-06-15 17:07:14 +03:00
Igor Fedotov
a3f4689c32 test/store_test: add an additional bluestore test case to verify for exceeding blob number
Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
2016-06-15 17:05:41 +03:00
Kefu Chai
5dd043099e Merge pull request #9666 from ceph/wip-ceph_test_objectstore
test: ceph_test_objectstore: do not override plugin-dir if not necessary

Reviewed-by: Igor Fedotov <ifedotov@mirantis.com>
2016-06-15 21:39:08 +08:00
Kefu Chai
ed19466b9f vstart.sh: set plugin-dir for cmake 2016-06-15 21:23:40 +08:00
Kefu Chai
9c4d1beca1 test: ceph_test_objectstore: do not override plugin-dir if not necessary
there is chance that we launch the test with the plugins installed in
`/usr/${lib}/ceph'. and we don't have ".lib" or $CEPH_LIB for
ceph_test_objectstore, in this case, we should leave plugin-dir
unchanged. it will work just fine if ceph-base or ceph-common is
installed.

Fixes: http://tracker.ceph.com/issues/16254
Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-06-15 21:23:40 +08:00
Jason Dillaman
7833e5c468 Merge pull request #9709 from trociny/wip-16289
qa/workunits/rbd: respect RBD_CREATE_ARGS environment variable

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
2016-06-15 08:54:10 -04:00
Igor Fedotov
99b5b83e73 os/bluestore: fixes assert on unaligned writes when csum verification is disabled
Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
2016-06-15 14:57:10 +03:00
Loic Dachary
02d27da0c9 Merge pull request #9442 from houlinfei/wip-modify-parlistseq
ceph-disk: modify the disk partition sequence of ceph-disk list

Reviewed-by: Loic Dachary <ldachary@redhat.com>
2016-06-15 13:56:26 +02:00
Igor Fedotov
cc5ac8c4cc objectstore/store_test: improves test coverage for Bluestore - adds no csum and many 4K writes cases. Fix corresponding issues in testing framework.
Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
2016-06-15 14:56:03 +03:00
Orit Wasserman
f93bbc94f8 Merge pull request #9354 from dreamhost/wip-15975
rgw: Fallback to Host header for bucket name.
Reviewed-by: Orit Wasserman <owasserm@redhat.com>
2016-06-15 11:42:09 +02:00
John Spray
c18217b5d0 Merge pull request #9681 from xiexingguo/xxg-wip-server_ts
server: set terminating_sessions flag correctly

Reviewed-by: John Spray <john.spray@redhat.com>
2016-06-15 09:45:43 +01:00
John Spray
5138ad16ff Merge pull request #9693 from xiexingguo/xxg-wip-server_hco2
server: negative error code when responding to client

Reviewed-by: John Spray <john.spray@redhat.com>
2016-06-15 09:38:17 +01:00