Fork me on GitHub
#datomic
<
2015-12-15
>
zentrope00:12:26

Is there any way to store “ordered” values on a card/many attribute?

zentrope01:12:19

Or do you have to add an entity with and :entity/order attribute?

domkm04:12:18

@zentrope: Nope, card many is unordered.

robert-stuttaford08:12:41

@bkamphaus: what method can i use to identify which transactor in a HA pair is the primary?

joseph13:12:18

Since DynamoDB is based on Amazon cloud service, we do not want to save the data there. Although DynamoDB has a local version, but obviously that's not recommended for production. So except DynamoDB, which storage server is recommended or perform better considering the load balance of peers?

robert-stuttaford13:12:39

you can use clustered postgresql, or the fault tolerant versions of any of the storages available, basically

joseph13:12:54

@robert-stuttaford: thanks, robert, read this article: http://martintrojer.github.io/clojure/2015/06/03/datomic-dos-and-donts/, it's said DynamoDB is the best choice, since, we decide to not to use it, what do you think of Riak?

Lambda/Sierra13:12:10

I am not aware of any testing with Datomic on clustered PostgreSQL.

robert-stuttaford13:12:22

i’ve only got experience with postgres (a single node) and ddb. never used the rest

robert-stuttaford13:12:40

ah, thanks for correcting me stuart.

Lambda/Sierra13:12:06

It might work (clustered Postgres), I just don't know if anyone has tried it.

Lambda/Sierra13:12:50

Support for SQL as a storage engine is mostly targeted at organizations that already have substantial investment in SQL infrastructure.

robert-stuttaford13:12:46

that’s as i understood it as well - which i took to mean 'at scale'

joseph13:12:39

from wiki: https://en.wikipedia.org/wiki/Riak, Riak implements the principles of AWS's DynamoDB paper

Lambda/Sierra13:12:27

Performance of Datomic will be roughly similar on any of the distributed storage engines. Cassandra is probably the most popular distributed storage among Datomic users, after DynamoDB.

Lambda/Sierra13:12:31

Whichever one you choose, read the Datomic docs carefully — improperly configured storage can lead to data loss.

joseph13:12:12

@stuartsierra: Thanks for recommendation and advices.

statonjr14:12:47

We briefly used clustered Postgres before switching to DynamoDB. We had no issues with Datomic, only with managing clustered Postgres.

statonjr14:12:27

We also tried Riak. Again, no issues with Datomic. Managing 5 Riak nodes was difficult for us.

joseph14:12:04

@statonjr: Thanks for sharing experiences.

curtosis14:12:02

the advice shared at Datomic Conf this year -- which seems both eminently wise and supported by comments here -- is to use the storage you already know. There is probably some performance differential in the limit, but operational issues with a new storage backend are far more likely to bite you, and more badly (= data loss).

joseph15:12:17

@curtosis: OK, I will keep it in mind, thanks for advices.

davebryand18:12:41

does anyone know of a hosted version of Datomic? I love it but would prefer not to take on the ops overhead. Looked around and couldn’t find anything out there

ustunozgur18:12:31

does the license allow it?

davebryand19:12:51

Is this something Cognitect would think about providing at some point?

Ben Kamphaus19:12:22

@davebryand: we are aware of the request for a hosted Datomic. I’ll note that there’s additional interest being expressed in it (you’re welcome to add your voice to the group post as well). https://groups.google.com/d/msg/datomic/Vcx7LtaK65U/-rVfFLrILPQJ

Ben Kamphaus19:12:04

In the mean time, happy to gather feedback on whether you think the ops overhead looks intimidating due to intrinsic reason (i.e. just running all the pieces), or if there are specific things unclear in docs, etc. that you’ve had trouble with.

davebryand19:12:44

thanks ben—just posted

davebryand19:12:23

After all is said and done, I probably will end up taking on the ops overhead because I truly love Datomic.

davebryand19:12:46

I had a bunch of trouble where I didn’t understand the side effects of things like ensure-transactor, for instance. When I initially ran it, I didn’t have an s3 log bucket uncommented. I got everything up and running and then decided I wanted one. Here is are my notes from that experience.

davebryand19:12:19

Basically my transactor just kept getting terminated and restarting and I had no logs to look at. It would have also been helpful to SSH into the transactor but appears to not be on that AMI

Ben Kamphaus19:12:57

right, the AMI can’t be ssh’d into. Logs can be helpful, a lot of problems can be addressed with metrics though of course if problem is getting started in the first place, logs won’t rotate and metrics won’t be put.

davebryand19:12:02

Anyway, it was a rocky few days to get things running but I think it’s stable now

davebryand19:12:10

right, no logs, no help

Ben Kamphaus19:12:13

Not sure if you reviewed this section of the docs, but the manual setup walks through everything ensure does for you: http://docs.datomic.com/storage.html#automated-setup

Ben Kamphaus19:12:51

It handles role, transactor, and permissions for table and s3 access but doesn’t create the bucket.

Ben Kamphaus19:12:12

In terms of where the boundaries are (i.e. if it’s not listed in manual setup there, ensure-transactor doesn’t do it for you).

davebryand19:12:16

Net net is that I think Datomic is the PERFECT database for most startups to use and I want less friction for my friends to try it simple_smile

davebryand19:12:26

ahhh, that’s super helpful—thanks

davebryand19:12:33

I did see that but didn’t read it closely

Ben Kamphaus19:12:04

But yeah, rolling your own stuff on AWS is definitely tricky, and navigating the docs for the different possibilties AWS + Dynamo, AWS + something else, on site + something else, mix and match AWS and Heroku, etc. — all of the different blends out there — is tricky.

davebryand20:12:59

Of course now that I’m on the other side of the experience it feels much less tricky, but yes, it was. Thanks for your help!

danielcompton20:12:34

@bkamphaus: does the Datomic license prohibit third parties providing hosted datomic?

tcrayford20:12:07

running hosted databases is hard work

tcrayford20:12:01

(it's not actually as hard as you might think though. We have much better automation than the average devops person at a startup)

tesseract21:12:29

is datomic easy to administer on heroku? i.e 3 commands and you’re up and running like heroku postgres ?

tcrayford21:12:31

noooooooooooooooooooooooooooooo

tesseract21:12:55

well I guess I have my answer simple_smile

tesseract21:12:36

that’s good to know. Is there any plan for it in the future? Or what’s the easiest way to administer it with “no hands"

tcrayford21:12:56

scroll up, but there's no currently available option for that

tcrayford21:12:16

the license prevents third parties from doing that for cognitect, and they haven't released or publicly talked about doing hosted datomic at all

magnars21:12:55

With all this talk about storage, there's one option I rarely see mentioned: the file system. Given that you take backups, is there a good reason to avoid file storage? We're not on AWS, so should I set up Cassandra just to have a "real" data store?