This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2018-12-13
Channels
- # adventofcode (84)
- # aleph (1)
- # announcements (2)
- # aws (27)
- # beginners (52)
- # braveandtrue (2)
- # calva (440)
- # cider (7)
- # clara (2)
- # cljdoc (26)
- # cljs-dev (70)
- # clojure (131)
- # clojure-berlin (4)
- # clojure-brasil (1)
- # clojure-europe (2)
- # clojure-greece (4)
- # clojure-hamburg (1)
- # clojure-italy (4)
- # clojure-losangeles (6)
- # clojure-nl (14)
- # clojure-spec (7)
- # clojure-uk (25)
- # clojurescript (26)
- # component (2)
- # cursive (13)
- # datomic (60)
- # dirac (59)
- # docker (1)
- # figwheel (1)
- # figwheel-main (2)
- # fulcro (12)
- # graphql (5)
- # juxt (33)
- # leiningen (19)
- # nrepl (1)
- # off-topic (37)
- # protorepl (2)
- # re-frame (18)
- # reagent (46)
- # remote-jobs (1)
- # ring-swagger (1)
- # shadow-cljs (88)
- # sql (10)
- # tools-deps (64)
- # vim (24)
Is it possible to specify a creds profile for S3 deps? I.e.,
:mvn/repos {"datomic-cloud" {:url ""}}
Docs at https://clojure.org/reference/deps_and_cli, search for maven s3
Q: what’s everyone doing for composite unique keys in Datomic these days? I’m thinking of using a unique string attribute with value concatenated to let the transactor check it but wondering if anyone has uncovered a better trick lately?
That’s the best I’ve seen.. and some transaction function helpers for upserting or conflict checking
sorry for the repost, but i was just wondering if anyone has experienced their ions intermittently throwing java.io.IOException: Connection reset by peer
exceptions behind an API Gateway? in my case it's a single ion that routes web requests. i've checked the CloudWatch logs for the routing ion, but nothing stands out.
Same problem here, no explanation.
Thanks. Yes I have the same thing currently but it is pretty complex and can be difficult to debug so I’m exploring other options.
Also, it’s harder to convert these exceptions into friendly user-facing messages so that’s another reason to find an alternative. Right now I’m thinking a combination of a query in the peer and a unique attribute as a fallback
is there a reason that query timeouts generate an exception with :cognitect.anomalies/category :cognitect.anomalies/incorrect
instead of :cognitect.anomalies/interrupted
? or am I misinterpreting what 'interrupted' means?
I see
sandbox.core=> (<!! (d/q {:query '[:find ?e
:where [?e :db/doc]]
:timeout 1
:args [(d/db conn)]}))
#:cognitect.anomalies{:category :cognitect.anomalies/interrupted, :message "Datomic Client Timeout"}
sandbox.core=>
@marshall So now we have implemented lazy client initialization as recommended, and the deploy succeeds, but we're getting a #:cognitect.anomalies{:category :cognitect.anomalies/unavailable :message "Loading database"}
upon lambda invocation (reported by alert: "IonLambdaException"
).
What can we do about this?
The exception is thrown after about 1 min, and the trace contains:
[
"datomic.client.impl.local.Client",
"connect",
"local.clj",
85
]
production
I'm thinking this may be due to switching to on-demand provisioning on DynamoDb
I have no experience with that; I would hesitate to use it until we’ve tested it with Datomic
loading a database requires reading from dynamo to retrieve the log tail; if there’s a delay there (i don’t know how the new provisioning thing works) it would slow that process
in general the unavailable due to loading database will resolve and should be retried
Got it, thanks. What are the recommended Dynamodb settings fro production ?
Great, thank you! I'm seeing the screenshot all right
If you need some write capacity upfront, because you're ingesting a ton of data, is it worth fiddling with minimum write capacity, or should you leave it well enough alone and wait for auto scaling to kick in?
Scaling will get you there eventually but if you know you're doing an import, you can bump it a bit and get a head start
Usually means less headache around making sure your import has long enough retry backoff etc
Good to know
Does moving from solo to prod or some other better tier of datomic cloud help with ::cognitect.anomalies/busy issues when transacting data into the db, or is the transactor rate limited in that direction? The documentation at https://docs.datomic.com/cloud/troubleshooting.html#busy indicates that expanding the capacity of your system only helps with reads, not writes. Is this correct?
you’ll be moving from a very small (t2.small) instance to a fairly substantial one (either i3.large or i3.xlarge)
great, thanks
Is there supposed to be anything that needs to be done with API Gateway or Lambdas after my first CloudFormation stack upgrade?
nevermind, figured it out. The Lambda had changed name and needed to be rebound from API Gateway.
is it possible to just deploy the separate Compute and Storage CloudFormation stacks from the start, rather than starting with the "unified" template from AWS Marketplace? When we switch to the production topology I'd like to start off that way unless there's strong reasons not to.
Video from the Day of Datomic at Strange Loop is available at https://www.youtube.com/watch?v=yWdfhQ4_Yfw&list=PLZdCLR02grLoMy4TXE4DZYIuxs3Q9uc4i