Live data from Hacker News

Datomic Free Edition

blog.datomic.com

71–80 of 81 posts

Re: Datomic Free Edition

#72
post #24
post #23

My nutshell answer to "What is datomic?": It is a database system for Java or Clojure where not all of the database code runs on the server. Instead, the server is fast and "dumb" and all the work for your queries runs on each client individually, which just cache chunks of data from the servers as needed. It turns out having your queries run on the clients has nice properties in terms of query language power and per…

Also in the revolutionary category, all data is treated as immutable, and what we traditionally consider an update to a piece of stored data (with the change being made in-place of the original datum) is treated as a new fact with just the time being different (a new record with the change in value is created along with the time of change). Since data is never changed, only added, there is no need for the traditional…

How is that revolutionary ? Time series databases have been around for years (have a look at KDB as an example).

Re: Datomic Free Edition

#73
post #53

So basically, it is a triple-store with keeps track of time and no mutation of past. They have their own query language but it looks to me that they did a great job at making it as close to SPARQL as possible, which personally I am familiar with. Pretty neat stuff.

It is important to understand that datalog is not a new query language. It is an old one, with a strong pedigree. It has power equivalent to the relational model plus recursion. SPARQL is cool, and they did a good job making it look a little like datalog.

SPARQl1.0 is equivalent to a datalog without recursion. Wonder what SPARQL 1.1. with property paths is equivalent too. Any way a hobby project idea I won't have time for is implement the datomic api on top of a systap bigdata quad store.

Re: Datomic Free Edition

#74
post #72
post #24

Earlier quoted context omitted.

Also in the revolutionary category, all data is treated as immutable, and what we traditionally consider an update to a piece of stored data (with the change being made in-place of the original datum) is treated as a new fact with just the time being different (a new record with the change in value is created along with the time of change). Since data is never changed, only added, there is no need for the traditional…

How is that revolutionary ? Time series databases have been around for years (have a look at KDB as an example).

I stand corrected. Please replace "revolutionary" with "great feature". :)

Re: Datomic Free Edition

#75
post #64
post #62

Earlier quoted context omitted.

Just out of curiosity, what would you call this language then: [:find ?entity :where [?entity :db/doc \"hello world\"]]? What exactly do you see as the problem with this example? Or with SQL for that matter? Honestly, I'm interested in what your criticism is. Is it the syntax?

Yes, the syntax (or lack thereof, whichever you prefer). Obviously I'm not entitled to tell anyone how to design their databases. I'm just saying there's good reasons why so many DBs stick to a SQL-like syntax, and that is because the alternatives are usually worse (think: familiarity, tooling, scripting, REPL, etc.). For example, using the MongoDB REPL, which is probably close to what a datalog-REPL would look like,…

Datomic is, as far as I'm aware, a general purpose database. What it isn't designed to be is a familiar database.

SQL is what people are familiar with, and even some NoSQL databases have distinctly SQL-inspired query languages (e.g. SimpleDB). The problem is that SQL is a godawful query language, and if we want to do better we need to do something different, and therefore unfamiliar.

SQL tries to look like natural language, which has resulted in a syntax is complex, inconsistent and monolithic, just like the language it tries to imitate. If we want a syntax that is simple, consistent and modular we need to throw away the idea that a query needs to read like English.

Re: Datomic Free Edition

#76
Is there a hard memory cap for transactor local storage in the free version? Or is it more along the lines of: "we'll politely ask you to switch over to the paid version if you're eating up massive amounts of disk space"?

Re: Datomic Free Edition

#77

Is there a hard memory cap for transactor local storage in the free version? Or is it more along the lines of: "we'll politely ask you to switch over to the paid version if you're eating up massive amounts of disk space"?

Nope - no limit other than available disk space.

Re: Datomic Free Edition

#78
If you want to try the free version they released yesterday make sure that you grab a fresh copy (datomic-free-0.8.3343 is working fine for me). I suffered greatly with the initial datomic-free-0.8.3331 release before my customer gave me a heads up to refresh.

Re: Datomic Free Edition

#79

If you want to try the free version they released yesterday make sure that you grab a fresh copy (datomic-free-0.8.3343 is working fine for me). I suffered greatly with the initial datomic-free-0.8.3331 release before my customer gave me a heads up to refresh.

I wrote up what worked for me: http://blog.markwatson.com/2012/07/using-datomic-free-editio...

Re: Datomic Free Edition

#80
post #41

For those curious on what the heck datomic is, I found this podcast helpful: http://thinkrelevance.com/blog/2012/04/26/thinkrelevance-the... The key to me is that you can run multiple queries against the same point in time, thereby having a sound basis for the data you are working with. Compare this to working with traditional RDBMS having to get it all done in a single query to have a coherent view of the world, or…

How is this different than isolation / repeatable reads in SQL transactions?
Post reply on HN