December 13th, 2011· Server logging has been changed, see the Server Configuration chapter in
· the manual for further information.
December 22nd, 2010Kernel:
· Fixed an issues with PruneEvaluators getting invoked with the start node as argument.
· PruneEvaluators was never invoked with the start node before the arrival of Evaluator interface.
· Added logging of recovery completion.
· Added TransactionData#isDeleted(Node) and #isDeleted(Relationship) and alsmade
· the collection thold these a HashSet instead of ArrayList. This allows fast
· lookups for asking if a node/relationship is deleted in a transaction.
· More flexible caching (can instantiate an arbitrary Cache object).
Shell:
· Fixed a problem where ShellServerExtension assumed the shell was enabled during shutdown, which could result in NPE.
Lucene-index:
· More flexible caching (can instantiate an arbitrary Cache object).
· Merged the fast-writes branch. Basically it makes committing changes tlucene indexes
· faster and more throughput-friendly for multiple threads. The performance improvement
· for committing lucene transactions shows best for small transactions, but will improve
· all modifying operations tlucene indexes.
· Fixed bug which could close an IndexSearcher before it was supposed twhen
· there was exactly one item in the result set, twor more threads did this at
· the same time as there was another thread doing an update... AND the reading
· threads all called IndexHits#getSingle() on the result.
HA:
· When a new master is chosen, slaves throws away the id allocations they got from the previous master. This fixes a problem where occupied ids where reused.
· Enabled (and fixed problem with) thread on master which checks for dead slave connections and rolls back those transactions, sthat their locks are released.
· This fixes a problem where an HA cluster would seem tfreeze up and become unresponsive twrite requests.
· Adding Log4j and Netty license information.
· Alscloses the executor containing the connections.
· Changed dependency scopes.
· Shuts down databases after verifying them.
Server:
· Bridge OSGi LogService tserver Logger. Bundle log messages and stdout pipe through correctly.
· Refactoring of functional tests tremove static dependencies. Introduced a server builder tdeal with it instead.
Can now add performance-tweaking properties tthe database hosted by the server. It uses the same neo4j.properties file as the embedded version, but you need tadd a property:
· org.neo4j.server.db.tuning.properties intthe neo4j-server.properties file.
· Webadmin: Removed component titles, added save button tdata browser, minor change tdata browser layout.
· Webadmin: Minor UI updates, added error message that shows up when server connection is lost.
· Webadmin: Moved charts inttabbed box, minor UI updates.
· Fixed an issue with initialization order of things in the server tmake sure that RRD is initialized when it is needed.
· Webadmin: Added proper tab-like styling tchart tabs and scale selectors.
· Fixed bug in RRD memory usage sampler, making rounding happen at end of calculations, instead of in the midst of.
· Webadmin: Made 30minutes the default view in charts.
· Webadmin: Added kernel version tdashboard, fixed bug in chart drawing (was drawing when the charts are not visible under certain conditions).
· Webadmin: Disallow self relationships in UI, and show error message explaining this.
· Can now load 3rd party JAX-RS jars from the classpath.
· Updated static assembly tproperly include both webadmin statics and documentation. Documentation now tested and ships properly down tneo4j-standalone.
· Webadmin: Made the current node show up by default when adding new relations in webadmin.
· Webadmin: Dashboard shows charts with tabs, and allows switching between charts.
· Added a basic readme with instructions for building, running, and functional testing.
· Updating the way tcreate temporary files tsolve the functional test problem where lots of files stick around.
· re-implemented REST texpose indexing of nodes and relationships (new index API)
· single path algworks in RestfulGraphDatabase now
· fixed duplicate paths for delete node or relationship from index
· Http DELETE requires the proper mediatype taccept
· All indexes must be created tuse them.
· Added the ability extend the REST API with server plugins.
· Added back links tthe first page in the HTML format.
· updating tGremlin 0.6
· Updated the component site documentation with the new index API.
December 4th, 2010New components:
· neo4jha, providing high availability
Important changes, server:
· updated tJersey 1.4
· integrated index is now supported by the shell
· new Evaluator interface improves the traversal API
· support for index hit scores in neo4jluceneindex
· index caching support added tBatchInserter
November 23rd, 2010· added a server packaging as part of neo4j
· added more configuration options to neo4j-lucene-index
· generating javadocs for all components automatically to components.neo4j.org/{component-name}
· Added ImpermanentGraphDatabase to aid in testing
November 9th, 2010· Monitoring/management over JMX was moved to the neo4j-management component.
· API
Added ability to get the names of existing integrated indexes:
· Index#getName() and Index#getConfiguration()
· IndexManager#nodeIndexNames() and #relationshipIndexNames()
Added utility to expand traversals using a relationship type in any direction:
· Traversal.expanderForTypes(RelationshipType)
October 13th, 2010· Kernel extensions additional services for the Neo4j Kernel are loaded
· automatically if they are present on the classpath.
· The ability tinject Kernel extensions in a running instance through JVM
· agents. This is used for loading the shell on an running instance.
· API
· Traversal: Uniqueness is now instantiated through a factory, with
· the previous enum (moved torg.neo4j.kernel) as default implementation.
· Filters in a traversal description are additive (just as PruneEvaluators).
· Bug fixes
· Circumvented the fact that Class.forName() sometimes throws a
· NoClassDefFoundError instead of ClassNotFoundException.
· Optimizations
· NodeImpl/RelationshipImpl takes less memory since they nlonger have
· reference tNodeManager.
· Fixed some lowlevel throughput/concurrency issues.
· Added (default) weak reference cache option. Control with f.ex. "cache_type=weak"
July 31st, 2010· New features
· Auto configuration by looking at available RAM and heap.
· New event framework, see http://wiki.neo4j.org/content/Event_framework
· JMX enabled kernel.
· New traversal framework, see http://wiki.neo4j.org/content/Traversal_Framework
· Block size for strings and arrays are now configurable when creating a new db.
· Read only operations can now execute without a transaction.
· API
· Added a method to get the GraphDatabaseService on Node and Relationship.
· Moved the commons component utilities into kernel component,
· see helpers package.
· Bug fixes
· Fixed issues with logical log and active log that could cause recovery
· to throw an exception.
· Fixed buffer overflow for large string/array properties.
· Fixed bug that could cause leak of NodeImpl.
February 17th, 2010· Updated javadoc.
· Bug fixes o Fixed leak of non committed property changes to other transactions. o Fixed cache duplication bug of relationships.
· Fixed problem that could cause other exception to be thrown than NotFoundException on getNodeById/RelationshipById.
· Fixed problem with recovery when LuceneFulltextIndex entries existed in global transaction log.
· BatchInserter now throws exception when trying to create a relationship with same start and end node.
· Fixed problem with broken entries in logical log that could cause recovery to throw an exception
January 13th, 2010· API: moved API to org.neo4j.grapdb and implementation to org.neo4j.kernel.impl
December 28th, 2009· Minor Enhancements, changes and tweaks o Removed compile-time dependency on shell component.
· Batch inserter now has a NeoService version.
· Minor tweak of concurrency characteristics of array map implementation.
· Bug fixes o Fixed problem with half entries in global tx log (due to full disk).
· Fixed some bugs in batch inserter
November 3rd, 2009· Enhancements, new features and major changes
· Core: Read-only mode. It is now possible to start multiple read only
· NeoServices to the same store (using EmbeddedReadOnlyNeo).
· Core: Improved depth first traversal speed on nodes with many
· relationships by loading relationships on demand. This will also
· reduce the stress on GC when traversing over a node with many
· relationships since much fewer objects will be created.
· Minor enhancements, changes and tweaks
· Core: Faster rebuild of id generators after a crash
· Core: Exception cleanup removing bad code either catching Throwable or
· throwing RuntimeException.
· core: Fixed so a read only NeoService can apply a logical log from a
· backup.
· Bug Fixes
· Fixed a bug when using plain buffers instead of memory mapped ones that
· could case recovery to fail due to buffers not being flushed properly.
October 14th, 2009Enhancements:
· Core: New 'batch insert' mode, see http://wiki.neo4j.org/content/Batch_Insert,
· typically used for initial import of bulk data.
· Core: Added a "Windows mode" that uses plain Java buffers instead of mmap().
· Core: Expanded id space for all primitives by adding one more bit.
· Core: Read only transactions have been optimized to have much less overhead.
· Core: New cache implementation based on soft references, which employs faster
· gets and is more concurrent and memory efficient.
· Core: OSGi enabled [thanks Andreas Kollegger]
Minor enhancements, changes and tweaks:
· Shell: Added a traverser command for creating custom traversers.
· Shell: Added support of setting and listing array types.
· Shell: "cd" command can now position itself on a relationship.
· Shell: Output of "man" command has been improved.
Bug fixes:
· Core: Fixed all known batch inserter bugs.
· Core: Fixed a bug that could cause multiple remove of same property to fail
· (should just return null if it doesn't exist).
January 19th, 2009· API: Removed a number of deprecated methods (primarily for relationship type management) from EmbeddedNeas per warning in the previous release.
· API: Transaction is now an interface.
· API: TraversalPosition now has an isStartNode() method.
· API: NotFound and NotInTransaction runtime exceptions have been moved from internal impl package tthe api package.
· API: getRelationshipById is now exposed in NeoService.
· API: A common base interface for Node and Relationship has been added that contains the set/get/remove property operations.
· Core: Made it easy tembed Neo4j in a Spring application. Spring can alsbe configured tuse Neo4j's transaction manager.
· Core: All known bugs have been fixed.
· Core: Removed singletons and made everything IoC.
· Core: Lots of minor optimization and improvements above native store layer (nioneo).
· Core: Cleanup of code (removed non used code) and improved exception handling.
· Core: Improved read performance and parallelism by implementing MVCC-like features. Nlocks are now taken during read-only operations, instead concurrent operations are working against snapshot versions. Rather than full versioning, for higher performance diffs are kept and applied tthe right transactions (those that have modified data). Result is that read operations will execute taking nlocks, make full use of what has already been cached and can execute concurrently with a transaction that modify the same data. Write operations will take locks and use diffs instead of full copy on write (this proved tbe faster and scale better than actually doing a in memory copy of the required data).