]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
9 years agoos/bluestore: _dump_onode crcs in hex
Sage Weil [Thu, 19 May 2016 20:29:19 +0000 (16:29 -0400)]
os/bluestore: _dump_onode crcs in hex

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: remove obsolete tail cache
Sage Weil [Thu, 19 May 2016 16:54:39 +0000 (12:54 -0400)]
os/bluestore: remove obsolete tail cache

The buffer cache will cover this in a much more general way.

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: Fixes improper length calculation in BufferSpace::read + adds simplifie...
Igor Fedotov [Thu, 19 May 2016 14:08:41 +0000 (17:08 +0300)]
os/bluestore: Fixes improper length calculation in BufferSpace::read + adds simplified test case to highlight an issue for append to existing blob

Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
9 years agoos/bluestore: drop min_alloc_size locals
Sage Weil [Thu, 19 May 2016 16:12:17 +0000 (12:12 -0400)]
os/bluestore: drop min_alloc_size locals

We have this in the class, now.

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: fix min_alloc_size global
Sage Weil [Fri, 20 May 2016 13:09:35 +0000 (09:09 -0400)]
os/bluestore: fix min_alloc_size global

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: release partial extents
Sage Weil [Thu, 19 May 2016 16:00:08 +0000 (12:00 -0400)]
os/bluestore: release partial extents

Use the blob put_ref helper so that we can deallocate blobs partially
(instead of always waiting until they are completely unused).

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: only write into a blob region that is allocated
Sage Weil [Thu, 19 May 2016 15:58:54 +0000 (11:58 -0400)]
os/bluestore: only write into a blob region that is allocated

We're only worried about direct writes and wal overwrites; the other write
paths are to freshly allocated blobs.

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore/bluestore_types: blob_t: add tracking for released extents
Sage Weil [Thu, 19 May 2016 15:57:43 +0000 (11:57 -0400)]
os/bluestore/bluestore_types: blob_t: add tracking for released extents

We reference count which parts of the blob are used (by lextents), but
currently we only release our space back to the system when all references
go away.  That is a problem if the blob is large (say, 4MB), and we, say,
truncate off most (but not all) of it.

Unfortunately, we can't simply deallocate anything that doesn't have a
reference, because the logical refs are on byte boundaries, and allocation
happens in larger units (min_alloc_size).  A one byte logical punch_hole
might be responsible for the release of a larger block of storage.

To resolve this, we keep track of which portions of the blob have been
released by poisoning the offset in the extents vector.  We expect that
this vector will be almost always short, so we do not bother with a
indexed structure, since iterating a blob offset to determine if it is
still allocated is likely faster.

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore/bluestore_types: add poison offset to pextent_t
Sage Weil [Thu, 19 May 2016 15:13:36 +0000 (11:13 -0400)]
os/bluestore/bluestore_types: add poison offset to pextent_t

This is a "magic" offset that we can use to indicate an invalid extent
(vs, say, an extent at offset 0 that might clobber real data if it were
used).

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: remove dead _txc_release
Sage Weil [Thu, 19 May 2016 12:52:23 +0000 (08:52 -0400)]
os/bluestore: remove dead _txc_release

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: only direct write into unused blob space
Sage Weil [Thu, 19 May 2016 12:47:44 +0000 (08:47 -0400)]
os/bluestore: only direct write into unused blob space

We can only do a direct write into an already-allocated blob once, if that
range hasn't yet been used.  Once it has been used, it is much to complex
to keep track of when all references to it have committed to disk before
reusing it, so we don't try to handle that case at all.

Since the range has never been used, we can assert that there are no
references to it.

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: mark used range on partial blob writes
Sage Weil [Thu, 19 May 2016 12:45:00 +0000 (08:45 -0400)]
os/bluestore: mark used range on partial blob writes

- writing into unreferenced blob space
- wal blob writes

both need to update the blob used map.  The full blob writes generates
blobs that are always full, so no change is needed there.  New partial
blob creations need to indicate which parts aren't yet used.

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore/bluestore_types: add blob_t unused
Sage Weil [Thu, 19 May 2016 12:43:49 +0000 (08:43 -0400)]
os/bluestore/bluestore_types: add blob_t unused

