5

Hey guys,
can you recommend a graph database? I already tried orientdb but was really disappointed. The performance was quite good but I stumbled across a lot of bugs during my tests (even managed to corrupt the database during normal operation). So I am looking for a graph database that's a little bit more mature. I heard a lot of great things about neo4j..but I am not 100% comfortable with the license costs. Are there any alternatives?

Comments
  • 6
    We use Neo4j for devRant (and I've used it on many past projects) and for the most part it works well, but it depends what you want to do. Licensing-wise I think it's fair - startups get it for free and that's up until like 1.5 or 2 mil in revenue or money raised.

    Let me know if you have any specific questions about it.
  • 2
    Neo4j for the win
  • 4
    @Xilo the short answer is no, a few thousand wrote relationships is nothing. The beauty of a graph database is relationships are so cheap o 2k is a really low number and they should mainly be in cache and at that point you probably won't notice any speed issues at 10k or even 100k.

    The super node issue has been partially addressed - all relationships are now stored by direction and type, but that still doesn't solve all cases. I think a better example of a super node is if you have a social network with "follow" relationships, and 80% of a 100k users follows Taylor Swift. At that point I'd say Taylor Swift is a super node and depending on what kinds of queries you're doing, you could face problems. But not when going from a user -> Taylor swift. Only when Taylor swift -> user(s)
  • 1
    Does anyone have any experience of Neo4j in the cloud? Azure specifically?
  • 1
    Didn't know that neo4j offers something for startups, thats really great. Many thanks for the info, @dfox!

    I scrolled a little bit through the documentation and I am pretty impressed about what neo4j offers (I like the simplicity of neo4j very much). However there is one thing that I couldn't find in the docs and that is something like "node level security". I don't know if it's the right term, but I am basically looking for something similiar to PostgreSQL's row level security feature.

    Does anyone know if there is something similar in neo4j?
  • 1
    @robcollett we used it in the cloud, but not Azure. I think possible issues that could arise mainly depend on your use-case. Clustering can be a little tricky but just running a single instance is very easy, depending on what you need.

    @schluchti as far as I know, that doesn't exist. Right now Neo4j user-based security by default is just one user that can access everything in the db. However, you can write security routines in Java though I'm not sure if that would give you node-level granularity.
Add Comment