From: tridao Date: Sun, 2 Jul 2023 10:42:58 +0000 (-0300) Subject: Add another object to RandomCW X-Git-Tag: v19.0.0~773^2~8 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=8dd44ea9f5f9d2a5717a324473405127a9730b49;p=ceph.git Add another object to RandomCW Signed-off-by: Tri Dao --- diff --git a/src/test/objectstore/Fragmentation_simulator.cc b/src/test/objectstore/Fragmentation_simulator.cc index 689741dd94be..31ef2ab7f0e1 100644 --- a/src/test/objectstore/Fragmentation_simulator.cc +++ b/src/test/objectstore/Fragmentation_simulator.cc @@ -168,30 +168,48 @@ struct RandomCWGenerator : public FragmentationSimulator::WorkloadGenerator { int generate_txns(ObjectStore::CollectionHandle &ch, ObjectStoreImitator *os) override { - hobject_t h; - h.oid = fmt::format("obj"); - h.set_hash(1); - h.pool = 1; - ghobject_t obj(h); + hobject_t h1; + h1.oid = fmt::format("obj1"); + h1.set_hash(1); + h1.pool = 1; + ghobject_t obj1(h1); + + hobject_t h2; + h2.oid = fmt::format("obj2"); + h2.set_hash(2); + h2.pool = 1; + ghobject_t obj2(h2); std::vector tls; ObjectStore::Transaction t1; - t1.create(ch->get_cid(), obj); + t1.create(ch->get_cid(), obj1); tls.emplace_back(std::move(t1)); - gen_type rng(0); + ObjectStore::Transaction t2; + t2.create(ch->get_cid(), obj2); + tls.emplace_back(std::move(t2)); + + gen_type rng(time(0)); boost::uniform_int<> u_size(0, _1Mb * 4); boost::uniform_int<> u_offset(0, _1Mb); - for (unsigned i{0}; i < 100; ++i) { - ObjectStore::Transaction t2; + for (unsigned i{0}; i < 200; ++i) { + ObjectStore::Transaction t3; auto size = u_size(rng); auto offset = u_offset(rng); - t2.write(ch->get_cid(), obj, offset, size, make_bl(size, 'c')); - tls.emplace_back(std::move(t2)); + t3.write(ch->get_cid(), obj1, offset, size, make_bl(size, 'c')); + tls.emplace_back(std::move(t3)); + + ObjectStore::Transaction t4; + + size = u_size(rng); + offset = u_offset(rng); + + t4.write(ch->get_cid(), obj2, offset, size, make_bl(size, 'c')); + tls.emplace_back(std::move(t4)); } os->queue_transactions(ch, tls); @@ -209,7 +227,7 @@ TEST_P(FragmentationSimulator, SimpleCWGenerator) { } TEST_P(FragmentationSimulator, RandomCWGenerator) { - init(GetParam(), _1Mb * 8); + init(GetParam(), _1Mb * 16); add_generator(std::make_shared()); begin_simulation_with_generators(); } diff --git a/src/test/objectstore/ObjectStoreImitator.cc b/src/test/objectstore/ObjectStoreImitator.cc index ba17ff9cf396..42176f1a1e61 100644 --- a/src/test/objectstore/ObjectStoreImitator.cc +++ b/src/test/objectstore/ObjectStoreImitator.cc @@ -122,12 +122,19 @@ void ObjectStoreImitator::Object::append(PExtentVector &ext, uint64_t offset) { } void ObjectStoreImitator::Object::verify_extents() { - // std::cout << "verifying extents:\n"; + std::cout << "Verifying extents:\n"; + uint64_t prev{0}; for (auto &[l_off, ext] : extent_map) { - // std::cout << l_off << " " << ext.offset << " " << ext.length - // << std::endl; + std::cout << "logical offset: " << l_off + << ", extent offset: " << ext.offset + << ", extent length: " << ext.length << std::endl; + ceph_assert(ext.is_valid()); ceph_assert(ext.length > 0); + + // Making sure that extents don't overlap + ceph_assert(prev <= l_off); + prev = l_off + ext.length; } }