Commit Graph

53981 Commits

Author SHA1 Message Date
Igor Fedotov
fe2ed4e9b0 os/bluestore: Fixes some issues when using Buffer Cache from _do_read and improves test coverage
Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
2016-06-01 11:38:50 -04:00
Igor Fedotov
4464180d6b os/bluestore: Fixes invalid assert in Buffer::truncate
Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
2016-06-01 11:38:50 -04:00
Igor Fedotov
d0acbd08ae test/objectstore: Adds trivial test case to verify buffer cache use in bluestore
Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
2016-06-01 11:38:50 -04:00
Igor Fedotov
1a0e9754db Adds cached buffer processing for _do_read
Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
2016-06-01 11:38:50 -04:00
Sage Weil
f492eda0da 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>
2016-06-01 11:38:50 -04:00
Sage Weil
8f0414b60c 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>
2016-06-01 11:38:49 -04:00
Sage Weil
977881adb6 os/bluestore: dump tail_bl state in _dump_onode
Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-01 11:38:49 -04:00
Igor Fedotov
f46ad54f45 os/bluestore: Adds lacking methods in bluestore_compression_header_t to fix encoder test build
Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
2016-06-01 11:38:49 -04:00
Igor Fedotov
2942f36f36 os/bluestore: add decompressor call to read path
Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
2016-06-01 11:38:49 -04:00
Igor Fedotov
bbaa788f01 os/bluestore/bluestore_types: add bluestore_compression_header_t
Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
2016-06-01 11:38:49 -04:00
Igor Fedotov
a305d6b5a3 compressor: Refactor to allow bufferlist::iterator as an input
Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
2016-06-01 11:38:49 -04:00
Sage Weil
9cfb096300 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>
2016-06-01 11:38:49 -04:00
Sage Weil
ef99f9446a os/bluestore: verify blob ref_maps during fsck
Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-01 11:38:48 -04:00
Sage Weil
aa77a05ad3 os/bluestore: return EIO on csum verification error
Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-01 11:38:48 -04:00
Sage Weil
e6a7e9d2e5 os/bluestore: simplify _verify_csum
Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-01 11:38:48 -04:00
Sage Weil
62b779968a os/bluestore: cleanup _read_extent_sparse
Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-01 11:38:48 -04:00
Igor Fedotov
9f200e4515 os/bluetores: fix checksum verification
Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
2016-06-01 11:38:48 -04:00
Igor Fedotov
60576789be os/bluestore: read patch code cleanup
Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
2016-06-01 11:38:48 -04:00
Igor Fedotov
ca560f6ed5 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>
2016-06-01 11:38:48 -04:00
Sage Weil
c71975aa4d doc/dev/bluestore: write path notes
Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-01 11:38:48 -04:00
Sage Weil
8b8beb8582 ceph_test_objectstore: new test SmallBlockWrites
Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-01 11:38:47 -04:00
Sage Weil
a198b5f187 ceph_test_objectstore: add BigWriteBigZero test
Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-01 11:38:47 -04:00
Sage Weil
93cea350cb ceph_test_objectstore: expand SimpleObjectTest a bit
Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-01 11:38:47 -04:00
Sage Weil
464cb399ab os/bluestore: define min_alloc_size globally
Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-01 11:38:47 -04:00
Sage Weil
8e900f2f4c 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>
2016-06-01 11:38:47 -04:00
Sage Weil
2ee90d9585 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>
2016-06-01 11:38:47 -04:00
Sage Weil
20072289c6 os/bluestore: use _txc_finalize_kv for wal allocation updates
Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-01 11:38:47 -04:00
Sage Weil
d7ab766dd6 os/bluestore: pass txc to _do_wal_op
Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-01 11:38:46 -04:00
Sage Weil
212431a48d os/bluestore: rename _txc_update_fm -> _txc_finalize_kv
Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-01 11:38:46 -04:00
Sage Weil
c3271aca65 os/bluestore/BlueStore: break _txc_finalize into _txc_write_nodes
Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-01 11:38:46 -04:00
Sage Weil
fbdb78bc8a os/bluestore: dump csums in _dump_onode/bnode
Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-01 11:38:46 -04:00
Sage Weil
d52705de7e os/bluestore: _dump_bnode
Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-01 11:38:46 -04:00
Sage Weil
5ec0c5e516 os/bluestore/bluestore_types: nicer operator<< for blob_t
Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-01 11:38:46 -04:00
Sage Weil
d308625c9b os/bluestore/bluestore_types: add onode_t::compress_extent_map()
Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-01 11:38:46 -04:00
Sage Weil
14289319c9 os/bluestore/bluestore_types: blob_t convenience methods
Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-01 11:38:46 -04:00
Sage Weil
442c75978e os/bluestore/bluestore_types: FLAG_IMMUTABLE -> FLAG_MUTABLE
Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-01 11:38:45 -04:00
Sage Weil
a2fe7e26ec os/bluestore/bluestore_types: blob_t::is_unreferenced() method
Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-01 11:38:45 -04:00
Sage Weil
47d4255e9f os/bluestore/bluestore_types: add blob_t::has_any_lextents
Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-01 11:38:45 -04:00
Sage Weil
117835ba02 os/bluestore/bluestore_types: test {find,seek}_lextents
Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-01 11:38:45 -04:00
Sage Weil
5893231aa2 os/bluestore/bluestore_types: blob_t csum additions
Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-01 11:38:45 -04:00
Sage Weil
3c14e29b47 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>
2016-06-01 11:38:45 -04:00
Sage Weil
736aad13a8 os/bluestore: track csum config options
Use global csum_type member to drive new checksum calcuations.

Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-01 11:38:45 -04:00
Sage Weil
e52fc77f37 os/bluestore: instantiate a Checksummer
Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-01 11:38:45 -04:00
Sage Weil
3b73640937 os/bluestore: prototype Checksummer
Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-01 11:38:44 -04:00
Sage Weil
e31bf9e218 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>
2016-06-01 11:38:44 -04:00
Sage Weil
c828ad81df os/bluestore/bluestore_types: extent_ref_map_t::intersects
Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-01 11:38:44 -04:00
Sage Weil
5e254d59ba 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>
2016-06-01 11:38:44 -04:00
Sage Weil
93d8efa185 os/bluestore/bluestore_types: drop num_refs from blob_t
Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-01 11:38:44 -04:00
Sage Weil
a2ad0ce2fb os/bluestore/bluestore_types: onode_t::punch_hole()
Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-01 11:38:44 -04:00
Sage Weil
51ccdaa4af os/bluestore: disable clone cow until it works again
Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-01 11:38:44 -04:00