Hi all,

We are very proud to announce the next milestone of the Neo4j 1.9 release cycle. This time, we have been trying to introduce as few big changes as possible and instead concentrate on things that make the production environment a more pleasant experience. That means Monitoring, Cypher profiling, Java7 and High Availability were the targets for this work. Let’s look at some of them:


Java7 Support

As of Neo4j 1.9.M05, Java7, Oracle JDK, is officially supported as the default runtime. We verified and adjusted some of the differences around e.g. sorting so that Java7 is a stable runtime for Neo4j.

High Availability and clustering

There have been a number of improvements around the chattiness of the HA protocol, making the cluster communication more efficient.

Kernel, Monitoring and Server

The IndexProvider interfaces are now in line with normal kernel extensions, making the system more consequent in design.
For the Neo4j REST Server, we added support for X-Forwarded-Host and X-Forwarded-Proto headers to allow parameterising of  links in data for hosting behind proxy servers.
Also, the JMX information beans will now provide info on all configuration values, including the defaults not explicitly set, enabling better diagnosing and tuning of your neo4j database.

Cypher


DISTINCT is now lazy, and keeps the incoming ordering, making these kind of queries much faster and memory-efficient. Also handling of iterators from index lookups and global graph operations is lazy as it should have been. Thanks to Wes Freeman for spotting this.

A first version of support for profiling cypher statements has been introduced, together with a matching PROFILE neo4j-shell command. This reports an additional execution plan with metrics together with the result output, like

Welcome to the Neo4j Shell! Enter ‘help’ for a list of commands

neo4j-sh (0)$ profile START n = node(0) MATCH (n)-[r]-(e) WITH n RETURN count(*);
+———-+
| count(*) |
+———-+
| 0        |
+———-+
1 row
0 ms

ColumnFilter(symKeys=["  INTERNAL_AGGREGATE-939275295"], 

returnItemNames=["count(*)"], _rows=1, _db_hits=0)
EagerAggregation(keys=[], aggregates=["(INTERNAL_AGGREGATE-939275295,CountStar)"], 
_rows=1, _db_hits=0)
ColumnFilter(symKeys=["e", "n", "r"], returnItemNames=["n"], _rows=0, _db_hits=0)
TraversalMatcher(trail=”(n)-[r WHERE true AND true]-(e)”, _rows=0, _db_hits=1)
ParameterPipe(_rows=1, _db_hits=0)
neo4j-sh (0)$


The profiling information is also available via the Java and REST-APIs and the Neo4j Console.


As always, there has been a lot of small fixes and improvements not listed here. Many thanks for all the contributions to Neo4j for many of the issues – it helps a lot to get comments, feedback and patches for things that need improvement!

For the full list of changes, as always, see
https://github.com/neo4j/neo4j/blob/master/packaging/standalone/standalone-enterprise/src/main/distribution/text/enterprise/CHANGES.txt

Yours sincerely,

Peter for the Neo4j Team

 

Keywords:  


4 Comments

RickBullotta says:

That's all full of awesome sauce, Peter! Downloading now…

Let us know how it works out Rick!

I appreciate the new features, but $26,000 for high availability? That kind of pricing eliminates Neo4j for small *unfunded* start-ups – is it possible to release a two server HA setup with a smaller price tag? Early stage start-ups typically have very little money, and $26000 is a significant adoption barrier..<br /><br />Please rethink the pricing structure – I think you&#39;ll end up with

Anonymous says:

Finally, Java 1.7 support. Great work! I am still receiving the following errors, though (using Java 1.7.0_17):<br /><br />warning: Supported source version &#39;RELEASE_6&#39; from annotation processor &#39;org.neo4j.kernel.impl.annotations.ServiceProcessor&#39; less than -source &#39;1.7&#39;<br />warning: Supported source version &#39;RELEASE_6&#39; from annotation processor &#39;

Leave a Reply

Your email address will not be published. Required fields are marked *

Stay Connected

Go
 

Have a Graph Question?

Stackoverflow
Contact Us


Popular Graph Topics

Archives