This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2016-12-01
Channels
- # adventofcode (1)
- # bangalore-clj (1)
- # beginners (8)
- # boot (47)
- # cider (6)
- # cljsrn (3)
- # clojure (155)
- # clojure-brasil (2)
- # clojure-china (3)
- # clojure-conj (1)
- # clojure-hk (4)
- # clojure-korea (36)
- # clojure-russia (38)
- # clojure-spec (53)
- # clojure-taiwan (1)
- # clojure-uk (14)
- # clojurescript (70)
- # clojurex (9)
- # component (2)
- # cursive (20)
- # datascript (19)
- # datomic (39)
- # defnpodcast (1)
- # events (5)
- # figwheel (2)
- # hoplon (81)
- # incanter (2)
- # jobs (7)
- # juxt (3)
- # klipse (1)
- # leiningen (1)
- # luminus (15)
- # mount (1)
- # off-topic (21)
- # om (5)
- # om-next (2)
- # onyx (19)
- # pedestal (2)
- # proto-repl (1)
- # proton (5)
- # re-frame (19)
- # reagent (4)
- # rethinkdb (2)
- # ring-swagger (6)
- # rum (13)
- # specter (6)
- # untangled (4)
- # yada (1)
@ljosa because if you have an issue in the middle of the night and you call the support team and they ask you what storage you are using and you say "dev" they hang up on you and go back to sleep
I'm not even being snarky, I literally heard that yesterday at the day of datomic training
I could have sworn it was Justin who said it, but either way, that's coming straight from the top
@ovan we used postgres at first because, quite frankly, we understood it. I’d use Dynamo from the start, if i did it again. as for transactors, i recommend using the official AMI, and not trying to do anything fancy to it (we ran a Datadog agent on ours and i think it interfered with clean instance self-termination). learn to read the cloudwatch metrics. @jaret @marshall i actually think there’s massive scope for some screencast training videos around that whole topic — how to understand what your transactor is telling you through metrics
@jaret typo a temporary cannot begin with a colon (:) character
on http://docs.datomic.com/transactions.html#creating-temp-id
@jaret or @marshall, how interoperable is 0.9.5530 with older peers / transactors? do we have to upgrade them all together, or could we e.g. upgrade peers now and transactor later or vice versa?
@robert-stuttaford Just out of curiosity, why would you choose DynamoDB over Postgres now? I'm leaning towards Postgres at the moment exactly on the same reason.
@jarppe don’t want to have to worry about RDS instances, basically
From the docs, when doing an import you need to request index and then gc-storage. After that typically, you want to do a backup (at least I do). But how does one wait for the gc-storage to complete? Is there an event in the log, or is there a better way? And is waiting for the gc to complete needed in the first place?
And related to this, is there an overview of the events that can be logged by datomic, and what they mean? I can’t find any
@casperc you can review logback.xml in the transactor download
@robert-stuttaford: I am not sure that tells me all that much. It lists some loggers, like datomic.kv-cluster, but not the events that can be thrown by that logger.
is there a way to pass a variable as unbound so that nil values can be supported?
passing nil and binding in :in throws
(d/q [:find '[(pull ?e selector) ...]
:in '$ 'selector (if id '?id '_)
:where
'[?e :job/job-id ?id]]
(d/db conn)
'[*]
id)
words but seems like there should be a more elegant way to handle nil than having to do all that quoting every time
but the following doesn’t work. assuming because ?id is actually bound to ‘_ instead of being unbound
(d/q '[:find [(pull ?e expr) ...]
:in $ expr ?id
:where
[?e :job/job-id ?id]]
(as-db conn)
'[*]
‘_)
better to just write two queries
they’re semantically different. one is; find me X where Y. the other is find me X.
alright, i get that argument, seems redundant though
@pleasetrythisathome datalog caches query compilation based on that first arg so there’s a perf benefit 🙂
when i try to connect to my running peer-server I get :cognitect.anomalies{:category :cognitect.anomalies/fault}
, anybody have an idea what's going on?
Say, given a possibly erroneous lookup reference like [:user/id 42]
, is there an easy way to validate that it points to a real entity short of something like (try (d/entity lookup-ref) (catch ....))
?
Answering my own question, looks like (d/entity)
returns nil
if :user/id
is a valid attribute, and throws IllegalArgumentExceptionInfo
if it is not
@robert-stuttaford Thanks for catching the typo. In terms of interoperability you can upgrade piecemeal as described in the docs. http://docs.datomic.com/deployment.html#upgrading-live-system
So you can upgrade the peers and transactors in any order you choose as long as its not on one of those ^ releases
excellent thank you @jaret!
Say, does the in-memory database operate in a different thread or something? I'm seeing some seemingly non-deterministic behavior where in a test I create two entities and then validate that some metadata I attached to the transactions is present
Most of the time it works, but every now and then my new transactions don't appear in the history. Adding a (Thread/sleep 1000)
to the test seems to have stabilized it, though
On an unrelated note, looks like there's a typo in the docstring here: http://docs.datomic.com/clojure-client/index.html#datomic.client.admin/list-databases Async, sell alos datomic.client namespace doc.
Think it's meant to be see also datomic.client...