wait... $24,000 a year per server for the ability to do live backup? That's more than Oracle (Standard), even counting support. (This assumes a single processor, of course.)
The main feature (software-wise) in Neo4j Enterprise is High Availability clustering support, which gives you fault tolerance and read scalability. On top of that Neo4j Enterprise also comes with 24/7 enterprise-grade commercial support. You can run it on one core, or 768 cores all for the same price.
"As well as a slew of new features and improvements, we’re thrilled to announce that the community edition is now entirely GPLv3 licensed – permissive and accommodating to your needs!"
The GPL is not a permissive license as the term is usually understood in the free and open source communities. I believe the FSF is careful to distinguish GPL from permissive licenses.
Second: there are several places on the linked pages that compare this to MySQL, basically saying you can do with it whatever you could do with MySQL as far as the licensing goes.
MySQL is under GPLv2, not GPLv3, so the comparison to MySQL might mislead people.
Re: permissive, I concur! Poor wording on our part. Permissive-r than AGPL perhaps was our thinking. :) But you're absolutely correct that the GPL is not a permissive license. Updated the post!
As for GPLv2 vs v3, in a high-level post like this they're reasonably identical. v3 brings in some nice subtleties like ASL compatibility (a biggie for us!) as well as better patent language. But in terms of use cases where the "virality" kicks in, they're the same.
I am using neo4j with an app that I am building, it is GREAT!
I'd love to see some of the enterprise features included in the community version (clustering support like in orientdb). Maybe the community will come together and make it happen :)
I often read (gloss over) how GPLv3 isn't as good as it may seem, can someone fill me in?
it's a licence, so i am not sure that judgements like "good" and "bad" apply.
the gpl means that you can use the library, but whatever you develop that "works with it" must also use the gpl. that means that when you give or sell your software to someone else, you have to grant them the rights that you received when neo4j gave their software to you. in particular, you must give them your source and you cannot restrict (much) what they do with that - they can give away your source for free.
one qualification: unlike the agpl, the "works with it" phrase above doesn't extend to client / server on a network. so if you use gpl code on a server, it does not affect clients.
[edit: ps this is good news. i can't remember what the original licence was, but it stopped me from using neo4j at some point, and i have also had to warn others at times. this is in the context of web services where i suspect that if people were successful they would be willing to pay to scale out; they just don't want to pay up front if they are going to fail fast. so gpl seems like a great fit.]
i don't know of anywhere with very good, simple explanations, unfortunately. i think the problem is that (1) if you simplify a licence then you leave something out which could be important and (2) no-one wants the liability involved.
on the other hand, people recognise that and the major licences do try to be fairly easy to read. but you do need to just "bite the bullet" and read them through (and think what they mean).
Am I right in thinking that, with an embedded database such as Neo4j, I would be required to use the server standalone and use the remote capabilities from a separate JVM in order to escape the virility of the license? (And if distributing, refer to their site for installation of the server?)
Though this is a much welcome change from AGPL or commercial.
Perhaps OT, but can someone explain how graph databases are useful? I've read through their site, but don't have a good handle on when I'd select a graph database over an RDBMS, document store or KV store. Also, how is scaling one of these different or the same as an RDBMS?
i am not a great fan of them, so i am both biassed and inexperienced, but it seems to me that they win out over SQL in cases where you would be doing recursive queries. this is typically the case when you don't have much structure in your database (everything is related to everything else in one big table) and/or when you need to jump across an uncertain number of joins (to answer questions like "how many steps does it need to get from here to there?").
compared to KV they place more logic in the database (much like SQL v KV).
I'd agree with Andrew's general characterization of graph database advantages. Graphs are "whiteboard friendly" in as much as you can store data exactly as you would likely sketch it up when thinking purely in your domain. Because the graph structure is generic, you can even happily use it as a key-value or document storage. And, multiple intersecting domains can co-exist within the same graph. A graph could be a simple list, a map, a tree, or a complex network of data. With Neo4j, you'd get that expressiveness with the confidence of ACID behavior.
Beyond that, the Not-Only SQL options are a reminder to pick the storage that fits your application, rather than fit your application to the storage you have. Be domain appropriate.
I usually think in terms of:
RDBMS - when aggregating data is important
Graphs - when relationships between records matters
KV - when you have really simple data, but gazillions of records
Document - when you have complex, but unrelated and possibly non-uniform data
That's cool. Neo4j is a good project. I grabbed one of the free single server licenses the developers offered a few months ago, which is even better for me: I can embed it in a single server web app. With the GPL I would need to run it as a separate service.
17 comments
[ 2.6 ms ] story [ 50.7 ms ] thread* Neo4j Community, a high performance, fully ACID transactional graph database – licensed under the GPL
* Neo4j Advanced, adding advanced monitoring – licensed under the AGPL or a commercial license
* Neo4j Enterprise, adding online backup and High Availability clustering – licensed under AGPL or commercial
See more in the 1.3 announcement (http://blog.neo4j.org/2011/04/neo4j-13-abisko-lampa-released...) and our licensing guide (http://neo4j.org/licensing-guide/).
"As well as a slew of new features and improvements, we’re thrilled to announce that the community edition is now entirely GPLv3 licensed – permissive and accommodating to your needs!"
The GPL is not a permissive license as the term is usually understood in the free and open source communities. I believe the FSF is careful to distinguish GPL from permissive licenses.
Second: there are several places on the linked pages that compare this to MySQL, basically saying you can do with it whatever you could do with MySQL as far as the licensing goes.
MySQL is under GPLv2, not GPLv3, so the comparison to MySQL might mislead people.
As for GPLv2 vs v3, in a high-level post like this they're reasonably identical. v3 brings in some nice subtleties like ASL compatibility (a biggie for us!) as well as better patent language. But in terms of use cases where the "virality" kicks in, they're the same.
I'd love to see some of the enterprise features included in the community version (clustering support like in orientdb). Maybe the community will come together and make it happen :)
I often read (gloss over) how GPLv3 isn't as good as it may seem, can someone fill me in?
the gpl means that you can use the library, but whatever you develop that "works with it" must also use the gpl. that means that when you give or sell your software to someone else, you have to grant them the rights that you received when neo4j gave their software to you. in particular, you must give them your source and you cannot restrict (much) what they do with that - they can give away your source for free.
one qualification: unlike the agpl, the "works with it" phrase above doesn't extend to client / server on a network. so if you use gpl code on a server, it does not affect clients.
this is only a rough summary - read the licence for full details at http://www.gnu.org/licenses/gpl.html
[edit: ps this is good news. i can't remember what the original licence was, but it stopped me from using neo4j at some point, and i have also had to warn others at times. this is in the context of web services where i suspect that if people were successful they would be willing to pay to scale out; they just don't want to pay up front if they are going to fail fast. so gpl seems like a great fit.]
on the other hand, people recognise that and the major licences do try to be fairly easy to read. but you do need to just "bite the bullet" and read them through (and think what they mean).
this is a good place to start - http://www.opensource.org/licenses/index.html (in particular, see "License[s] that are popular and widely used or with strong communities" at http://www.opensource.org/licenses/category for a list of the ones you should focus on)
have fun :o/
Though this is a much welcome change from AGPL or commercial.
compared to KV they place more logic in the database (much like SQL v KV).
Beyond that, the Not-Only SQL options are a reminder to pick the storage that fits your application, rather than fit your application to the storage you have. Be domain appropriate.
I usually think in terms of: RDBMS - when aggregating data is important Graphs - when relationships between records matters KV - when you have really simple data, but gazillions of records Document - when you have complex, but unrelated and possibly non-uniform data
Cheers, Andreas