Live data from Hacker News

Neo Technology Just Closed $20M in Funding

blog.graphenedb.com

11–20 of 20 posts

Re: Neo Technology Just Closed $20M in Funding

#12
post #2

I've only had a brief look at Neo4J, but I really like what I see. Graph databases seem to be marketed as an ideal way to represent a social network or similar where you want to represent the connections with other entities. I see them as much more than this. I love using document databases because I don't have to worry about strict schemas. However, I lose a lot when I have multiple entities that are related in some…

In my experience with Neo4J a few years ago, i naively used it as my primary DB. The latency (not suprising given its JVM based) was painful and often there are classic relational aspects that we tried to capture in the graph. This is ENTIRELY MY FAULT - not Neo4j, they never market it as that - just as MongoDb never markets itself as a true replace for relational problems. But that said there is plenty to not like a…

I was at a Neo4j intro meetup earlier in the week. They do market it as a primary DB. Maybe the capabilities are different now.

Re: Neo Technology Just Closed $20M in Funding

#13
I do believe graph databases are here to stay. However, they are overhyped right now, leading everybody to think their problem is a graph problem, just like how the hype of hadoop led everybody to believe their problem was a map reduce problem.

A good rule of thumb is whether you ever have a need to query the relations as well as the data. If you ever get to that point, you can be pretty well assured that a graph database will help you. Until then, the safer decision is to stick with a relational db for prod.

Also, check out OrientDB. I have found it to be superior in every way to Neo4j.

Re: Neo Technology Just Closed $20M in Funding

#14
post #6

Earlier quoted context omitted.

The main reason is speed. Graph traversal is constant time as opposed to O(log n) for each traversal. The speed only becomes relevant later, and you can therefore add graph databases as a slightly delayed replica on top of a db for things you need to traverse fast.

This is true, however I think this again conflates two things: the relational model and the "tabular" data layout. I gather that databases like Neo4j obtain constant time traversal by storing each node's list of "relationships" at the same location as the node itself. We might be able to generalize this to a relational database, where every row in the database is stored together with the list of addresses of all othe…

How? Describe a detailed solution.

Re: Neo Technology Just Closed $20M in Funding

#15
post #6

I've been using Neo4j for around 3 months, but I'm unconvinced by the "graph" model as having any significant advantage over the relational model. A graph can be trivially modelled relationally as a "vertex" table and an "edge" table. A particular problem I have with the graph model is that edges cannot be referenced by other entries in the database; thus the schema designer must prefer using vertices to model all co…

The main reason is speed. Graph traversal is constant time as opposed to O(log n) for each traversal. The speed only becomes relevant later, and you can therefore add graph databases as a slightly delayed replica on top of a db for things you need to traverse fast.

Couldn't this be improved with new data types and types of indexes in a relational db, similar to spatial types/indexes?

Re: Neo Technology Just Closed $20M in Funding

#16

Earlier quoted context omitted.

This is true, however I think this again conflates two things: the relational model and the "tabular" data layout. I gather that databases like Neo4j obtain constant time traversal by storing each node's list of "relationships" at the same location as the node itself. We might be able to generalize this to a relational database, where every row in the database is stored together with the list of addresses of all othe…

How? Describe a detailed solution.

PostgreSQL has an "array" data type (http://www.postgresql.org/docs/9.4/static/arrays.html), as do other databases. You could use that for that purpose (I know of research prototypes that have attempted this). It is unlikely to work well in general, especially given that degree distributions are often skewed (i.e., there is very high spread in the number of relationships per node) -- if I had the time, I would do a proper empirical comparison.

Re: Neo Technology Just Closed $20M in Funding

#17

Congrats to the team of Neo Technology. If you're interested in discovering how to visualize Neo4j graph databases, check out Linkurious : http://linkurio.us/

Or just install Neo4j, start it, and go to http://localhost:7474 in your favorite web browser.

Re: Neo Technology Just Closed $20M in Funding

#18

I've been using Neo4j for around 3 months, but I'm unconvinced by the "graph" model as having any significant advantage over the relational model. A graph can be trivially modelled relationally as a "vertex" table and an "edge" table. A particular problem I have with the graph model is that edges cannot be referenced by other entries in the database; thus the schema designer must prefer using vertices to model all co…

datalog is slow, even if performance was improved it still, not competitive with SQL. That said is really handy.

I'm told that Datalog is equivalent to SQL with recursive subqueries, which means that any Datalog query could be compiled to SQL. (Whether it's feasible to compile to efficient SQL, I don't know.)

Re: Neo Technology Just Closed $20M in Funding

#19
I personally really like RDF graph databases, because while they look like graph databases such Neo4J they might be implemented completely different. For example Virtuoso is one that is fast for some query types and underneath it is a columnar relational database. GraphDB by ontotext is a custom only SPARQL implementation. Queries that work in one will work in the other (bugs excepted :( ) the only thing that changes is what are they fast at :). Side benefits is that you get a decent JSON api for free with JSON-LD and JSON-SPARQL.

When ever I try Neo4J and Cypher it just feels slow and limited in comparison to the semweb competition.

Re: Neo Technology Just Closed $20M in Funding

#20

Earlier quoted context omitted.

datalog is slow, even if performance was improved it still, not competitive with SQL. That said is really handy.

I'm told that Datalog is equivalent to SQL with recursive subqueries, which means that any Datalog query could be compiled to SQL. (Whether it's feasible to compile to efficient SQL, I don't know.)

I'm not aware of such a thing.

Really this is based on my readings and few experiments, I'm not 100% sure that datalog can not be made faster and socialite (see below) seem to claim I'm wrong.

Datalog is the native query language of datomic. I can put the finger on it, but I think there is a project for querying cassandra with datalog+clojure.

This is the most recent work I'm aware of:

- python querying of hadoop with a datalog-like language http://socialite-lang.github.io/

- overview: http://fr.slideshare.net/Hadoop_Summit/t-325p211seo

Also best way to learn datalog: http://www.learndatalogtoday.org/

Post reply on HN