Fork me on GitHub
#xtdb
<
2019-06-13
>
thomas14:06:10

@taylor.jeremydavid how would say does Crux compare to Neo4J? I am asking because I am doing a little toy project with Neo4J and some people have asked why I am not using a proper Clojure DB. I don't particularly care about time (valid or transaction) in my use case, but primarily about the relations between the various entities (it could easily be done in an RDBMS if needed with some tables and some foreign keys)

refset14:06:07

Hey @thomas good question! Neo4j has a non-negligible factor of performance advantage due to it's optimised index structure but Crux definitely isn't slow, we have some comparative tests you can benchmark with...we don't have any published benchmark numbers of our own yet. In terms of capabilities Neo4j has quite a lot of baked-in graph algorithms which Crux doesn't offer yet, but you can definitely implement them efficiently yourself by mixing Datalog and code (via db snapshots). Did you see this issue already https://github.com/juxt/crux/issues/162 ?

thomas14:06:29

I hadn't seen that particular issue and the link to the Kevin Bacon example is quite interesting to read I have to say... some food for thought there I guess.

refset14:06:27

Yeah it took me a few weeks of reading and thinking to really realise that "graph" database is a heavily overloaded term. Graph analysis, graph algorithms and graph data modelling are distinct things with wildly different machinery and indexes needed.

refset14:06:11

I also realise that Crux using the word graph doesn't necessarily help reduce the confusion...so I'm open to feedback 🙂

curtosis12:06:43

@taylor.jeremydavid IME “graph visualization” is also heavily mixed in to that (esp. wrt. Neo4j)

👍 4
refset22:06:47

I agree. I would include visualisation under graph analysis, but visualisation definitely has a role in schema design ...and we will definitely be building some visual tools for Crux!