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