Keep track of which ranges of this blob have *never* been used.  We do
this as a negative so that the common case of a fully-written blob is an
empty set.

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agounittest_bluestore_types: benchmark different csum methods
Sage Weil [Thu, 19 May 2016 11:55:03 +0000 (07:55 -0400)]
unittest_bluestore_types: benchmark different csum methods

crc32c wins on my laptop.

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agounittest_bluestore_types: run csum tests on all algorithms
Sage Weil [Thu, 19 May 2016 11:40:33 +0000 (07:40 -0400)]
unittest_bluestore_types: run csum tests on all algorithms

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore/bluestore_types: blob_t: add xxhash64
Sage Weil [Thu, 19 May 2016 11:40:13 +0000 (07:40 -0400)]
os/bluestore/bluestore_types: blob_t: add xxhash64

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agocommon/Checksummer: add xxhash64
Sage Weil [Thu, 19 May 2016 11:19:36 +0000 (07:19 -0400)]
common/Checksummer: add xxhash64

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: drop old Checksummer
Sage Weil [Thu, 19 May 2016 10:55:43 +0000 (06:55 -0400)]
os/bluestore: drop old Checksummer

blob_t uses it directly via the static methods.

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: use blob_t csum methods
Sage Weil [Thu, 19 May 2016 10:53:29 +0000 (06:53 -0400)]
os/bluestore: use blob_t csum methods

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore/bluestore_types: simpler {calc,verify}_csum methods
Sage Weil [Thu, 19 May 2016 10:51:09 +0000 (06:51 -0400)]
os/bluestore/bluestore_types: simpler {calc,verify}_csum methods

This keeps the CSUM_* definitions local to blob_t, and avoids passing
arguments around.

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: defer csum calcuations sometimes
Sage Weil [Thu, 19 May 2016 10:25:23 +0000 (06:25 -0400)]
os/bluestore: defer csum calcuations sometimes

When we are doing a partial chunk overwrite, we need to defer the csum_data
update.  Otherwise, another write in the same transaction might need to
read part of the chunk, not find the data in the buffer cache, read it
from disk, and fail the csum check.

This patch defers the calculation until after we've build the transaction
and are about to commit to the kv store.

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agodoc/dev/bluestore: update based on Igor's feedback
Sage Weil [Thu, 19 May 2016 10:25:43 +0000 (06:25 -0400)]
doc/dev/bluestore: update based on Igor's feedback

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: Fixes some issues when using Buffer Cache from _do_read and improves...
Igor Fedotov [Tue, 17 May 2016 15:22:15 +0000 (18:22 +0300)]
os/bluestore: Fixes some issues when using Buffer Cache from _do_read and improves test coverage

Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
9 years agoos/bluestore: Fixes invalid assert in Buffer::truncate
Igor Fedotov [Tue, 17 May 2016 14:58:11 +0000 (17:58 +0300)]
os/bluestore: Fixes invalid assert in  Buffer::truncate

Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
9 years agotest/objectstore: Adds trivial test case to verify buffer cache use in bluestore
Igor Fedotov [Mon, 16 May 2016 17:55:55 +0000 (20:55 +0300)]
test/objectstore: Adds trivial test case to verify buffer cache use in bluestore

Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
9 years agoAdds cached buffer processing for _do_read
Igor Fedotov [Mon, 16 May 2016 16:53:37 +0000 (19:53 +0300)]
Adds cached buffer processing for _do_read

Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
9 years agoos/bluestore: add a very simple (incomplete) buffer cache
Sage Weil [Thu, 19 May 2016 10:23:39 +0000 (06:23 -0400)]
os/bluestore: add a very simple (incomplete) buffer cache

Attach it to each onode.

There is no trimming yet.

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: make tail cache a bit smarter
Sage Weil [Mon, 16 May 2016 00:30:44 +0000 (20:30 -0400)]
os/bluestore: make tail cache a bit smarter

