mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-21 09:10:48 +00:00
Using maximum one connection to external source when updating cache dictionary [#METR-19576].
This commit is contained in:
parent
a2e7b7c904
commit
2a5f86b890
@ -577,9 +577,6 @@ private:
|
||||
const std::vector<id_t> & requested_ids, PresentIdHandler && on_cell_updated,
|
||||
AbsentIdHandler && on_id_not_found) const
|
||||
{
|
||||
auto stream = source_ptr->loadIds(requested_ids);
|
||||
stream->readPrefix();
|
||||
|
||||
MapType<UInt8> remaining_ids{requested_ids.size()};
|
||||
for (const auto id : requested_ids)
|
||||
remaining_ids.insert({ id, 0 });
|
||||
@ -591,6 +588,9 @@ private:
|
||||
|
||||
const Poco::ScopedWriteRWLock write_lock{rw_lock};
|
||||
|
||||
auto stream = source_ptr->loadIds(requested_ids);
|
||||
stream->readPrefix();
|
||||
|
||||
while (const auto block = stream->read())
|
||||
{
|
||||
const auto id_column = typeid_cast<const ColumnVector<UInt64> *>(block.getByPosition(0).column.get());
|
||||
|
@ -614,9 +614,6 @@ private:
|
||||
const std::vector<std::size_t> & in_requested_rows, PresentKeyHandler && on_cell_updated,
|
||||
AbsentKeyHandler && on_key_not_found) const
|
||||
{
|
||||
auto stream = source_ptr->loadKeys(in_key_columns, in_requested_rows);
|
||||
stream->readPrefix();
|
||||
|
||||
MapType<bool> remaining_keys{in_requested_rows.size()};
|
||||
for (const auto row : in_requested_rows)
|
||||
remaining_keys.insert({ in_keys[row], false });
|
||||
@ -628,6 +625,9 @@ private:
|
||||
|
||||
const Poco::ScopedWriteRWLock write_lock{rw_lock};
|
||||
|
||||
auto stream = source_ptr->loadKeys(in_key_columns, in_requested_rows);
|
||||
stream->readPrefix();
|
||||
|
||||
const auto keys_size = dict_struct.key.value().size();
|
||||
StringRefs keys(keys_size);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user