#include "alien_store.h"
#include <map>
+#include <optional>
#include <string_view>
#include <boost/algorithm/string/trim.hpp>
#include <fmt/format.h>
#include <seastar/core/alien.hh>
#include <seastar/core/future-util.hh>
+#include <seastar/core/memory.hh>
#include <seastar/core/reactor.hh>
+#include <seastar/core/resource.hh>
#include "common/ceph_context.h"
#include "global/global_context.h"
return iter->status();
}
+void AlienStore::configure_thread_memory()
+{
+ std::vector<seastar::resource::memory> layout;
+ // 1 GiB for experimenting. Perhaps we'll introduce a config option later.
+ // TODO: consider above.
+ layout.emplace_back(seastar::resource::memory{1024 * 1024 * 1024, 0});
+ seastar::memory::configure(layout, false, std::nullopt);
+}
+
}
seastar::future<FuturizedStore::OmapIteratorRef> get_omap_iterator(
CollectionRef ch,
const ghobject_t& oid) final;
+
+ static void configure_thread_memory();
private:
constexpr static unsigned MAX_KEYS_PER_OMAP_GET_CALL = 32;
const std::string path;
#include <chrono>
#include <pthread.h>
-#include "include/intarith.h"
#include "include/ceph_assert.h"
#include "crimson/common/config_proxy.h"
+#include "crimson/os/alienstore/alien_store.h"
using crimson::common::local_conf;
for (size_t i = 0; i < n_threads; i++) {
threads.emplace_back([this, cpu_id, queue_max_wait] {
pin(cpu_id);
+ crimson::os::AlienStore::configure_thread_memory();
loop(queue_max_wait);
});
}
add_ceph_test(unittest_seastar_alienstore_thread_pool
unittest_seastar_alienstore_thread_pool --memory 256M --smp 1)
target_link_libraries(unittest_seastar_alienstore_thread_pool
- crimson
crimson-os
- crimson-common)
+ crimson-alienstore
+ crimson)
add_executable(unittest_seastar_config
test_config.cc)