https://www.youtube.com/watch?v=wdFYEuWWpzo
The other one is confidential but is in the airline industry.101 karma · joined October 11, 2007
https://www.youtube.com/watch?v=wdFYEuWWpzo
The other one is confidential but is in the airline industry.However, the really hard problem with scaling graphs is scaling writes, i.e. partitioning. In my mind, no one has solved that well today because you can't just slap it on top of a partitioning algorithm that's designed for data without explicit relationships (think documents, key value pairs). In order to gain something other than a checkbox feature and "sharding claims" you have to partition based on the shape of the graph at the time of insertion, but also revise it continuously as the graph evolves over time. That's a non-trivial problem that no one has solved today. (Yes, we're obviously working on it here at Neo4j.)
The good news is that you can get really really far with the replicated horizontal scale out model. "Big RAM is growing faster than big data" as you've probably heard and today there are massive Neo4j deployments in production using our third generation scale out architecture (Raft based, multi clustering, causal consistency).
20 of the 25 biggest banks in the world use Neo4j today, and fraud detection (specifically fraud rings) is a really popular use case. (So much so that if you search for "fraud detection" in an incog chrome window, https://neo4j.com/use-cases/fraud-detection/ is on the first page of google).
Btw, we've scaled out horizontally for reads since 2011 but our initial Paxos based implementation was shaky. Since then we've revised it twice and our third generation Raft based architecture is significantly better. If you add multi clustering support + causal consistency and a bunch of other improvements I think our horizontal scalability story is very different today from a few years ago. Lemme know if you try it out and disagree!
https://www.youtube.com/watch?v=wdFYEuWWpzo
Pretty amazing stats in there!
I think we're in the early parts of an exciting journey connecting (no pun intended) graphs and AI. I'm personally really excited about connected feature extraction. I wrote a little bit about it here: https://neo4j.com/emil/80-million-series-e/ There's more in depth info here in this graphs & AI overview video from GraphConnect last month: https://neo4j.com/graphconnect-2018/session-topics/?topic=AI...
Btw, if you've ever stayed at a Marriott (or anyone they now own: Starwood, Hilton, Ritz Carlton) then you've used Neo4j in production (to book that room). If you've ever purchased a flight ticket, then you've used Neo4j in production (over 99% of all fare calculations are done with Neo4j). Etc.
And thanks for being specific (amazed that you remember specific issues from five years ago!). I don't remember the 127.0.0.1 security problems, but I don't hear anything about them so my guess is they've been addressed. We have a lot of finance and government customers that have high requirements on security. As for your Lucene issues, we did a complete overhaul of our search and indexing story in Neo4j 2.0 (released late 2013). We've continuously improved import performance (which has traditionally been a weak spot) and Neo4j 2.2 includes a batch importer which injects >1M records / sec sustained pace at scale (10s of billions of records) on commodity hardware. As for the memory management issues, we like many other data products written in Java struggled with GC for a long time, and like many others we ultimately concluded that we had to move a lot of the critical parts off heap / manage the memory ourselves, which significantly improved memory utilization.
I understand that you got stung historically and therefore hesitate to check us out again. And if SQLite is working well for you, there's no need to! But Neo4j and the graph space has matured a LOT since 2010 and fortunately I don't think your "bleeding edge" experience from 4-5 years ago will be replicated anymore for someone coming new into the space.
Thanks for the feedback.
We've worked on it for over a decade, it's used in production by thousands of community users, hundreds of customers and 75+ Global 2000 companies (see http://neo4j.com/customers). For many of those Neo4j is used in business critical use cases, i.e. they require Neo4j to be up and running every minute of every day or it'll show up in their next earnings call. If you've shopped online or in a US retail store this week for example, it's very likely that you've used Neo4j. There's rich support for pretty much any programming language and framework out there, an ecosystem of consulting partners whose sole business it is to do Neo4j implementations, 10+ books written specifically about Neo4j, rich online training, formal enterprise support backed by a global commercial organization, an active community. What's missing?
I'm not trying to be facetious -- I'm genuinely curious as to what you feel is missing to consider it mature.
http://blogs.neotechnology.com/emil/2011/09/nosql-the-web-an...
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.
* 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/).
"Neo4j is released under a dual free software/commercial license model (which basically means that it’s open source under the AGPLv3 but if you’re interested in using it with closed source software, then you must buy a commercial license)." (http://neo4j.org)
Also, we have an AGPLv3 logo on our web page, there's a LICENSE.txt in our release tarballs, we mention it at the end of every presentation we give, and Neo4j is tagged with AGPL on sites like Freshmeat (http://freshmeat.net/projects/neo4j).
Please let me know how we can make it easier to find!
-EE
1] Which would make FlockDB less a graph db and more a key-value store with social network semantics for the values.
-EE [http://neo4j.org]
All this of course based on just a quick glance, so I may come back all the wiser and revise my opinion later. :)
-EE [http://neo4j.org]
is based on generic property graphs. We sometimes get requests for hypergraph features, but we've found that the real-world problems are always solvable through a normal graph. Either way, it's very nice to see more open source graph databases out there!
-EE
* the 10 minute code-level getting started guide: http://wiki.neo4j.org/content/Getting_Started_Guide
* a full-blown reference example, including diagrams, graph layout screen shots, code walk through etc: http://wiki.neo4j.org/content/IMDB_Example
* the domain modeling gallery, which shows how to model a bunch of domains in a graph db: http://wiki.neo4j.org/content/Domain_Modeling_Gallery
* popular blog post about how to model a social network in Neo4j: http://blog.neo4j.org/2009/09/social-networks-in-database-us...
* how to work Neo4j in python, ruby, clojure, scala & grails: http://wiki.neo4j.org/content/Main_Page#Language_bindings
If you have more questions, feel free go all mailing list on us: https://lists.neo4j.org.
Hope that helps!
So if you're part of an investment out of a young fund then you typically have at least a 7 years time horizon. Obviously things have to go well in the meantime or they won't sustain you for that long. But the difference between a Marc Andreesen VC and any other VC is def not the length of the fund.
It's also important to note that Neo4j through the normal API is optimized for the most common use cases: reading data and transactional updates. Those operations are executed all the time during normal operation, whereas an import is typically done once at system bootstrap and then never again.
To ease migration, as part of our 1.0 release (June time frame) we will expose a new "batch injection" API that is faster for one-time imports of data sets. This is currently being developed. If you have feedback on how an API like that should behave, feel free to join the discussions on the list:
http://neo4j.org
Cheers,-EE