This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2021-12-23
Channels
- # adventofcode (21)
- # announcements (4)
- # babashka (35)
- # beginners (36)
- # calva (76)
- # cider (16)
- # clj-kondo (24)
- # clj-on-windows (12)
- # clojure (70)
- # clojure-europe (7)
- # clojure-nl (13)
- # clojure-spec (3)
- # clojure-uk (3)
- # clojurescript (34)
- # conjure (11)
- # cursive (22)
- # datomic (30)
- # deps-new (2)
- # emacs (36)
- # fulcro (28)
- # gratitude (4)
- # honeysql (16)
- # hugsql (8)
- # introduce-yourself (6)
- # jobs (1)
- # malli (4)
- # missionary (6)
- # off-topic (129)
- # other-languages (34)
- # polylith (3)
- # reagent (9)
- # reitit (27)
- # releases (13)
- # remote-jobs (1)
- # reveal (1)
- # shadow-cljs (2)
- # tools-build (3)
- # tools-deps (18)
- # web-security (7)
- # xtdb (4)
I'm guessing that's not a good fit. A pod doesn't persist state between failure. The guess here is that a transactor needs to hold state.
this would be relevent https://docs.datomic.com/on-prem/operation/ha.html
give you can run two transactors to provide HA then maybe a pod is fine, and you could get HA by using datomic pro.
I'm reeling at the idea of trying to make that work vs just using datomic cloud though.
For development we run both the transactor and the peer in docker containers. It seems to work; but it's not a production environment at all.
Cool, thanks y'all... I think the only concern is probably ensuring that it gets enough RAM. To me it sounds perfectly suited for a pod. You have failover, it doesn't persist to disk, and if you're already on kubernetes, it greatly simplifies deployments between environments.
Well, the transactor certainly writes to disk if you're using any fulltext attributes OR if you're using Valcache with the transactor. You may be able to configure a pod to have an ephemeral NVMe SSD for Valcache, I'm not sure.
Why would I be getting Error communicating with HOST datomic-service on PORT 4334
My kubernetes transactor pod is connecting to postgres and writing its location to storage, in the cluster the service address is datomic-service
.
port 4334 is exposed
root@lms-app-65bf78f8db-q5z95:/usr/src/app# telnet datomic-service 4334
Trying 10.100.252.126...
telnet: Unable to connect to remote host: Connection refused
root@lms-app-65bf78f8db-q5z95:/usr/src/app# telnet datomic-service 4330
Trying 10.100.252.126...
so datomic-service
needs to resolve to postgres for peers, or else you can add alt-host=
with an alternative hostname
host=
is also the bind address for the transactor. What does datomic-service
resolve to on the transactor? Did the transactor start up correctly?
Launching with Java options -server -Xms1g -Xmx1g -XX:+UseG1GC -XX:MaxGCPauseMillis=50
Starting datomic:sql://<DB-NAME>?jdbc:, you may need to change the user and password parameters to work with your jdbc driver ...
System started datomic:sql://<DB-NAME>?jdbc:, you may need to change the user and password parameters to work with your jdbc driver
is “resolves to itself” specifically what IP address? The exact same one: 10.100.252.126?