crimson::common::local_conf().set_val("seastore_data_delta_based_overwrite", "0").get();
}
+ void disable_max_extent_size() {
+ epm->set_max_extent_size(16777216);
+ crimson::common::local_conf().set_val(
+ "seastore_max_data_allocation_size", "16777216").get();
+ }
+ void enable_max_extent_size() {
+ epm->set_max_extent_size(8192);
+ crimson::common::local_conf().set_val(
+ "seastore_max_data_allocation_size", "8192").get();
+ }
+
laddr_t get_random_laddr(size_t block_size, laddr_t limit) {
return block_size *
std::uniform_int_distribution<>(0, (limit / block_size) - 1)(gen);
TEST_P(object_data_handler_test_t, remap_left) {
run_async([this] {
+ disable_max_extent_size();
write_right();
auto pins = get_mappings(0, 128<<10);
i++;
}
read(0, 128<<10);
+ enable_max_extent_size();
});
}
TEST_P(object_data_handler_test_t, overwrite_right) {
run_async([this] {
+ disable_max_extent_size();
enable_delta_based_overwrite();
write_right();
EXPECT_EQ(pins.size(), 1);
read(0, 128<<10);
disable_delta_based_overwrite();
+ enable_max_extent_size();
});
}
TEST_P(object_data_handler_test_t, remap_right) {
run_async([this] {
+ disable_max_extent_size();
write_left();
auto pins = get_mappings(0, 128<<10);
i++;
}
read(0, 128<<10);
+ enable_max_extent_size();
});
}
TEST_P(object_data_handler_test_t, overwrite_left) {
run_async([this] {
+ disable_max_extent_size();
enable_delta_based_overwrite();
write_left();
auto pins = get_mappings(0, 128<<10);
EXPECT_EQ(pins.size(), 1);
read(0, 128<<10);
disable_delta_based_overwrite();
+ enable_max_extent_size();
});
}
TEST_P(object_data_handler_test_t, remap_right_left) {
run_async([this] {
+ disable_max_extent_size();
write_right_left();
auto pins = get_mappings(0, 128<<10);
EXPECT_EQ(pin->get_key() - base, res[i]);
i++;
}
+ enable_max_extent_size();
});
}
TEST_P(object_data_handler_test_t, overwrite_right_left) {
run_async([this] {
+ disable_max_extent_size();
enable_delta_based_overwrite();
write_right_left();
auto pins = get_mappings(0, 128<<10);
EXPECT_EQ(pins.size(), 1);
read(0, 128<<10);
disable_delta_based_overwrite();
+ enable_max_extent_size();
});
}
TEST_P(object_data_handler_test_t, multiple_remap) {
run_async([this] {
+ disable_max_extent_size();
multiple_write();
auto pins = get_mappings(0, 128<<10);
EXPECT_EQ(pins.size(), 3);
i++;
}
read(0, 128<<10);
+ enable_max_extent_size();
});
}
TEST_P(object_data_handler_test_t, multiple_overwrite) {
run_async([this] {
+ disable_max_extent_size();
enable_delta_based_overwrite();
multiple_write();
auto pins = get_mappings(0, 128<<10);
EXPECT_EQ(pins.size(), 1);
read(0, 128<<10);
disable_delta_based_overwrite();
+ enable_max_extent_size();
});
}