mirror of https://github.com/logseq/logseq
perf: reduce disk writes
parent
530bf7ac4d
commit
5b13fe6df4
2
deps.edn
2
deps.edn
|
@ -4,7 +4,7 @@
|
||||||
rum/rum {:mvn/version "0.12.9"}
|
rum/rum {:mvn/version "0.12.9"}
|
||||||
|
|
||||||
datascript/datascript {:git/url "https://github.com/logseq/datascript" ;; fork
|
datascript/datascript {:git/url "https://github.com/logseq/datascript" ;; fork
|
||||||
:sha "6d9b5f0db22d960ddf4870503bc181bff9a50c5d"}
|
:sha "21fc7880c7042fb1d9086135d162ea7a91681f89"}
|
||||||
|
|
||||||
datascript-transit/datascript-transit {:mvn/version "0.3.0"}
|
datascript-transit/datascript-transit {:mvn/version "0.3.0"}
|
||||||
borkdude/rewrite-edn {:mvn/version "0.4.7"}
|
borkdude/rewrite-edn {:mvn/version "0.4.7"}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{:deps
|
{:deps
|
||||||
;; External deps should be kept in sync with https://github.com/logseq/nbb-logseq/blob/main/bb.edn
|
;; External deps should be kept in sync with https://github.com/logseq/nbb-logseq/blob/main/bb.edn
|
||||||
{datascript/datascript {:git/url "https://github.com/logseq/datascript" ;; fork
|
{datascript/datascript {:git/url "https://github.com/logseq/datascript" ;; fork
|
||||||
:sha "6d9b5f0db22d960ddf4870503bc181bff9a50c5d"}
|
:sha "21fc7880c7042fb1d9086135d162ea7a91681f89"}
|
||||||
com.cognitect/transit-cljs {:mvn/version "0.8.280"}
|
com.cognitect/transit-cljs {:mvn/version "0.8.280"}
|
||||||
cljs-bean/cljs-bean {:mvn/version "1.5.0"}}
|
cljs-bean/cljs-bean {:mvn/version "1.5.0"}}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{:deps
|
{:deps
|
||||||
;; External deps should be kept in sync with https://github.com/logseq/nbb-logseq/blob/main/bb.edn
|
;; External deps should be kept in sync with https://github.com/logseq/nbb-logseq/blob/main/bb.edn
|
||||||
{datascript/datascript {:git/url "https://github.com/logseq/datascript" ;; fork
|
{datascript/datascript {:git/url "https://github.com/logseq/datascript" ;; fork
|
||||||
:sha "6d9b5f0db22d960ddf4870503bc181bff9a50c5d"}
|
:sha "21fc7880c7042fb1d9086135d162ea7a91681f89"}
|
||||||
logseq/db {:local/root "../db"}
|
logseq/db {:local/root "../db"}
|
||||||
com.cognitect/transit-cljs {:mvn/version "0.8.280"}}
|
com.cognitect/transit-cljs {:mvn/version "0.8.280"}}
|
||||||
:aliases
|
:aliases
|
||||||
|
|
|
@ -270,7 +270,10 @@
|
||||||
(let [tx-data (edn/read-string tx-data)
|
(let [tx-data (edn/read-string tx-data)
|
||||||
tx-meta (edn/read-string tx-meta)
|
tx-meta (edn/read-string tx-meta)
|
||||||
context (edn/read-string context)
|
context (edn/read-string context)
|
||||||
tx-report (d/transact! conn tx-data tx-meta)
|
tx-meta' (if (or (:from-disk? tx-meta) (:new-graph? tx-meta))
|
||||||
|
tx-meta
|
||||||
|
(assoc tx-meta :skip-store? true))
|
||||||
|
tx-report (d/transact! conn tx-data tx-meta')
|
||||||
result (pipeline/invoke-hooks conn tx-report context)
|
result (pipeline/invoke-hooks conn tx-report context)
|
||||||
;; TODO: delay search indice so that UI can be refreshed earlier
|
;; TODO: delay search indice so that UI can be refreshed earlier
|
||||||
search-indice (search/sync-search-indice repo (:tx-report result))
|
search-indice (search/sync-search-indice repo (:tx-report result))
|
||||||
|
|
|
@ -51,4 +51,5 @@
|
||||||
|
|
||||||
(defn transact-db->worker!
|
(defn transact-db->worker!
|
||||||
[repo tx-report]
|
[repo tx-report]
|
||||||
(<transact-data repo (:tx-data tx-report) (:tx-meta tx-report)))
|
(when-not (:pipeline-replace? (:tx-meta tx-report))
|
||||||
|
(<transact-data repo (:tx-data tx-report) (:tx-meta tx-report))))
|
||||||
|
|
|
@ -42,13 +42,12 @@
|
||||||
(defn invoke-hooks
|
(defn invoke-hooks
|
||||||
[conn tx-report context]
|
[conn tx-report context]
|
||||||
(let [tx-meta (:tx-meta tx-report)
|
(let [tx-meta (:tx-meta tx-report)
|
||||||
{:keys [from-disk? new-graph? pipeline-replace?]} tx-meta]
|
{:keys [from-disk? new-graph?]} tx-meta]
|
||||||
(if (or from-disk? new-graph?)
|
(if (or from-disk? new-graph?)
|
||||||
{:tx-report tx-report}
|
{:tx-report tx-report}
|
||||||
(let [{:keys [pages blocks]} (ds-report/get-blocks-and-pages tx-report)
|
(let [{:keys [pages blocks]} (ds-report/get-blocks-and-pages tx-report)
|
||||||
deleted-block-uuids (set (outliner-pipeline/filter-deleted-blocks (:tx-data tx-report)))
|
deleted-block-uuids (set (outliner-pipeline/filter-deleted-blocks (:tx-data tx-report)))
|
||||||
replace-tx (when-not pipeline-replace?
|
replace-tx (concat
|
||||||
(concat
|
|
||||||
;; block path refs
|
;; block path refs
|
||||||
(set (compute-block-path-refs-tx tx-report blocks))
|
(set (compute-block-path-refs-tx tx-report blocks))
|
||||||
|
|
||||||
|
@ -64,12 +63,9 @@
|
||||||
(when-let [db-id (:db/id b)]
|
(when-let [db-id (:db/id b)]
|
||||||
{:db/id db-id
|
{:db/id db-id
|
||||||
:block/tx-id tx-id})) updated-blocks)
|
:block/tx-id tx-id})) updated-blocks)
|
||||||
(remove nil?)))))
|
(remove nil?))))
|
||||||
tx-report' (or
|
tx-report' (d/transact! conn replace-tx {:replace? true
|
||||||
(when-not pipeline-replace?
|
:pipeline-replace? true})
|
||||||
(d/transact! conn replace-tx {:replace? true
|
|
||||||
:pipeline-replace? true}))
|
|
||||||
tx-report)
|
|
||||||
full-tx-data (concat (:tx-data tx-report) (:tx-data tx-report'))
|
full-tx-data (concat (:tx-data tx-report) (:tx-data tx-report'))
|
||||||
final-tx-report (assoc tx-report' :tx-data full-tx-data)
|
final-tx-report (assoc tx-report' :tx-data full-tx-data)
|
||||||
affected-query-keys (when-not (:importing? context)
|
affected-query-keys (when-not (:importing? context)
|
||||||
|
|
Loading…
Reference in New Issue