MCPcopy Create free account
hub / github.com/Oneflow-Inc/oneflow / Next

Method Next

oneflow/core/embedding/persistent_table.cpp:752–790  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

750 ~SnapshotIteratorImpl() override = default;
751
752 void Next(uint32_t num_keys, uint32_t* return_keys, void* keys, void* values) override {
753 *return_keys = 0;
754 while (current_chunk_ < indices_names_.size()) {
755 if (!chunk_iterator_) {
756 const std::string snapshot_base = table_->SnapshotDirPath(snapshot_name_);
757 const uint64_t chunk_id = GetChunkId(indices_names_[current_chunk_], kIndexFileNamePrefix);
758 PosixFile index_file(PosixFile::JoinPath(snapshot_base, indices_names_[current_chunk_]),
759 O_RDONLY, 0644);
760 const size_t index_file_size = index_file.Size();
761 CHECK_EQ(index_file_size % sizeof(uint64_t), 0);
762 if (index_file_size == 0) {
763 current_chunk_ += 1;
764 continue;
765 }
766 const size_t n_entries = index_file_size / sizeof(uint64_t);
767 indices_file_.reset(new PosixMappedFile(std::move(index_file), index_file_size, PROT_READ));
768 PosixFile key_file(table_->KeyFilePath(chunk_id), O_RDONLY, 0644);
769 keys_file_.reset(new PosixMappedFile(std::move(key_file), key_file.Size(), PROT_READ));
770 PosixFile value_file(table_->ValueFilePath(chunk_id), O_RDONLY, 0644);
771 values_file_.reset(
772 new PosixMappedFile(std::move(value_file), value_file.Size(), PROT_READ));
773 chunk_iterator_.reset(new ChunkIteratorImpl<Key>(
774 value_size_, logical_block_size_, num_values_per_block_, num_values_per_chunk_,
775 chunk_id, n_entries, static_cast<const Key*>(keys_file_->ptr()),
776 static_cast<const uint64_t*>(indices_file_->ptr()), values_file_->ptr()));
777 }
778 chunk_iterator_->Next(num_keys, return_keys, keys, values);
779 if (*return_keys == 0) {
780 chunk_iterator_.reset();
781 keys_file_.reset();
782 values_file_.reset();
783 indices_file_.reset();
784 current_chunk_ += 1;
785 continue;
786 } else {
787 return;
788 }
789 }
790 }
791
792 void Reset() override { UNIMPLEMENTED(); }
793

Callers

nothing calls this directly

Calls 10

GetChunkIdFunction · 0.85
JoinPathFunction · 0.85
SnapshotDirPathMethod · 0.80
KeyFilePathMethod · 0.80
ValueFilePathMethod · 0.80
sizeMethod · 0.45
SizeMethod · 0.45
resetMethod · 0.45
ptrMethod · 0.45
NextMethod · 0.45

Tested by

no test coverage detected