diff options
author | Geir Storli <geirst@yahooinc.com> | 2022-10-03 15:44:16 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-10-03 15:44:16 +0200 |
commit | 082e1dd018f79b9fb2596bbbf8b548c2270a1317 (patch) | |
tree | 3a495f745a8570795708c11081951b64ccd44f98 | |
parent | b0349745d7f93deb8e4555802814ea6e23fd7c72 (diff) | |
parent | bbec4fa2671280f0639b58915a111fca2bc6f1f0 (diff) |
Merge pull request #24287 from vespa-engine/toregge/sync-apis-for-streamed-value-store-and-tensor-buffer-store
Sync APIs for StreamedValueStore and TensorBufferStore.
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); |