summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@online.no>2022-10-03 13:01:52 +0200
committerTor Egge <Tor.Egge@online.no>2022-10-03 13:01:52 +0200
commitbbec4fa2671280f0639b58915a111fca2bc6f1f0 (patch)
tree047914e0b7990d547d45e4a366ce21f06cab24ff
parent673b4783216a65b040ff7d374ffd2b9473d8da4b (diff)
Sync APIs for StreamedValueStore and TensorBufferStore.
-rw-r--r--searchlib/src/vespa/searchlib/tensor/serialized_fast_value_attribute.cpp8
-rw-r--r--searchlib/src/vespa/searchlib/tensor/streamed_value_saver.cpp2
-rw-r--r--searchlib/src/vespa/searchlib/tensor/streamed_value_store.cpp11
-rw-r--r--searchlib/src/vespa/searchlib/tensor/streamed_value_store.h5
4 files changed, 15 insertions, 11 deletions
diff --git a/searchlib/src/vespa/searchlib/tensor/serialized_fast_value_attribute.cpp b/searchlib/src/vespa/searchlib/tensor/serialized_fast_value_attribute.cpp
index 2233eb77e89..3e9f41c812c 100644
--- a/searchlib/src/vespa/searchlib/tensor/serialized_fast_value_attribute.cpp
+++ b/searchlib/src/vespa/searchlib/tensor/serialized_fast_value_attribute.cpp
@@ -48,13 +48,7 @@ SerializedFastValueAttribute::getTensor(DocId docId) const
if (docId < getCommittedDocIdLimit()) {
ref = acquire_entry_ref(docId);
}
- if (!ref.valid()) {
- return {};
- }
- if (const auto * ptr = _streamedValueStore.get_tensor_entry(ref)) {
- return ptr->create_fast_value_view(_tensor_type);
- }
- return {};
+ return _streamedValueStore.get_tensor(ref);
}
bool
diff --git a/searchlib/src/vespa/searchlib/tensor/streamed_value_saver.cpp b/searchlib/src/vespa/searchlib/tensor/streamed_value_saver.cpp
index f7b93654c33..25d3901d761 100644
--- a/searchlib/src/vespa/searchlib/tensor/streamed_value_saver.cpp
+++ b/searchlib/src/vespa/searchlib/tensor/streamed_value_saver.cpp
@@ -31,7 +31,7 @@ StreamedValueSaver::onSave(IAttributeSaveTarget &saveTarget)
const uint32_t docIdLimit(_refs.size());
vespalib::nbostream stream;
for (uint32_t lid = 0; lid < docIdLimit; ++lid) {
- if (_tensorStore.encode_tensor(_refs[lid], stream)) {
+ if (_tensorStore.encode_stored_tensor(_refs[lid], stream)) {
uint32_t sz = stream.size();
datWriter->write(&sz, sizeof(sz));
datWriter->write(stream.peek(), stream.size());
diff --git a/searchlib/src/vespa/searchlib/tensor/streamed_value_store.cpp b/searchlib/src/vespa/searchlib/tensor/streamed_value_store.cpp
index 58e625e6aca..763486f82e2 100644
--- a/searchlib/src/vespa/searchlib/tensor/streamed_value_store.cpp
+++ b/searchlib/src/vespa/searchlib/tensor/streamed_value_store.cpp
@@ -204,6 +204,15 @@ StreamedValueStore::get_tensor_entry(EntryRef ref) const
return entry.get();
}
+std::unique_ptr<vespalib::eval::Value>
+StreamedValueStore::get_tensor(EntryRef ref) const
+{
+ if (const auto * ptr = get_tensor_entry(ref)) {
+ return ptr->create_fast_value_view(_tensor_type);
+ }
+ return {};
+}
+
void
StreamedValueStore::holdTensor(EntryRef ref)
{
@@ -229,7 +238,7 @@ StreamedValueStore::move(EntryRef ref)
}
bool
-StreamedValueStore::encode_tensor(EntryRef ref, vespalib::nbostream &target) const
+StreamedValueStore::encode_stored_tensor(EntryRef ref, vespalib::nbostream &target) const
{
if (const auto * entry = get_tensor_entry(ref)) {
entry->encode_value(_tensor_type, target);
diff --git a/searchlib/src/vespa/searchlib/tensor/streamed_value_store.h b/searchlib/src/vespa/searchlib/tensor/streamed_value_store.h
index 29201dc0e61..9c5c5a91d18 100644
--- a/searchlib/src/vespa/searchlib/tensor/streamed_value_store.h
+++ b/searchlib/src/vespa/searchlib/tensor/streamed_value_store.h
@@ -60,6 +60,7 @@ private:
TensorStoreType _concrete_store;
const vespalib::eval::ValueType _tensor_type;
EntryRef add_entry(TensorEntry::SP tensor);
+ const TensorEntry* get_tensor_entry(EntryRef ref) const;
public:
StreamedValueStore(const vespalib::eval::ValueType &tensor_type);
~StreamedValueStore() override;
@@ -69,8 +70,8 @@ public:
void holdTensor(EntryRef ref) override;
EntryRef move(EntryRef ref) override;
- const TensorEntry * get_tensor_entry(EntryRef ref) const;
- bool encode_tensor(EntryRef ref, vespalib::nbostream &target) const;
+ std::unique_ptr<vespalib::eval::Value> get_tensor(EntryRef ref) const;
+ bool encode_stored_tensor(EntryRef ref, vespalib::nbostream &target) const;
EntryRef store_tensor(const vespalib::eval::Value &tensor);
EntryRef store_encoded_tensor(vespalib::nbostream &encoded);