3 ms·
It's an RDF graph mapped to a key-value database, so you describe edges in a tuple {subject-predicate-object} such as "tom-likes-frank" and while the complexity
by woodcut 10y ago
It's an RDF graph mapped to a key-value database, so you describe edges in a tuple {subject-predicate-object} such as "tom-likes-frank" and while the complexity you can model depends on how you define your schema, RDF is good enough for most applications. However it isn't easy to define weighted graphs -afaik- without creating numerous predicates for discrete intervals.
I'm pretty positive about this project, it's like google cayley if it hadn't have got bogged down in trying to support numerous database drivers. It'll show its strength if and when it implements raft and reaches a stable production state.
- mosselman 10y agoThank you for the clarification. How would Dgraph compare to Neo4j for example? I have looked at google cayley's as well (looked through the docs) and I must say I liked the premise. Do you think the support of multiple databases has degraded the database's performance?
- woodcut 10y agoI worked on implementing a backend for google cayley, the issue is the iterators abstract how a backend actually works so it becomes harder to optimise without introducing tighter coupling, also imho effort is better spent on more important things like high availability etc. I haven't touched it in a while so i can't speak re. its performance today. I've never worked with Neo4j but it's a stable and matured product with numerous large scale deployments, enough said. :)
- bogomipz 10y agoCould you elaborate? I was under the impression that Cayley supported MongoDB and LevelDB as backends: http://google-opensource.blogspot.com/2014/06/cayley-graphs-in-go.html http://google-opensource.blogspot.com/2014/06/cayley-graphs-...
- woodcut 10y agoyeah cayley supports numerous backends that do have replication such as mongodb and postgres or cockroach db. The issue being that a complex query consists of multiple stages like 'friends of friends of friends'. So if you're using a remote backend iterating over the result of a query then recursively making new queries results in performance that is at best poor.