This is really a stop-gap.  Since we are doing reads in the pre-commit
write path, we need to have some sort of buffer cache so that a sequence
of writes in the same transaction can remain coherent (the second write
must "read" the first write in order to fill out the chunk).

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: dump tail_bl state in _dump_onode
Sage Weil [Mon, 16 May 2016 00:25:54 +0000 (20:25 -0400)]
os/bluestore: dump tail_bl state in _dump_onode

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: Adds lacking methods in bluestore_compression_header_t to fix encoder...
Igor Fedotov [Mon, 16 May 2016 11:27:24 +0000 (14:27 +0300)]
os/bluestore: Adds lacking methods in bluestore_compression_header_t to fix encoder test build

Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
9 years agoos/bluestore: add decompressor call to read path
Igor Fedotov [Fri, 13 May 2016 15:18:12 +0000 (18:18 +0300)]
os/bluestore: add decompressor call to read path

Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
9 years agoos/bluestore/bluestore_types: add bluestore_compression_header_t
Igor Fedotov [Sat, 14 May 2016 12:53:59 +0000 (08:53 -0400)]
os/bluestore/bluestore_types: add bluestore_compression_header_t

Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
9 years agocompressor: Refactor to allow bufferlist::iterator as an input
Igor Fedotov [Fri, 13 May 2016 15:16:47 +0000 (18:16 +0300)]
compressor: Refactor to allow bufferlist::iterator as an input

Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
9 years agoos/bluestore: new write path
Sage Weil [Sat, 14 May 2016 12:48:47 +0000 (08:48 -0400)]
os/bluestore: new write path

- simplified wal_op_t.  we still have overlays in there, although that
  might need to get removed soon too.
- init_csum cleanup
- totally new write path

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: verify blob ref_maps during fsck
Sage Weil [Sat, 14 May 2016 12:37:16 +0000 (08:37 -0400)]
os/bluestore: verify blob ref_maps during fsck

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: return EIO on csum verification error
Sage Weil [Sat, 14 May 2016 12:40:54 +0000 (08:40 -0400)]
os/bluestore: return EIO on csum verification error

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: simplify _verify_csum
Sage Weil [Sat, 14 May 2016 12:39:45 +0000 (08:39 -0400)]
os/bluestore: simplify _verify_csum

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: cleanup _read_extent_sparse
Sage Weil [Sat, 14 May 2016 12:39:34 +0000 (08:39 -0400)]
os/bluestore: cleanup _read_extent_sparse

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluetores: fix checksum verification
Igor Fedotov [Sat, 14 May 2016 12:45:47 +0000 (08:45 -0400)]
os/bluetores: fix checksum verification

Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
9 years agoos/bluestore: read patch code cleanup
Igor Fedotov [Thu, 12 May 2016 13:26:10 +0000 (16:26 +0300)]
os/bluestore: read patch code cleanup

Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
9 years agoos/bluestore: replace _do_read with ExtentManager version
Igor Fedotov [Thu, 12 May 2016 21:48:59 +0000 (17:48 -0400)]
os/bluestore: replace _do_read with ExtentManager version

Replaces _do_read with he corresponding code from ExtentManager to support csum verification & decompression.

Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
9 years agodoc/dev/bluestore: write path notes
Sage Weil [Sat, 14 May 2016 12:23:15 +0000 (08:23 -0400)]
doc/dev/bluestore: write path notes

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoceph_test_objectstore: new test SmallBlockWrites
Sage Weil [Fri, 13 May 2016 21:20:44 +0000 (17:20 -0400)]
ceph_test_objectstore: new test SmallBlockWrites

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoceph_test_objectstore: add BigWriteBigZero test
Sage Weil [Fri, 13 May 2016 21:41:17 +0000 (17:41 -0400)]
ceph_test_objectstore: add BigWriteBigZero test

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoceph_test_objectstore: expand SimpleObjectTest a bit
Sage Weil [Fri, 13 May 2016 16:51:28 +0000 (12:51 -0400)]
ceph_test_objectstore: expand SimpleObjectTest a bit

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: define min_alloc_size globally
Sage Weil [Thu, 12 May 2016 17:31:09 +0000 (13:31 -0400)]
os/bluestore: define min_alloc_size globally

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: define block_size, block_mask, block_order globally
Sage Weil [Thu, 12 May 2016 17:30:25 +0000 (13:30 -0400)]
os/bluestore: define block_size, block_mask, block_order globally

These don't change, no need to declare them all over the place.

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: change block_size -> chunk_size for _pad_zero* methods
Sage Weil [Thu, 12 May 2016 17:28:09 +0000 (13:28 -0400)]
os/bluestore: change block_size -> chunk_size for _pad_zero* methods

