Neo4j Community vs Enterpise Edition in query processing - neo4j

I'm asking about differences between both edition of Neo4j: Community and Enterprise if it's any feature which speed up queries like graph traversing in Enterpise Edition?
I'm wondering because while comparing execution query times between Neo4j Community and MySQL, MySQL gave better results, link to discusion:
Neo4j slower than MySQL in performing recursive query
Thanks in advance for any suggestions!

Neo4j enterprise has currently a few features that make it faster in querying (e.g. a more scalable page-cache and a better lock-manager).
For Neo4j 3.2 a faster Cypher runtime will be available in Neo4j enterprise.
I put also some more feedback / questions into the linked discussion.

Related

Can I install neo4j at each users computer?

I am using neo4j as server solution but was thinking of also using it in other situations.
Is it, from a technical, installation, licensing perspective etc, possible to install neo4j at each users own computer for local storage of data?
I would like to incorporate the neo4j db installation as part of my own software installation process to avoid technical problems for the end user.
It will probably only be very small set of data in each database so performance is probably not an issue in this case.
It is not clear why you want every user to have their own local neo4j installation (since, for example, their local DBs will not contain the same data).
But, if you really wanted to, there is no problem (technically or legally) with installing the community edition of neo4j on multiple machines.
In this You Tube Video, about 30 minutes into it, "Neo4j Licensing: Which Edition Is Right For You" Rik Van Bruggen mention that one must contact neo4j if one want to distribute neo4j together with other software. One possible solution, according to the video, is an OEM agreement. One need to discuss the commercial terms.
He also says that it is not allowed to be done with the Community Edition
It also written at neo4j.com/licensing that
"I want to include Neo4j in software that I’m shipping. What are my options?
Neo4j offers a mature OEM program tailored to your needs. Learn more →"

How to set Neo4j community edition as a reliable service?

I have set up neo4j on EC2. Now I want to be able to access it from remote.
I want to it to be high-performance, for which seems I need to create cluster.
The neo4j documentation says that the clustering features are available in Neo4j Enterprise Edition.
I want to know that is there anything I can do with the community edition?
Clustering, which is good for both "high performance" (load balancing) and fault tolerance, is not supported by the community edition.
That means that with the community edition you only have a single server available to handle the load and that you have a single point of failure. That does not mean that the community edition is necessarily "low performance", however, and many people are happy with it for pretty large DBs. It all depends on what you are trying to use it for.

Neo4J Java Native APIs vs Traversal APIs vs Cypher

Has anyone done the performance evaluation for Neo4J Java Native APIs, Traversal APIs and Cypher.
Which of the above three options will yield me better result from performance perspective?
Also, for write operations, should I use Native java APIs or cypher. Is there a possibility to bulk DB operations in native APIs so that it just hit the DB only once and not for every node/relationship creation.
You'll be interested in this article. But the main takeaway from their tests is
The Core API is able to answer about 2000 friend of a friend queries
(I have to admit on a very sparse network).
The Traverser framework is
about 25% slower than the Core API
Worst is cypher which is slower at
least one order of magnitude only able to answer about 100 FOAF like
queries per second. I was shocked so I talked with Andres Taylor from
neo4j who is mainly working for cypher. He asked my which neo4j
version I used and I said it was 1.7. He told me I should check out
1.9. since Cypher has become more performant. So I run the benchmarks over neo4j 1.8 and neo4j 1.9 unfortunately Cypher became slower in
newer neo4j releases.
However, I would recommend using Cypher unless in a high performance situation. (Basically the harder it is to work with, the faster it can be. It is up to you to balance development effort with performance.) Also, this data is old, and each major update to Neo4j comes with new tricks the Cypher planner can use to query more efficiently. So Cypher performance will very based on DB content and Neo4j version (for better or worse)
Also, the Traversal API is built on the Core API, and Cypher is built on the Traversal API; So anything you can do in Cypher, can be done with the other 2.

Neo4j comunity backup and recovery from corrupted db

Is neo4j community version usable to store any valuable data ? I started small project to store data in this db and I was surprised how easy is to implement custom ORM and work with transactions. I gather data for some months, but I had unclean shutdown of my db. Some relations got corrupted and then I realized that community version is missing essential tools like online backup, restore and recover db.
I think that Neo guys are trying too hard to push toward enterprise. So anybody, would you recommend Neo db (strictly community) for business project ?
There is a tool for repairing stores that should work with community versions : https://github.com/jexp/store-utils
For your last question, I don't think Neo4j differ from other databases, if you need support then you'll need a license.
An unclean shutdown is caused by something and would have probably the same effect on enterprise version.
Is it safe to rely on strict community version of neo4j: yes as it is safe to rely on mysql community version.

Neo4J multi-document transactions for standalone server

I am considering Neo4J for some project. I recall reading somewhere that multi-document ACID transactions are only supported for embedded database, but not for the standalone one. Searching at the Neo4J site, I could not find any info about this. Some more information about this, or some pointers could help. Thank you.
Neo4j itself supports now transactions over the wire with 2.0
See: http://docs.neo4j.org/chunked/milestone/rest-api-transactional.html
Spring Data Neo4j does not yet and it will take a while until we get there, as it means to rewrite the core to use cypher throughout which it doesn't do now.

Resources