This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-03-23
Channels
- # beginners (63)
- # cljs-dev (1)
- # cljsjs (1)
- # cljsrn (11)
- # clojure (208)
- # clojure-berlin (2)
- # clojure-dusseldorf (5)
- # clojure-italy (5)
- # clojure-norway (56)
- # clojure-russia (7)
- # clojure-spec (85)
- # clojure-uk (27)
- # clojurescript (191)
- # core-async (73)
- # cursive (4)
- # datomic (62)
- # defnpodcast (1)
- # hoplon (2)
- # jobs-rus (1)
- # juxt (14)
- # keechma (1)
- # leiningen (1)
- # lumo (126)
- # off-topic (2)
- # om (11)
- # onyx (27)
- # pedestal (52)
- # planck (21)
- # powderkeg (1)
- # re-frame (32)
- # reagent (14)
- # ring-swagger (1)
- # rum (3)
- # slack-help (19)
- # specter (23)
- # untangled (32)
- # vim (7)
- # yada (43)
hello, is the datom seq obtained from (datoms db :aevt :attr)
guaranteed to be ordered by datom transaction time?
during imports (using async tx-pipeline), at a certain point the transactor became unavailable and never recovered. Is there a likely culprit?
that’s a good question. Unfortunately, I was pairing with someone and didn’t think to look at transactor log at the time on his computer
I’d guess OOM on the transactor then if the peer didn’t recover but the import process was still working
should that be expected when attempting to run large imports on a dev computer (you, know potentially limited resources)? or are we not configured correctly?
it should be expected if your working set is larger than the configured available memory 🙂
@dm3 the order of datoms is determined by the particular index you’re using. the only one that is fully ordered by t is the log
New Datomic Training Videos and Getting Started Documentation: http://blog.datomic.com/2017/03/new-datomic-training-videos-and-getting.html
Am I right in thinking that there is only 1 tx-report-queue per client? And if I want to subscribe in multiple places I'll need a pubsub implementation?
There is only one tx report queue per peer per connection. You don't need pubsub necessarily, you could just have one listener that multiplexes
@spieden I'm ETL'ing datomic -> sql. But in the near future we need to do start reacting in a streaming manner to transactions too (I've admittedly forgotten what for)
Hi, quick question. I'm looking to deploy a transactor in an enterprise setting and ops is asking what ports are required and why. Are all three, 4334, 4335 and 4336, required for peers and is there a short description of what they are used for. Thanks.
@spieden writing to a side table for every tx, within a sql transaction. Should let me reliably catch up & resume.
@spieden Yup. If a write ever fails, the checkpoint never goes in. So there's no problem. Datomic's log is ordered, so no problem there either.
I'm probably not going to use the data from the transaction queue, just use it as a "wake up"
@juliobarros port 4334 is the transactor port (peer to transactor communication). On non-dev storage that is all you need
@juliobarros 4335 is for dev storage only. It's an sql endpoint to the embedded h2 database in the transactor that runs when you use dev storage
@juliobarros 4336 is for dev storage only. It is a browser-based sql management interface to the embedded h2 db
Thanks @favila do you know why host is specified in the transactor properties file? What it is used for? We'll be using docker in an env where host names may be fluid.
The host and alt-host are written into storage as names the peer should resolve to contact the transactor
the peer connection process is 1) connect to storage 2) read magic heartbeat record written into storage by the active transactor for that storage (includes host and alt-host) 3) connect to host or alt-host (it tries both)
@favila hmmm ok. I get the heartbeat part. But how does this all relate to the host in the connection URL? Thanks again btw.
The host in the connection url is the STORAGE host. The host in the transactor.properties is the TRANSACTOR host
Ah. Ok. Thanks.
sorry. dumb question, but is there a similar idea to materialized views in datomic?
@favila or anyone who knows. I have to proxy the peer transactor connections through a load balancer. But setting the host to be the loadbalancer (so that the peer can find it by reading the magic record in the db) causes activemq not connected errors.
@juliobarros I don't have any advice except verify the load balancer is working correctly
Yeah just to forward. It's working fine. It looks like a host alt-host ('internal' vs 'external' up) issue. Going to try and swap their settings.
@juliobarros that should not make a difference, both are tried
By the peer. But the current issue is with activemq.
transactor.properties host=http://foo.org is so peer can connect to transactor via http://foo.org
alt-host is just so you can give a different ip/dns by which you can connect to the same transactor
Ah. Ok. So maybe a socket issue at the LB. (like you suggested) let me investigate. Thanks.