This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2022-09-28
Channels
- # babashka (48)
- # babashka-sci-dev (7)
- # beginners (123)
- # calva (32)
- # cider (5)
- # clara (20)
- # clj-kondo (3)
- # cljdoc (2)
- # cljs-dev (1)
- # clojure (113)
- # clojure-dev (5)
- # clojure-europe (65)
- # clojure-norway (23)
- # clojure-spec (4)
- # clojure-uk (4)
- # clojurescript (33)
- # cursive (3)
- # datalevin (39)
- # datomic (2)
- # emacs (14)
- # events (1)
- # fulcro (10)
- # graphql (5)
- # humbleui (2)
- # integrant (4)
- # introduce-yourself (3)
- # jobs (1)
- # jobs-discuss (11)
- # kaocha (26)
- # leiningen (6)
- # malli (24)
- # nbb (2)
- # off-topic (69)
- # pathom (77)
- # podcasts-discuss (2)
- # reitit (8)
- # remote-jobs (2)
- # sci (17)
- # scittle (8)
- # squint (1)
- # xtdb (43)
I'm going to take a look at https://github.com/juji-io/datalevin/issues/98 . cc @huahaiy, @denik
I use Calva and it formats deps.edn automatically. is it ok if I format the whole file? I don't know how you format the file. Did some efort to not break formatting but it's hard
ok 🙂 then we can close https://github.com/juji-io/datalevin/issues/98 . I saw github actions is done
merging did not close the issue https://github.com/juji-io/datalevin/issues/98
@huahaiy: I would like to try and implement one of : https://github.com/juji-io/datalevin/issues/109 and https://github.com/juji-io/datalevin/issues/108 . I think I would start with 108 first. Do you have any directions for me?
More specifically, I am not sure we want to change the existing API. We will probably want to add a new one. Any ideas on how this should look? I am getting familiar with the API now
Right, we will add new functions for these functionality. For Datalog query, Datomic has qseq
, so we should probably support that. Basically, query results are in a lazy seq. Similarly, for KV, we can have get-range-seq
corresponding to get-range
that returns a lazy seq, range-filter-seq
, and so on.
We would normally discourage people to use the seq
version of the functions, because it will hold a read transaction, the db will grow very fast if we hold too many of these
either sart-transaction / end-transaction or via (with-open txn (start-transaction params) )
The need to have (with-transaction ..)
is to ensure atomicity when there are both read/write.
A casual user should not be aware of the ideas of transactions at all. Simplicity is the goal of this project.
Using (with-transaction ..)
instead of (start-transaction …)
, is to enforce the idea that a transaction should be something short and well contained.
range-seq
is now implemented for embedded mode. It lazily loads data into memory in batches, implements Seqable
, as long as one does not hold the head, process data as they come in, it should not blow up memory.