Wednesday, June 27, 2012

Neo4j 1.8.M05 - In the Details

Neo4j 1.8 Milestone 5 is available for immediate download, polishing up Neo4j with some nice detail work. Here are the highlighted changes...

Cypher

Cypher is Neo4j's friendly and expressive data language. Familiar seeming yet fresh, Cypher is your best option for creating and querying data.
Updates include:
  • The data browser in Neo4j’s web interface now supports multi-line Cypher queries.
  • CREATE and RELATE can now introduce path identifiers, like this:
    CREATE p=(n {name:'Miles'})-[:PLAYS]->
          (m {instrument:'Trumpet'}) 
        return p;
    
  • String literals can now contain some escape characters, like:
    CREATE (n {text:"single \' and double \" quotes"});
Also, these fixes have been incorporated: 
  • Fixes #600: Double optional with no matching relationships returns too many rows
  • Fixes #613: Missing dependencies not reported correctly for queries with RELATE/SET/DELETE
  • And some fixes in the handling of optional paths
For more details about Cypher see the excellent tutorials and reference in the Neo4j Manual.

Kernel

Neo4j's Kernel refers to the core engine that performs highly optimized database operations, all the way down to the bare metal. It's what makes Neo4j a database rather than a simple store or an abstraction layer.

Updates here include:
  • Logical log configuration now accepts more specification options, like number of days or size on disk. The keep_logical_logs configuration supports values such as: "10 days", "200M size" or “12 files”. Regardless of configuration there will always be at least the latest non-empty logical log left.
  • Increased multithreaded performance, thanks to a reduced amount of synchronization while memory mapping files.
More details about Neo4j's Kernel can be found in the Neo4j Manual

Indexing

While a graph can itself be seen as an index, Neo4j's indexing is used for direct lookup of data based on simple criteria. Typically, this is used to start a graph query using Cypher.

Changes to indexing include:
  • Removal of lucene_writers_cache_size. Now,  only lucene_searcher_cache_size needs to be specified. The value will be used for both, since it's doesn't make sense to have a writer without a searcher and isn't possible to have a searcher without a related writer. One less configuration point to worry about. 
  • Contention when getting an index searcher for querying has been significantly loosened, improving overall performance.
For more about indexing, look to Neo4j Manual Chapter 15

Get Neo4j 1.8.M05

Neo4j 1.8.M05 is available for:

Cheers,
the Neo4j Team

1 comment:

Peter Neubauer said...

The herkou plugin config option should be documented in the heroku setup guide for neo4j IMHO.