This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
- # admin-announcements (3)
- # beginners (133)
- # boot (123)
- # capetown (2)
- # cider (21)
- # cljs-dev (1)
- # cljsrn (2)
- # clojure (32)
- # clojure-czech (1)
- # clojure-russia (2)
- # clojure-spec (72)
- # clojurescript (4)
- # datomic (28)
- # emacs (19)
- # funcool (1)
- # hoplon (10)
- # jobs-rus (1)
- # onyx (1)
- # other-languages (3)
- # protorepl (3)
- # re-frame (10)
- # reagent (76)
- # ring (2)
- # rum (2)
- # spirituality-ethics (61)
- # test-check (2)
- # testing (1)
- # untangled (3)
I’ve got a terraform module which from my understanding sets up a more or less identical system on AWS as the datomic scripts. It ended up being pretty succinct and readable.
Only tedious bit was the transactor bootstrap/userdata script which i converted to a terraform template. Because I essentially copied the userdata script produced by datomic scripts I wasn’t sure if I could share it publicly.
is it possible to connect to a datomic database while the transactor is unreachable?
@codonnell: I honestly don't know. I just tried now with dev protocol. Even if you tried and it worked with RDS, I don't know what the nuances are, so better wait for an authoritative answer
@codonnell: Not sure how helpful this is, but here it says "Transactor does not participate in queries. Peers with no transactor connection can still do reads from storage": http://tonsky.me/blog/unofficial-guide-to-datomic-internals/
@yonatanel: yeah, I think I heard that somewhere in the datomic tutorial videos. That page looks like a nice resource, though. I'll definitely look through it. If I try to connect to the database from a box that can't reach the transactor, I get an exception (reasonable behavior). I just want to know if there's a way to get my peer to ignore the transactor and set up a kind of "read-only" connection.
@codonnell, @yonatanel: peers connect to storage first, which has the connection details for the primary and backup transactors. this is how failover is possible 🙂
have you tried connecting to storage with your transactor down, and issuing only queries?
@robert-stuttaford: Yeah, I tried connecting to storage, and I got
CompilerException clojure.lang.ExceptionInfo: Error communicating with HOST x.x.x.x on PORT 4334
i don't think it'll work, but it's worth trying. when first connecting to a database, peers have to grab the latest in-memory live indexes, which the transactor has, but storage does not. this may prevent reads against 'now' dbs. you may be able to read from the past
the live indexes have to live there (and in all peers) because they haven't made it to storage yet. that's what indexing's job is: integrating all live index into storage
@codonnell: You can’t start up a connection to a Datomic DB without access to the transactor. It is possible that under certain circumstances, loss of connectivity to the transactor will not prevent peers from running queries, but this is not guaranteed behavior, and it will depend on specifics of storage/config/deployment/etc
@marshall: Alright, thanks for the definitive answer. Given what @robert-stuttaford mentioned about live indexes living on the transactor and each live peer, it makes a lot of sense.
@mrmcc3: any chance you could put that up as a gist or on github? that would be tremendously helpful
I'm not too comfortable with the default CF-based set up where you can't ssh into the machines and tail logs in realtime