Hacker News new | past | comments | ask | show | jobs | submit login
Rich Hickey on Datomic Ions [video] (youtube.com)
147 points by alpeware on Sept 17, 2018 | hide | past | favorite | 20 comments



In our experience Datomic has been quite the disappointment. Datalog is great, the rest is less so. Off the charts and unpredictable memory consumption, slow queries with no hope of optimization (we're talking 2.3seconds/100k rows) unexplainable dataloss. So many great ideas, sketchy implementation. Cant say if the Cloud version is better, we never tried.


Oooops, you forgot the first rule of Datomic license: Thou shall not talk about the Datomic (un)performance!


Yep, for how much they are involved in the open source community, it's fairly disappointing this is not allowed:

https://www.datomic.com/on-prem-eula.html

"[The licensee will not] (j) publicly display or communicate the results of internal performance testing or other benchmarking or performance evaluation of the Software; "

I wish they wouldn't do this, it seems that they simply do not want to talk about this topic, even though the reason people usually choose Datomic is not performance but rather its abstractions -- so why the hostile attitude?


I think they've said before that they don't want someone saying the performance sucks when it is really just a bad query or something else that isn't the databases fault...this is usually the reason why talking about performance is outlawed.


But an analogous situation holds for almost all performance benchmarks of any product right? That seems to be an argument against ever making any benchmarks public.


I don't agree with it.


> simply do not want to talk about this topic

I wonder if there are many respectable companies that don't allow you to post benchmarks. It's almost as if they don't have any confidence in their product that they have to resort to such extraordinary measures.


Oracle, Microsoft. They're called "DeWitt clauses", after the researcher who first invoked Oracle's wrath after publishing benchmarks and finding them to be the slowest. Read on:

* more about DeWitt: https://en.wikipedia.org/wiki/David_DeWitt#The_%22DeWitt_Cla...

* an overview of database licenses with such a clause today: https://stackoverflow.com/a/12116865/1376005

* an essay discussing the legality of such clauses, with links to further material on/about them: https://www.dwheeler.com/essays/dewitt-clause.html


For the unfamiliar:

> The Licensee hereby agrees, without the prior written consent of Cognitect, which may be withheld or conditioned at Cognitect’s sole discretion, it will not: [...] (j) publicly display or communicate the results of internal performance testing or other benchmarking or performance evaluation of the Software; [...]

https://www.datomic.com/on-prem-eula.html

I.e., the Oracle approach.


That sounds like a valuable experience report to write up and link to!


But they promise this new product (Datomic Cloud which is incompatible with traditional Datomic called on-premise) will solve all your performance issues because they have taken the work of doing all the AWS for you.


I’m curious about the reasons someone would use Datomic. Did you just tried it out to evaluate it or did you have an actual use case for it? If you did have one, would you be okay to elaborate?


It's extremely tied to the Clojure community. Odds are if you write the language, you'll be pointed in that direction, even if you ask for a recommended PostgreSQL library.

It's something I struggled with - I can get any language over the line here but it's got to work with our existing data sets.


Out team chose Datomic for it's graph like properties and emphasis on data locality. This is optimal for GraphQL style patterns where you'd otherwise join a million tables


There are indexed attributes, isn't it a hope?


i'd like to second and third this experience


I was very excited about Datomic as well, but disappointed it wasn't Open Source.

I decided to fix that + build something that combines my favorite features from Postgres, Mongo, Neo4j, Couch/Pouch, Riak, Cassandra, Redis, Rethink, Firebase, and MySQL! Lol, it has only taken me 4 years and ~ still not v1.0 yet but the Internet Archive (Top 300 site in the world!) and others are running us in production. So give it a try - it is all MIT/Zlib/Apache2 licensed ( https://github.com/amark/gun ), no crippleware "opencore", and fast (20M ops/sec for cached data, which Datomic also does, but IDK their benchmarks off the top of my head).


This is about a feature of the Datomic database called Ions, which appear to be analogous to stored procedures (e.g. running Clojure functions in the db). From reading https://docs.datomic.com/cloud/ions/ions.html, that's an oversimplification, but I didn't know what it was so figured I'd save someone a search.


Transaction functions were always part of datomic, even when running it outside of AWS. I think of Ion as a tool that wraps all the complex insanity of AWS so you can write an app as closely as possible to how you'd write a traditional Clojure app meant to run on a single server. In that sense it's not even specifically about datomic... You can even choose not to use it as your database, but of course then you'll be on your own as far as scaling your db.


These is really nice for some, but on the other side, I'm worried the peer is going to be considered legacy.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: