aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib/src
diff options
context:
space:
mode:
Diffstat (limited to 'searchlib/src')
-rw-r--r--searchlib/src/tests/tensor/direct_tensor_store/direct_tensor_store_test.cpp7
-rw-r--r--searchlib/src/tests/tensor/tensor_buffer_store/tensor_buffer_store_test.cpp10
-rw-r--r--searchlib/src/vespa/searchlib/tensor/dense_tensor_store.cpp3
-rw-r--r--searchlib/src/vespa/searchlib/tensor/dense_tensor_store.h2
-rw-r--r--searchlib/src/vespa/searchlib/tensor/direct_tensor_store.cpp6
-rw-r--r--searchlib/src/vespa/searchlib/tensor/direct_tensor_store.h2
-rw-r--r--searchlib/src/vespa/searchlib/tensor/tensor_buffer_store.cpp3
-rw-r--r--searchlib/src/vespa/searchlib/tensor/tensor_buffer_store.h2
8 files changed, 16 insertions, 19 deletions
diff --git a/searchlib/src/tests/tensor/direct_tensor_store/direct_tensor_store_test.cpp b/searchlib/src/tests/tensor/direct_tensor_store/direct_tensor_store_test.cpp
index 8b21952b2d1..64cb6a6c146 100644
--- a/searchlib/src/tests/tensor/direct_tensor_store/direct_tensor_store_test.cpp
+++ b/searchlib/src/tests/tensor/direct_tensor_store/direct_tensor_store_test.cpp
@@ -107,7 +107,7 @@ TEST_F(DirectTensorStoreTest, hold_adds_entry_to_hold_list)
EXPECT_GT(mem_2.allocatedBytesOnHold(), mem_1.allocatedBytesOnHold() + tensor_mem_usage.allocatedBytes());
}
-TEST_F(DirectTensorStoreTest, move_allocates_new_entry_and_puts_old_entry_on_hold)
+TEST_F(DirectTensorStoreTest, move_on_compact_allocates_new_entry_and_leaves_old_entry_alone)
{
auto t = make_tensor(5);
auto* exp = t.get();
@@ -115,12 +115,13 @@ TEST_F(DirectTensorStoreTest, move_allocates_new_entry_and_puts_old_entry_on_hol
auto ref_1 = store.store_tensor(std::move(t));
auto mem_1 = store.getMemoryUsage();
- auto ref_2 = store.move(ref_1);
+ auto ref_2 = store.move_on_compact(ref_1);
auto mem_2 = store.getMemoryUsage();
EXPECT_NE(ref_1, ref_2);
expect_tensor(exp, ref_1);
expect_tensor(exp, ref_2);
- EXPECT_GT(mem_2.allocatedBytesOnHold(), mem_1.allocatedBytesOnHold() + tensor_mem_usage.allocatedBytes());
+ EXPECT_EQ(0, mem_2.allocatedBytesOnHold());
+ EXPECT_GT(mem_2.usedBytes(), mem_1.usedBytes() + tensor_mem_usage.allocatedBytes());
}
GTEST_MAIN_RUN_ALL_TESTS()
diff --git a/searchlib/src/tests/tensor/tensor_buffer_store/tensor_buffer_store_test.cpp b/searchlib/src/tests/tensor/tensor_buffer_store/tensor_buffer_store_test.cpp
index 101b84e01aa..3bbb6cd334e 100644
--- a/searchlib/src/tests/tensor/tensor_buffer_store/tensor_buffer_store_test.cpp
+++ b/searchlib/src/tests/tensor/tensor_buffer_store/tensor_buffer_store_test.cpp
@@ -29,7 +29,7 @@ protected:
vespalib::nbostream encode_stored_tensor(EntryRef ref);
void assert_store_load(const TensorSpec& tensor_spec);
void assert_store_load_many(const TensorSpec& tensor_spec);
- void assert_store_move_load(const TensorSpec& tensor_spec);
+ void assert_store_move_on_compact_load(const TensorSpec& tensor_spec);
void assert_store_encode_store_encoded_load(const TensorSpec& tensor_spec);
};
@@ -102,10 +102,10 @@ TensorBufferStoreTest::assert_store_load_many(const TensorSpec& tensor_spec)
}
void
-TensorBufferStoreTest::assert_store_move_load(const TensorSpec& tensor_spec)
+TensorBufferStoreTest::assert_store_move_on_compact_load(const TensorSpec& tensor_spec)
{
auto ref = store_tensor(tensor_spec);
- auto ref2 = _store.move(ref);
+ auto ref2 = _store.move_on_compact(ref);
EXPECT_NE(ref, ref2);
auto loaded_spec = load_tensor_spec(ref2);
_store.holdTensor(ref2);
@@ -147,10 +147,10 @@ TEST_F(TensorBufferStoreTest, tensor_can_be_stored_and_loaded_many_times)
}
}
-TEST_F(TensorBufferStoreTest, stored_tensor_can_be_copied)
+TEST_F(TensorBufferStoreTest, stored_tensor_can_be_moved_on_compact)
{
for (auto& tensor_spec : tensor_specs) {
- assert_store_move_load(tensor_spec);
+ assert_store_move_on_compact_load(tensor_spec);
}
}
diff --git a/searchlib/src/vespa/searchlib/tensor/dense_tensor_store.cpp b/searchlib/src/vespa/searchlib/tensor/dense_tensor_store.cpp
index ba7e8526146..60a3546578a 100644
--- a/searchlib/src/vespa/searchlib/tensor/dense_tensor_store.cpp
+++ b/searchlib/src/vespa/searchlib/tensor/dense_tensor_store.cpp
@@ -121,7 +121,7 @@ DenseTensorStore::holdTensor(EntryRef ref)
}
TensorStore::EntryRef
-DenseTensorStore::move(EntryRef ref)
+DenseTensorStore::move_on_compact(EntryRef ref)
{
if (!ref.valid()) {
return RefType();
@@ -129,7 +129,6 @@ DenseTensorStore::move(EntryRef ref)
auto oldraw = getRawBuffer(ref);
auto newraw = allocRawBuffer();
memcpy(newraw.data, static_cast<const char *>(oldraw), getBufSize());
- _concreteStore.holdElem(ref, _tensorSizeCalc.alignedSize());
return newraw.ref;
}
diff --git a/searchlib/src/vespa/searchlib/tensor/dense_tensor_store.h b/searchlib/src/vespa/searchlib/tensor/dense_tensor_store.h
index 1b25bdad464..298e58ee410 100644
--- a/searchlib/src/vespa/searchlib/tensor/dense_tensor_store.h
+++ b/searchlib/src/vespa/searchlib/tensor/dense_tensor_store.h
@@ -63,7 +63,7 @@ public:
}
vespalib::datastore::Handle<char> allocRawBuffer();
void holdTensor(EntryRef ref) override;
- EntryRef move(EntryRef ref) override;
+ EntryRef move_on_compact(EntryRef ref) override;
vespalib::MemoryUsage update_stat(const vespalib::datastore::CompactionStrategy& compaction_strategy) override;
std::unique_ptr<vespalib::datastore::ICompactionContext> start_compact(const vespalib::datastore::CompactionStrategy& compaction_strategy) override;
EntryRef store_tensor(const vespalib::eval::Value &tensor) override;
diff --git a/searchlib/src/vespa/searchlib/tensor/direct_tensor_store.cpp b/searchlib/src/vespa/searchlib/tensor/direct_tensor_store.cpp
index 1184cca37e7..013e7dedeba 100644
--- a/searchlib/src/vespa/searchlib/tensor/direct_tensor_store.cpp
+++ b/searchlib/src/vespa/searchlib/tensor/direct_tensor_store.cpp
@@ -71,16 +71,14 @@ DirectTensorStore::holdTensor(EntryRef ref)
}
EntryRef
-DirectTensorStore::move(EntryRef ref)
+DirectTensorStore::move_on_compact(EntryRef ref)
{
if (!ref.valid()) {
return EntryRef();
}
const auto& old_tensor = _tensor_store.getEntry(ref);
assert(old_tensor);
- auto new_ref = add_entry(old_tensor);
- _tensor_store.holdElem(ref, 1, old_tensor->get_memory_usage().allocatedBytes());
- return new_ref;
+ return add_entry(old_tensor);
}
vespalib::MemoryUsage
diff --git a/searchlib/src/vespa/searchlib/tensor/direct_tensor_store.h b/searchlib/src/vespa/searchlib/tensor/direct_tensor_store.h
index ff9540a27b3..c55dda5646a 100644
--- a/searchlib/src/vespa/searchlib/tensor/direct_tensor_store.h
+++ b/searchlib/src/vespa/searchlib/tensor/direct_tensor_store.h
@@ -49,7 +49,7 @@ public:
EntryRef store_tensor(std::unique_ptr<vespalib::eval::Value> tensor);
void holdTensor(EntryRef ref) override;
- EntryRef move(EntryRef ref) override;
+ EntryRef move_on_compact(EntryRef ref) override;
vespalib::MemoryUsage update_stat(const vespalib::datastore::CompactionStrategy& compaction_strategy) override;
std::unique_ptr<vespalib::datastore::ICompactionContext> start_compact(const vespalib::datastore::CompactionStrategy& compaction_strategy) override;
EntryRef store_tensor(const vespalib::eval::Value& tensor) override;
diff --git a/searchlib/src/vespa/searchlib/tensor/tensor_buffer_store.cpp b/searchlib/src/vespa/searchlib/tensor/tensor_buffer_store.cpp
index 800311adfd6..6b96a91ec1c 100644
--- a/searchlib/src/vespa/searchlib/tensor/tensor_buffer_store.cpp
+++ b/searchlib/src/vespa/searchlib/tensor/tensor_buffer_store.cpp
@@ -48,7 +48,7 @@ TensorBufferStore::holdTensor(EntryRef ref)
}
EntryRef
-TensorBufferStore::move(EntryRef ref)
+TensorBufferStore::move_on_compact(EntryRef ref)
{
if (!ref.valid()) {
return EntryRef();
@@ -56,7 +56,6 @@ TensorBufferStore::move(EntryRef ref)
auto buf = _array_store.get(ref);
auto new_ref = _array_store.add(buf);
_ops.copied_labels(buf);
- _array_store.remove(ref);
return new_ref;
}
diff --git a/searchlib/src/vespa/searchlib/tensor/tensor_buffer_store.h b/searchlib/src/vespa/searchlib/tensor/tensor_buffer_store.h
index 6611660b410..1b5520233e1 100644
--- a/searchlib/src/vespa/searchlib/tensor/tensor_buffer_store.h
+++ b/searchlib/src/vespa/searchlib/tensor/tensor_buffer_store.h
@@ -27,7 +27,7 @@ public:
TensorBufferStore(const vespalib::eval::ValueType& tensor_type, std::shared_ptr<vespalib::alloc::MemoryAllocator> allocator, uint32_t max_small_subspaces_type_id);
~TensorBufferStore();
void holdTensor(EntryRef ref) override;
- EntryRef move(EntryRef ref) override;
+ EntryRef move_on_compact(EntryRef ref) override;
vespalib::MemoryUsage update_stat(const vespalib::datastore::CompactionStrategy& compaction_strategy) override;
std::unique_ptr<vespalib::datastore::ICompactionContext> start_compact(const vespalib::datastore::CompactionStrategy& compaction_strategy) override;
EntryRef store_tensor(const vespalib::eval::Value& tensor) override;