The granularity is not the same as block_size.. depends on what the caller
wants.  Use a more generic name.

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: use _txc_finalize_kv for wal allocation updates
Sage Weil [Wed, 11 May 2016 19:45:45 +0000 (15:45 -0400)]
os/bluestore: use _txc_finalize_kv for wal allocation updates

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: pass txc to _do_wal_op
Sage Weil [Wed, 11 May 2016 19:30:14 +0000 (15:30 -0400)]
os/bluestore: pass txc to _do_wal_op

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: rename _txc_update_fm -> _txc_finalize_kv
Sage Weil [Wed, 11 May 2016 19:11:13 +0000 (15:11 -0400)]
os/bluestore: rename _txc_update_fm -> _txc_finalize_kv

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore/BlueStore: break _txc_finalize into _txc_write_nodes
Sage Weil [Wed, 11 May 2016 19:06:21 +0000 (15:06 -0400)]
os/bluestore/BlueStore: break _txc_finalize into _txc_write_nodes

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: dump csums in _dump_onode/bnode
Sage Weil [Sat, 14 May 2016 12:32:22 +0000 (08:32 -0400)]
os/bluestore: dump csums in _dump_onode/bnode

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: _dump_bnode
Sage Weil [Wed, 11 May 2016 20:21:48 +0000 (16:21 -0400)]
os/bluestore: _dump_bnode

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore/bluestore_types: nicer operator<< for blob_t
Sage Weil [Sat, 14 May 2016 12:31:24 +0000 (08:31 -0400)]
os/bluestore/bluestore_types: nicer operator<< for blob_t

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore/bluestore_types: add onode_t::compress_extent_map()
Sage Weil [Fri, 13 May 2016 21:07:10 +0000 (17:07 -0400)]
os/bluestore/bluestore_types: add onode_t::compress_extent_map()

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore/bluestore_types: blob_t convenience methods
Sage Weil [Sat, 14 May 2016 12:29:42 +0000 (08:29 -0400)]
os/bluestore/bluestore_types: blob_t convenience methods

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore/bluestore_types: FLAG_IMMUTABLE -> FLAG_MUTABLE
Sage Weil [Wed, 11 May 2016 20:23:50 +0000 (16:23 -0400)]
os/bluestore/bluestore_types: FLAG_IMMUTABLE -> FLAG_MUTABLE

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore/bluestore_types: blob_t::is_unreferenced() method
Sage Weil [Wed, 11 May 2016 20:24:36 +0000 (16:24 -0400)]
os/bluestore/bluestore_types: blob_t::is_unreferenced() method

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore/bluestore_types: add blob_t::has_any_lextents
Sage Weil [Tue, 10 May 2016 18:49:15 +0000 (14:49 -0400)]
os/bluestore/bluestore_types: add blob_t::has_any_lextents

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore/bluestore_types: test {find,seek}_lextents
Sage Weil [Tue, 10 May 2016 18:48:40 +0000 (14:48 -0400)]
os/bluestore/bluestore_types: test {find,seek}_lextents

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore/bluestore_types: blob_t csum additions
Sage Weil [Tue, 10 May 2016 17:26:30 +0000 (13:26 -0400)]
os/bluestore/bluestore_types: blob_t csum additions

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: blob_t::init_csum() helper
Sage Weil [Tue, 10 May 2016 00:34:53 +0000 (20:34 -0400)]
os/bluestore: blob_t::init_csum() helper

Set up the checksum parameters and size csum_data appropriately.

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: track csum config options
Sage Weil [Wed, 11 May 2016 20:26:15 +0000 (16:26 -0400)]
os/bluestore: track csum config options

Use global csum_type member to drive new checksum calcuations.

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: instantiate a Checksummer
Sage Weil [Tue, 10 May 2016 00:34:26 +0000 (20:34 -0400)]
os/bluestore: instantiate a Checksummer

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: prototype Checksummer
Sage Weil [Tue, 10 May 2016 00:34:13 +0000 (20:34 -0400)]
os/bluestore: prototype Checksummer

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agobuffer: add buffer::list::iterator::get_ptr_and_advance
Sage Weil [Fri, 6 May 2016 21:36:01 +0000 (17:36 -0400)]
buffer: add buffer::list::iterator::get_ptr_and_advance

