Przeglądaj źródła

Bump datascript

This version reuses addresses to reduce writes and make GC easier
Tienson Qin 2 lat temu
rodzic
commit
dd2f1014eb
4 zmienionych plików z 18 dodań i 24 usunięć
  1. 2 2
      deps.edn
  2. 1 1
      deps/db/deps.edn
  3. 1 1
      deps/outliner/deps.edn
  4. 14 20
      src/main/frontend/db_worker.cljs

+ 2 - 2
deps.edn

@@ -3,8 +3,8 @@
  {org.clojure/clojure                   {:mvn/version "1.11.1"}
   rum/rum                               {:mvn/version "0.12.9"}
 
-  datascript/datascript        {:git/url "https://github.com/logseq/datascript" ;; fork
-                                :sha     "36f42d700bdbb35220ad4cf9423788041bcecb30"}
+  datascript/datascript                 {:git/url "https://github.com/logseq/datascript" ;; fork
+                                         :sha     "15234c650df20844ec089c1738d28c00eccacd6e"}
 
   datascript-transit/datascript-transit {:mvn/version "0.3.0"}
   borkdude/rewrite-edn                  {:mvn/version "0.4.7"}

+ 1 - 1
deps/db/deps.edn

@@ -1,7 +1,7 @@
 {:deps
  ;; 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
-                         :sha     "36f42d700bdbb35220ad4cf9423788041bcecb30"}
+                         :sha     "15234c650df20844ec089c1738d28c00eccacd6e"}
   com.cognitect/transit-cljs   {:mvn/version "0.8.280"}
   cljs-bean/cljs-bean          {:mvn/version "1.5.0"}}
  :aliases

+ 1 - 1
deps/outliner/deps.edn

@@ -1,7 +1,7 @@
 {:deps
  ;; 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
-                         :sha     "36f42d700bdbb35220ad4cf9423788041bcecb30"}
+                         :sha     "15234c650df20844ec089c1738d28c00eccacd6e"}
   logseq/db             {:local/root "../db"}
   com.cognitect/transit-cljs {:mvn/version "0.8.280"}}
  :aliases

+ 14 - 20
src/main/frontend/db_worker.cljs

@@ -2,7 +2,6 @@
   "Worker used for browser DB implementation"
   (:require [promesa.core :as p]
             [datascript.storage :refer [IStorage]]
-            [cljs.cache :as cache]
             [clojure.edn :as edn]
             [datascript.core :as d]
             [logseq.db.sqlite.common-db :as sqlite-common-db]
@@ -71,7 +70,6 @@
 (defn upsert-addr-content!
   "Upsert addr+data-seq"
   [repo data delete-addrs]
-  ;; (prn :debug :delete-addrs delete-addrs :data data)
   (let [^Object db (get-sqlite-conn repo)]
     (assert (some? db) "sqlite db not exists")
     (.transaction db (fn [tx]
@@ -94,24 +92,20 @@
       (edn/read-string content))))
 
 (defn new-sqlite-storage
-  [repo {:keys [threshold]
-         :or {threshold 4096}}]
-  (let [_cache (cache/lru-cache-factory {} :threshold threshold)]
-    (reify IStorage
-      (-store [_ addr+data-seq delete-addrs]
-        (util/profile
-         "SQLite store"
-         (let [data (map
-                     (fn [[addr data]]
-                       #js {:$addr addr
-                            :$content (pr-str data)})
-                     addr+data-seq)]
-           (upsert-addr-content! repo data delete-addrs))))
-
-      (-restore [_ addr]
-        (util/profile
-         "SQLite restore"
-         (restore-data-from-addr repo addr))))))
+  [repo _opts]
+  (reify IStorage
+    (-store [_ addr+data-seq delete-addrs]
+      (util/profile
+       (str "SQLite store addr+data count: " (count addr+data-seq))
+       (let [data (map
+                   (fn [[addr data]]
+                     #js {:$addr addr
+                          :$content (pr-str data)})
+                   addr+data-seq)]
+         (upsert-addr-content! repo data delete-addrs))))
+
+    (-restore [_ addr]
+      (restore-data-from-addr repo addr))))
 
 (defn- close-db!
   [repo ^js db]