fix(perf): don't refresh kv and custom queries when loading blocks

Both kv and custom queries should be refreshed only if there're new
db transactions.
This commit is contained in:
Tienson Qin
2025-05-06 22:01:26 +08:00
parent 312a77b479
commit 39c8a9752c
2 changed files with 5 additions and 3 deletions

View File

@@ -143,7 +143,7 @@
(remove empty?))]
(when (seq tx-data) (d/transact! conn tx-data))
(when-not skip-refresh?
(react/refresh-affected-queries! graph affected-keys))))
(react/refresh-affected-queries! graph affected-keys {:skip-kv-custom-keys? true}))))
(if children-only? children block))
(p/catch (fn [error]

View File

@@ -173,7 +173,8 @@
(set-new-result! k result'))))
(defn refresh-affected-queries!
[repo-url affected-keys]
[repo-url affected-keys & {:keys [skip-kv-custom-keys?]
:or {skip-kv-custom-keys? false}}]
(util/profile
"refresh!"
(let [db (conn/get-db repo-url)
@@ -186,7 +187,8 @@
[k' cache]))) @query-state)
(into {}))
all-keys (concat (distinct affected-keys)
(filter #(contains? #{:custom :kv} (first %)) (keys state)))]
(when-not skip-kv-custom-keys?
(filter #(contains? #{:custom :kv} (first %)) (keys state))))]
(doseq [k all-keys]
(when-let [cache (get state k)]
(let [{:keys [query query-fn]} cache