Efficiently iterate over buffers in a list, via an iterator.

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore/bluestore_types: extent_ref_map_t::intersects
Sage Weil [Mon, 9 May 2016 21:26:25 +0000 (17:26 -0400)]
os/bluestore/bluestore_types: extent_ref_map_t::intersects

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore/bluestore_types: change extent_ref_map_t
Sage Weil [Mon, 9 May 2016 21:21:30 +0000 (17:21 -0400)]
os/bluestore/bluestore_types: change extent_ref_map_t

- no more add, or weird add vs get assumptions

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore/bluestore_types: drop num_refs from blob_t
Sage Weil [Wed, 11 May 2016 20:23:23 +0000 (16:23 -0400)]
os/bluestore/bluestore_types: drop num_refs from blob_t

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore/bluestore_types: onode_t::punch_hole()
Sage Weil [Mon, 9 May 2016 19:27:00 +0000 (15:27 -0400)]
os/bluestore/bluestore_types: onode_t::punch_hole()

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: disable clone cow until it works again
Sage Weil [Mon, 9 May 2016 16:59:19 +0000 (12:59 -0400)]
os/bluestore: disable clone cow until it works again

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: fix bad iterator deref in _do_zero_tail_extent
Sage Weil [Mon, 9 May 2016 14:36:14 +0000 (10:36 -0400)]
os/bluestore: fix bad iterator deref in _do_zero_tail_extent

The extent_map may be empty, or not contain anything at this offset.

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: rename enode -> bnode
Sage Weil [Fri, 6 May 2016 18:41:54 +0000 (14:41 -0400)]
os/bluestore: rename enode -> bnode

We're not refcounting extents anymore; we're storing shared blobs.

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: use hex almost everywhere
Sage Weil [Fri, 6 May 2016 18:36:33 +0000 (14:36 -0400)]
os/bluestore: use hex almost everywhere

It's like going metric, but even better!

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: remove block_map from onode
Sage Weil [Fri, 6 May 2016 18:36:04 +0000 (14:36 -0400)]
os/bluestore: remove block_map from onode

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: convert io path to extent_map
Sage Weil [Fri, 6 May 2016 18:35:49 +0000 (14:35 -0400)]
os/bluestore: convert io path to extent_map

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: add get_blob_ptr helpers
Sage Weil [Fri, 6 May 2016 18:30:45 +0000 (14:30 -0400)]
os/bluestore: add get_blob_ptr helpers

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore/KernelDevice: print extents in hex
Sage Weil [Thu, 5 May 2016 17:04:06 +0000 (13:04 -0400)]
os/bluestore/KernelDevice: print extents in hex

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoceph_test_objectstore: show start and end offsets for buffer mismatch
Sage Weil [Fri, 6 May 2016 18:01:06 +0000 (14:01 -0400)]
ceph_test_objectstore: show start and end offsets for buffer mismatch

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: add blob_map to enode
Sage Weil [Tue, 3 May 2016 20:22:56 +0000 (16:22 -0400)]
os/bluestore: add blob_map to enode

We'll remove the old ref_map once the users go away.

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: pass c to _do_read
Sage Weil [Tue, 3 May 2016 19:43:33 +0000 (15:43 -0400)]
os/bluestore: pass c to _do_read

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: add blob_map to onode_t
Sage Weil [Tue, 3 May 2016 19:07:50 +0000 (15:07 -0400)]
os/bluestore: add blob_map to onode_t

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: use pextent_t for releases
Sage Weil [Tue, 3 May 2016 20:22:24 +0000 (16:22 -0400)]
os/bluestore: use pextent_t for releases

Trying to remove the old extent_t

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: use pextent for wal_op
Sage Weil [Tue, 3 May 2016 18:25:07 +0000 (14:25 -0400)]
os/bluestore: use pextent for wal_op

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: print extents in hex
Sage Weil [Wed, 4 May 2016 18:36:49 +0000 (14:36 -0400)]
os/bluestore: print extents in hex

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: fix blob operator<<
Sage Weil [Fri, 6 May 2016 18:27:41 +0000 (14:27 -0400)]
os/bluestore: fix blob operator<<

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: keep an extent_ref_map for each blob
Sage Weil [Tue, 3 May 2016 20:21:48 +0000 (16:21 -0400)]
os/bluestore: keep an extent_ref_map for each blob

