diff options
Diffstat (limited to 'searchlib/src/vespa/searchlib/tensor/direct_tensor_store.cpp')
-rw-r--r-- | searchlib/src/vespa/searchlib/tensor/direct_tensor_store.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/searchlib/src/vespa/searchlib/tensor/direct_tensor_store.cpp b/searchlib/src/vespa/searchlib/tensor/direct_tensor_store.cpp index e6084c9cde4..3ca7722e6ca 100644 --- a/searchlib/src/vespa/searchlib/tensor/direct_tensor_store.cpp +++ b/searchlib/src/vespa/searchlib/tensor/direct_tensor_store.cpp @@ -2,11 +2,18 @@ #include "direct_tensor_store.h" #include <vespa/eval/eval/value.h> +#include <vespa/vespalib/datastore/compacting_buffers.h> +#include <vespa/vespalib/datastore/compaction_context.h> +#include <vespa/vespalib/datastore/compaction_strategy.h> #include <vespa/vespalib/datastore/datastore.hpp> #include <vespa/vespalib/datastore/buffer_type.hpp> #include <vespa/vespalib/util/size_literals.h> +using vespalib::datastore::CompactionContext; +using vespalib::datastore::CompactionSpec; +using vespalib::datastore::CompactionStrategy; using vespalib::datastore::EntryRef; +using vespalib::datastore::ICompactionContext; namespace search::tensor { @@ -78,4 +85,19 @@ DirectTensorStore::move(EntryRef ref) return new_ref; } +vespalib::MemoryUsage +DirectTensorStore::update_stat(const CompactionStrategy& compaction_strategy) +{ + auto array_store_memory_usage = _store.getMemoryUsage(); + _compaction_spec = CompactionSpec(compaction_strategy.should_compact_memory(array_store_memory_usage), false); + return array_store_memory_usage; +} + +std::unique_ptr<ICompactionContext> +DirectTensorStore::start_compact(const CompactionStrategy& compaction_strategy) +{ + auto compacting_buffers = _store.start_compact_worst_buffers(_compaction_spec, compaction_strategy); + return std::make_unique<CompactionContext>(*this, std::move(compacting_buffers)); +} + } |