diff --git a/dbms/src/Dictionaries/CacheDictionary.cpp b/dbms/src/Dictionaries/CacheDictionary.cpp index 7f1b17ffa92..4e188972d12 100644 --- a/dbms/src/Dictionaries/CacheDictionary.cpp +++ b/dbms/src/Dictionaries/CacheDictionary.cpp @@ -867,6 +867,8 @@ void CacheDictionary::update(const std::vector & requested_ids, std::unorde stream->readPrefix(); + const ProfilingScopedWriteRWLock write_lock{rw_lock, ProfileEvents::DictCacheLockWriteNs}; + while (const auto block = stream->read()) { const auto id_column = typeid_cast(block.safeGetByPosition(0).column.get()); @@ -881,8 +883,6 @@ void CacheDictionary::update(const std::vector & requested_ids, std::unorde ext::range(0, attributes.size()), [&block](size_t i) { return block.safeGetByPosition(i + 1).column.get(); }); - const ProfilingScopedWriteRWLock write_lock{rw_lock, ProfileEvents::DictCacheLockWriteNs}; - for (const auto i : ext::range(0, ids.size())) { const auto id = ids[i];