This lets us track which portions of a blob are still in use.  In some
cases, we may be able to split the blob to deallocate a portion of it.
In other cases, we will want this information to know whether to
recompress the blob (or whatever).

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: add map and map_bl methods to blob
Sage Weil [Fri, 6 May 2016 18:25:30 +0000 (14:25 -0400)]
os/bluestore: add map and map_bl methods to blob

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoos/bluestore: data structure to support compression/checksum verification. Read handl...
Igor Fedotov [Tue, 3 May 2016 14:24:36 +0000 (10:24 -0400)]
os/bluestore: data structure to support compression/checksum verification. Read handler prototype implementation.

Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoMerge pull request #9183 from yehudasa/wip-rgw-sync-retry 9410/head
Casey Bodley [Wed, 1 Jun 2016 14:52:24 +0000 (10:52 -0400)]
Merge pull request #9183 from yehudasa/wip-rgw-sync-retry

rgw: sync retry

Reviewed-by: Casey Bodley <cbodley@redhat.com>
9 years agoMerge pull request #9073 from ukernel/wip-posixacl-fix
John Spray [Wed, 1 Jun 2016 14:37:19 +0000 (15:37 +0100)]
Merge pull request #9073 from ukernel/wip-posixacl-fix

client: fix setting empty default ACL

Reviewed-by: John Spray <john.spray@redhat.com>
9 years agoMerge pull request #9422 from liewegas/wip-bluefs
Sage Weil [Wed, 1 Jun 2016 14:28:59 +0000 (10:28 -0400)]
Merge pull request #9422 from liewegas/wip-bluefs

os/bluestore/BlueFS: wait for aios on shutdown

9 years agoMerge pull request #9343 from dachary/wip-13522-ceph-disk
Loic Dachary [Wed, 1 Jun 2016 13:39:10 +0000 (15:39 +0200)]
Merge pull request #9343 from dachary/wip-13522-ceph-disk

ceph-disk: workaround gperftool hang

Reviewed-by: Kefu Chai <kchai@redhat.com>
9 years agoos/bluestore/BlueFS: wait for aios on shutdown 9422/head
Sage Weil [Wed, 1 Jun 2016 13:14:01 +0000 (09:14 -0400)]
os/bluestore/BlueFS: wait for aios on shutdown

This fixes segv from unittest_bluefs.

Signed-off-by: Sage Weil <sage@redhat.com>
9 years agoceph-disk: workaround gperftool hang 9343/head
Loic Dachary [Thu, 26 May 2016 10:55:51 +0000 (12:55 +0200)]
ceph-disk: workaround gperftool hang

Temporary workaround: if ceph-osd --mkfs does not
complete within 5 minutes, assume it is blocked
because of https://github.com/gperftools/gperftools/issues/786

References http://tracker.ceph.com/issues/13522

Signed-off-by: Loic Dachary <loic@dachary.org>
9 years agoqa/workunits/fs/misc: test for setting empty ACL 9073/head
Yan, Zheng [Wed, 1 Jun 2016 09:42:24 +0000 (17:42 +0800)]
qa/workunits/fs/misc: test for setting empty ACL

Signed-off-by: Yan, Zheng <zyan@redhat.com>
9 years agoMerge pull request #9299 from cbodley/wip-rgw-vstart-valgrind
Yehuda Sadeh [Wed, 1 Jun 2016 09:10:20 +0000 (12:10 +0300)]
Merge pull request #9299 from cbodley/wip-rgw-vstart-valgrind

vstart: add --valgrind_rgw

Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
9 years agoMerge pull request #9375 from dillaman/wip-14937
Mykola Golub [Wed, 1 Jun 2016 07:59:57 +0000 (10:59 +0300)]
Merge pull request #9375 from dillaman/wip-14937

rbd-mirror: replicate cloned images

Reviewed-by: Mykola Golub <mgolub@mirantis.com>
9 years agoMerge pull request #9162 from xiexingguo/xxg-wip-fixbmap
xiexingguo [Wed, 1 Jun 2016 07:46:06 +0000 (15:46 +0800)]
Merge pull request #9162 from xiexingguo/xxg-wip-fixbmap

os/bluestore: fix bmap allocator relevant issues

Reviewed-by: Ramesh Chander <Ramesh.Chander@sandisk.com>