Live data from Hacker News

Unicorn: a simple and flexible abstraction of BigTable-like databases

github.com

11–20 of 24 posts

Re: Unicorn: a simple and flexible abstraction of BigTable-like databases

#11
post #6

Not to be a stickler about name collisions, but Facebook wrote a research paper about a graph database called Unicorn back in 2013: https://people.csail.mit.edu/matei/courses/2015/6.S897/readi... This appears to be unrelated, which is somewhat unfortunate.

There is also the ruby server https://unicorn.bogomips.org/

Re: Unicorn: a simple and flexible abstraction of BigTable-like databases

#12
post #6

Not to be a stickler about name collisions, but Facebook wrote a research paper about a graph database called Unicorn back in 2013: https://people.csail.mit.edu/matei/courses/2015/6.S897/readi... This appears to be unrelated, which is somewhat unfortunate.

This was my very first reaction as well. The Unicorn paper was published in a high-profile conference, so as a N=1 sample I'd say it's famous in the systems community.

Re: Unicorn: a simple and flexible abstraction of BigTable-like databases

#14
post #11
post #6

Not to be a stickler about name collisions, but Facebook wrote a research paper about a graph database called Unicorn back in 2013: https://people.csail.mit.edu/matei/courses/2015/6.S897/readi... This appears to be unrelated, which is somewhat unfortunate.

There is also the ruby server https://unicorn.bogomips.org/

There is also the qemu-as-a-library, Unicorn. https://github.com/unicorn-engine/unicorn

Funny how there's so many of them considering that the name Unicorn is generally supposed to have an air of rarity about it.

Re: Unicorn: a simple and flexible abstraction of BigTable-like databases

#17
post #4
post #2

How would I use this if I have graph data that's described in terms of its edges, not its nodes? The N-Triples and DOT formats would be examples of graph data that's structured like this: you just list the edges as the pairs of nodes that they connect. The nodes don't necessarily have any properties, they're just implicitly created by edges. I could describe a -- b b -- c b -- d and nodes "a", "b", "c", and "d" would…

In most graph database, you find a vertex by filtering its properties, e.g. Gremlin graph query language. In Unicorn, you can do the similar with document vertices (it is, a vertex corresponding to a document in another table/collection). This is probably very nature in a business application. However, it is not very useful in your case as your vertices are abstract without any properties. I guess what you want is so…

I would say that what I have is a property-directed multi-graph, as I understand it. It's just that the properties are on the edges, and the nodes have no properties except for their ID.

The graph in question is ConceptNet, which in the version I'm working on has about 10 million edges and 3 million nodes. Let's be clear that, in computing, "million" is not a large number. I only said "large graph" to clarify that it's not a small toy graph. The data needs to be imported with some degree of efficiency. But I have a 3TB hard drive and 16 GB of RAM, and both of them can spare a few gigabytes for this task.

Before you throw me into the tarpit of distributed computing, like every other graph-DB provider does as an excuse for their terrible inefficiency, I would like to know if your graph database is appropriate to use with reasonable-sized graphs that fit easily on a single computer.

Re: Unicorn: a simple and flexible abstraction of BigTable-like databases

#18
post #6

Not to be a stickler about name collisions, but Facebook wrote a research paper about a graph database called Unicorn back in 2013: https://people.csail.mit.edu/matei/courses/2015/6.S897/readi... This appears to be unrelated, which is somewhat unfortunate.

My vote is for UnicornPoop. Anyone have that?

Re: Unicorn: a simple and flexible abstraction of BigTable-like databases

#20
While people seem to mostly tinker with the name in the comments I'd like to say that this looks like a really interesting project!

Would you mind to give us a little more background with regards to how this has been initiated, what your motivation was to write something new?

Given that you have an interesting vita (https://www.linkedin.com/in/haifengli) and a lot of people are interested in the graph database space I'd assume that people what be interested in your take on: The graph landscape, why for example haven't you joined the effort of Neo4j, ArangoDB, Titan and the likes. Is Unicorn already older than these systems? Why have you decided to open source now? Why is this linking to a fork originating at ADP while you are obviously a member of ADP and what is ADP about? Questions over questions which IMHO should be answered so that people like myself, who are impressed by your work, get a better chance where this massive effort comes from to better estimate how long this is going to stay around.

However: Thanks for open sourcing, posting and giving us a chance to play around with this...

Post reply on HN