This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-11-15
Channels
- # beginners (97)
- # boot (54)
- # cider (13)
- # cljs-dev (3)
- # cljsrn (9)
- # clojure (64)
- # clojure-berlin (1)
- # clojure-brasil (119)
- # clojure-dev (3)
- # clojure-france (5)
- # clojure-greece (1)
- # clojure-italy (5)
- # clojure-madison (1)
- # clojure-russia (15)
- # clojure-spec (25)
- # clojure-uk (57)
- # clojurebridge (5)
- # clojurescript (45)
- # code-art (1)
- # community-development (17)
- # cursive (24)
- # datomic (83)
- # emacs (11)
- # fulcro (70)
- # hoplon (7)
- # immutant (3)
- # leiningen (19)
- # luminus (5)
- # lumo (25)
- # onyx (123)
- # other-languages (7)
- # pedestal (2)
- # re-frame (12)
- # ring (15)
- # ring-swagger (51)
- # shadow-cljs (89)
- # spacemacs (23)
- # sql (4)
- # unrepl (57)
- # utah-clojurians (1)
- # vim (1)
Anyone else having issues testing with datomic? Running locally "datomic:
we get the error:
datomic.api/create-database api.clj: 19
datomic.Peer.createDatabase Peer.java: 117
...
datomic.peer/create-database peer.clj: 764
datomic.peer/create-database peer.clj: 772
datomic.peer/send-admin-request peer.clj: 752
datomic.peer/send-admin-request/fn peer.clj: 760
datomic.connector/create-transactor-hornet-connector connector.clj: 320
datomic.connector/create-transactor-hornet-connector connector.clj: 322
datomic.connector/create-hornet-factory connector.clj: 142
datomic.connector/try-hornet-connect connector.clj: 110
datomic.artemis-client/create-session-factory artemis_client.clj: 114
org.apache.activemq.artemis.core.client.impl.ServerLocatorImpl.createSessionFactory ServerLocatorImpl.java: 799
org.apache.activemq.artemis.api.core.ActiveMQNotConnectedException: AMQ119007: Cannot connect to server(s). Tried with all available servers.
type: #object[org.apache.activemq.artemis.api.core.ActiveMQExceptionType$3 0xacdff3a "NOT_CONNECTED"]
clojure.lang.ExceptionInfo: Error communicating with HOST 172.31.8.99 or ALT_HOST 52.64.171.90 on PORT 4334
We found the problem. We had used a backup of our database that still had heartbeat information. Unfortunately the transact or had died and could no longer be resolved on the last used ip addresses. (A new transactor replaced the crashed one with new ips)
Andre, I believe you logged a case last night and I replied, but can you confirm that the peer machine can communicate to the HOST and ALT HOST (set in transactor properties file)? http://docs.datomic.com/deployment.html#peers-fail-connect-txor
im trying to go through the day-of-datomic tutorial but i dont know where to run the repl from. when i run it from the root of the day-of-datomic repo the first require statement fails because theres no datomic on the classpath. and if i run it from the bin/repl where i installed the free datomic in the datomic getting started guide it complains that there is no datomic.repl on the classpath.
@U2J4FRT2T that's the line that fails because datomic isn't on the classpath
thanks anyway for the quick response @U2J4FRT2T
Anyone have an insight into this one? https://groups.google.com/forum/#!msg/datomic/gga9PUYj73I/Z3-fsXbpAwAJ
I’m trying to optimize Datomic peer performance and going around with different JVM options, was wondering if there’s any “known to be good” values where I could start from?
to me it looks like +UseParallelGC
seems to be better for performance with less deviation than +UseG1GC
which was kinda surprising to me
another thing I’ve noticed is that Datomic seems to enforce the amount of query threads to be equal to the amount of cores it sees
I wonder if that value can be tuned somehow? I do not see any properties in the Datomic documentation here http://docs.datomic.com/system-properties.html
I'm having trouble connecting to a transactor running on AWS using the CloudFormation template. Does anyone know what value should I have for the host
in my transactor.properties
?
I'm trying to connect from a peer running in Elastic Beanstalk. It's using the datomic-aws-peer
instance profile, which includes four dynamo permissions in its policies.
The transactor instance is running in a security group called datomic
, which allows TCP ingress on port 4334.
the host should be set to the externally reachable IP of the transactor machine. You’ll want to confirm you can reach that host IP from your peer machine.
you can put the machine VM hostname in the host property and optionally use the internal/private hostname IP in the alt-host property to ensure that it uses both.
@U053032QC if you’re launching the stack ‘manually’ then you’ll need to do what Jaret mentioned
If your transactor is up and running (can confirm with CW metrics and/or logs), then you only need to specify the storage URI in your peer
I don't really see how I can set it to the IP of the machine it's running on, as the transactor.properties
file is used to create the CloudFormation stack that in turn spins up the machine, so there's no way to know the IP in advance.
I've read that the peer gets the URI from the storage, in which case what is the host
property for?
if you run the stack with the bin/datomic create-cf-stack
command it will put in the correct address
the transactor is running fine. maybe it's a security problem, the docs said all the security groups were also set up by those tools but maybe there's something that isn't working
you should launch your peer process with the aws role specified in the configuration
ActiveMQNotConnectedException[errorType=NOT_CONNECTED message=AMQ119007: Cannot connect to server(s). Tried with all available servers.]
i think it makes sense to me, there is nothing to say that the peer should be able to connect to the transactor
i figured that datomic-aws-peer
role would provide access but i now realise that's just an assumption i made up
btw i've been able to connect from EBS now, and if i allow ingress from the internet I can connect locally as well, so it's all working perfectly. thanks!
You can specify the query pool thread count with the datomic.queryPool
property. For example:
-Ddatomic.queryPool=6
Our official recommendation is the G1GC. I can imagine varying peer workloads benefiting from other GC options, but since the peer is your application, that will definitely depending on your specific code and usage
Default object cache is 1/2 of the heap Again, depending on what your workload looks like you may want to tweak that
http://docs.datomic.com/caching.html and http://docs.datomic.com/capacity.html have some general info
Our data sizes is at least currently relatively small but the structure is complex and so are the queries
We are building a knowledge graph solution on top of Datomic and trying to find out how well it works out
Had a random conceptual question. Is it possible to do atomic transactions that involve a read and a write? E.g. suppose I have multiple threads or peers trying to increment an int attribute on some entity ? All the examples I've seen with transactions are simply asserting some new value, but that doesn't take into account the current value. Thanks!
@quan.ngoc.nguyen You're looking for transaction functions: http://docs.datomic.com/database-functions.html
I'm sure your example was just that, an example, but, to be clear, storing an incrementing number is probably not the best fit.
@potetm thanks for the tip!