Skip to content

Commit

Permalink
improve how deletes are read by avoiding temporary object creation (#305
Browse files Browse the repository at this point in the history
)

improve how deletes are read by avoiding temporary object creation
  • Loading branch information
hendrikmuhs authored Jul 23, 2024
1 parent 0f0ffa4 commit 6ac6d22
Showing 1 changed file with 6 additions and 4 deletions.
10 changes: 6 additions & 4 deletions keyvi/include/keyvi/index/internal/read_only_segment.h
Original file line number Diff line number Diff line change
Expand Up @@ -260,11 +260,13 @@ class ReadOnlySegment {
deleted_t deleted_keys;
std::ifstream deleted_keys_stream(filename, std::ios::binary);
if (deleted_keys_stream.good()) {
std::stringstream buffer;
buffer << deleted_keys_stream.rdbuf();

std::string buffer;
deleted_keys_stream.seekg(0, std::ios::end);
buffer.resize(deleted_keys_stream.tellg());
deleted_keys_stream.seekg(0, std::ios::beg);
deleted_keys_stream.read(&buffer[0], buffer.size());
msgpack::unpacked unpacked_object;
msgpack::unpack(unpacked_object, buffer.str().data(), buffer.str().size());
msgpack::unpack(unpacked_object, buffer.data(), buffer.size());
unpacked_object.get().convert(deleted_keys);
}
return deleted_keys;
Expand Down

0 comments on commit 6ac6d22

Please sign in to comment.