I created a new datomic cloud solo stack deployment today in AWS in support of exploring the https://github.com/Datomic/ion-starter project. After stepping through the starter connection steps, there were 2 CloudWatch alarms:
ConsumedReadCapacityUnits < 750 for 15 datapoints within 15 minutes
ConsumedWriteCapacityUnits < 150 for 15 datapoints within 15 minutes
A third CloudWatch alarm showed up sometime after I tried to deploy ions:
JvmFreeMb < 1 for 2 datapoints within 2 minutes
Could these alarms be the cause of the ion deploy failing?
@nisley No, likely unrelated. Those are the Dynamo DB scaling alarms. If you have been unable to deploy it's unlikely that you're getting far enough for DDB to be a factor as those alarms will fire when you exceed read and write capacity on a Dynamo DB. To diagnose your failure, you'll want to look in a few places: 1. The Code Deploy console (you can drill into the failure and find out which step it failed on) 2. CloudWatch logs for the ion deploy exception. You can find these logs by searching your CloudWatch console for datomic-<systemname>. Shown in our docs https://docs.datomic.com/cloud/troubleshooting.html#troubleshooting-ions
Ok, thank you. I saw a CodeDeploy message about health of nodes, which made me wonder if the Alarms were preventing the deploy.
Hi friends, I'm working on a retry+backoff for the :cognitect.anomalies/unavailable
"Loading Database" exception that we get after ion restarts. If this is a common issue like the troubleshooting docs suggest, I'm wondering how others are handling this. My current approach when getting the connection with d/connect
is to try/catch when performing a simple check if the connection is active (something like (d/db-stats (d/db conn))
). I've also considered doing a d/q
query for some specific datom that I know is present. Any thoughts or other ideas?
you might want to ask on https://ask.datomic.com
Ok, thanks @alexmiller, here's the question on the forum https://ask.datomic.com/index.php/486/approach-connection-cognitect-anomalies-unavailable-exceptions
Is there anywhere specified the logic that Datomic uses to get the data from the storage server to the peer (whether it's in process or a separate server)?
The peer reads storage directly for whatever it needs
@favila I heard around in some videos that the Transactor pushes the updates?
It broadcasts just-completed txs to already connected peers, but not index data