Neo4j 1.9 Advanced changelog - Mats-SX/neo4j GitHub Wiki
###1.9.6 (2014-01-31) Kernel:
- Fixes issue with batch inserter which could lead to record not in use exception when adding properties
- Introduces monitoring for reads/writes to the logical log
Server:
- Fixes issue with transacions leaking when there is an exception while rendering the response
###1.9.5 (2013-11-11) Kernel:
- Fixed NPE in PersistenceWindowPool when concurrently loading non-mapped windows
- Fixed potential deadlock in PersistenceWindowPool cause by negative mark count
- Performance optimizations for best-first selector
- Database now waits on a timeout for transactions to finish before actually shutting down, while preventing new transactions from starting up
Server:
- Shutdown hook is now properly removed on normal shutdown, removing potential thread leak which might prevent orderly exit of the VM process
Graph Algorithms:
- Fixed potential suboptimal path finding in A* executions for particular graph topologies. Also improved performance and memory consumption of A*
###1.9.4 (2013-09-19) Lucene index:
- Fixed issue where querying an index for ":" while having removed entities from it in the same transaction might result in exceptions.
###1.9.3 (2013-08-30) Logging in console is now consistent across modules and more informative
Kernel:
- Remove hard dependency on Logback
- Introduction of logical_log_rotation_threshold to control log rotation.
- Autoconfigurator can handle cases where physical memory is less than the configured JVM heap
- Fixes index out of bounds errors when iterating over relationships
- Fixes race in persistent window pool which might lead to inconsistent data
Cypher:
- Fixes problems with extra columns showing up in some conditions
Server:
- Reintroduces, deprecated, the Configurator.getThirdpartyJaxRsClasses. Fixes, among other things, the authentication-extension
- Server now properly returns the version when asked through REST
Index:
- Stop keeping norms in Lucene indexes, saving space and memory
###1.9.2 (2013-07-16) Kernel:
- When flushing persistent windows, do so only if dirty. This is a performance improvement for certain scenarios.
- Fixes bug where loading relationship chains with high ids would cause them to be ignored when iterating over them.
Cypher:
- Fixes problem where Cypher would see changes while the query was running
Server:
- The Content-Type is now correctly used to set the text encoding, not Content-Encoding
- Fixes concurrency issue with generation of JSON responses
- HTTPS scheme is now properly propagated on batch requests
###1.9.1 (2013-06-24) Kernel:
- Fixes bug where creating an Index with an invalid configuration would not properly clean up the configuration for it.
- Fixes race condition that occasionally would make Node.getSingleRelationship() mistakenly fail.
- Fixes compliance for non-logback logging implementations
- Cleanup of transactions that fail commit happens under the same lock as the commit
Cypher:
- Cypher execution results are now closeable
- Allow | to be used as a separator in foreach and extract+reduce
Server:
- Fixes bug where the last security rule would be the only one respected, if multiple would be present
- Support for chained certificates
- Enabled streaming support for paged traversals
Packaging:
- Improved handling of JAVA_HOME on OSX
###1.9 (2013-05-13) Kernel:
- Performance improvement on initial loading of relationship types during startup
###1.9.RC2 (2013-04-30) Kernel:
- Fixes race conditions on usage of persistence windows' byte buffers that occasionally led to buffer over/underflows.
Server:
- Create unique node with properties that have collection values properly casts them to arrays
- Data visualization editor now navigates back to the data browser on save and cancel
Cypher:
- Fixes problem when sending down custom queries to index providers
###1.9.RC1 (2013-04-15) Lucene Index:
- Lucene upgraded to 3.6.2
Server:
- Introduces new splash screen containing a guide to Neo4j. Several small aesthetic improvements
Cypher:
- Fixed #578 - problem with profiling queries that use LIMIT
- Fixes #550 - problem when using START after WITH
- Allows single node patterns in MATCH
- Fixes problem for some patterns and all-nodes start points
- Fixes #650 - issue when doing multiple aggregation expressions on the same identifier
- Added timestamp function
Packaging:
- plugins/ subdirectory is searched recursively for server plugins
###1.9.M05 (2013-03-05)
Now compiles and runs under JDK 7
Kernel:
- Concurrent modifications to relationship chains now do now lead to RecordNotInUse exceptions or cache poisoning
- Proper tx management will now make negative transaction counts impossible
- IndexProvider is now deprecated, replaced by KernelExtensionFactory
- Store locks are respected from read only instances too
- grab_file_lock configuration setting is now deprecated
Lucene Index:
- LuceneIndexProvider is now replaced by LuceneKernelExtension
Server:
- Added support for X-Forwarded-Host and X-Forwarded-Proto headers to allow parameterising of links in data for hosting behind proxy servers.
JMX:
- JMX will now provide info on all configuration values, including the defaults not explicitly set
Cypher:
- Fixes #450 - Predicates in WHERE are not evaluated correctly for certain patterns
- Fixes problem with null comparisons and optional relationships
- Made it possible to run the parser concurrently
- DISTINCT is now lazy, and keeps the incoming ordering
- Added execution plan descriptions to execution results
- Fixes #464 - getDeletedRelationships does not work for javacompat.ExecutionResult
- Fixes #535 - 'INTERNAL_SORT' columns show when doing RETURN * ORDER BY
- Added experimental profiled query support
- Fixes #489 - CREATE UNIQUE does not work as expected inside FOREACH
###1.9.M04 (2013-01-17) Kernel:
- Start entries are now explicitly marked as written, solves a bug that might cause recovery to fail
Server:
- Increased performance for rest-batch-operations by a factor of 100
Cypher:
- Clearer error message for when aggregations are used in ORDER BY and not in RETURN
- Fixes #394 - Identifiers inside of FOREACH get the wrong type
- Fixes #390 - IN/ANY/NONE/ANY/SINGLE causes RuntimeException for some patterns
- Fixes #387 - Some patterns produced "Unexpected traversal state" in Cypher
- Upgraded the Scala version to 2.10
- Fixes #355 - Collections in collections are still Scala collections instead of Java collections
###1.9.M03 (2012-12-21) Server:
- Pulled out Gremlin as separate plugin to support different versions
Cypher:
- Fixes #336 - Patterns that re-use a pattern node can produce non-existing matches
- Fixes #369 - The substring-function sometimes fails when no length is specified
###1.9.M02 (2012-11-30) Kernel:
- Made sure that auto-indexing removed graph elements from indexes when they are delete
- OrderByTypeExpander keeps ordering of type AND direction
- Fixed an issue where a lock on a store was sometimes not released
- Old GraphDatabaseSetting classes are now wrappers for Settings instances
- Fixes an issue where an incomplete 2PC transaction could cause recovery to not be triggered
- Optimizations for read performance
- Cache refers to relationship types as ints instead of Strings.
- Binary search on sorted arrays for finding properties and relationship types in the cache.
- Less objects instantiated during getting and iterating relationships.
- Reduced number of map lookups significantly for a getProperty call, especially outside transaction or in transactions without any changes. (previously 8 lookups whereof 2 synchronized, now down to as low as 2)
- Uses ThreadLocal as mapper from thread to transaction
- Refactored LockReleaser into TransactionState, associated with each transaction instead
Server:
- Server now allows - under some specific circumstances - setting empty arrays as properties. Specifically, it is allowed if there is a pre-existing array property on the entity from which the server can infer the type of array to store.
- Traversal Javascript is now security sandboxed. It is possible to turn the sandbox off for the next two releases, for backwards compatibility.
Cypher:
- The traversal pattern matcher now supports variable length relationship patterns
- Fixes #946 - HAS(...) fails with ThisShouldNotHappenException for some patterns
- Made Cypher better at keeping a numeric type. Adding two integers now returns an integer, and not a double.
- Major refactoring to make certain Cypher is more lazy
- When asking for the top x rows by some value, Cypher will now only keep a list the size of x
- Fix so identifiers created inside a foreach can be used by other statements in the foreach
- Fix for problems when using patterns with multiple unnamed nodes
- Fixes problems when doing ORDER BY ... LIMIT x. When x is larger than the input set, sorting was never done.
###1.9.M01 (2012-10-23) Management:
- High Availability beans now expose information relevant to the new way clusters work
Kernel:
- XaDatasources now implement lifecycle and their registration with XaDatasourceManager triggers TxManager recovery on startup
- Neo4j logical log now handles running out of disk space at a critical point gracefully.
- Kernel extensions are now factories that create instances which participate in the database's lifecycle
- Fixes a race condition around relationship chain loading from multiple threads on the same node
Cypher:
- Refactored the type system from the bottom up
- Predicates can now be returned and used to set properties
- Fixes #797: CREATE UNIQUE now makes sure used identifiers have the same properties even if they are re-used without the properties
- Added the traversal matcher, which uses the new traversal framework abilities to do pattern matching. It should provide for nice performance benefits for a lot of queries.
- Fixed #866: Changed the LRU cache to make it safe to use concurrently, and made the parser single threaded
- Added the reduce() functionality
- Made addition automatically convert numbers to strings when adding the two together
- Added the string functions: str(), replace(), substring(), left(), right(), ltrim(), rtrim(), trim(), lower(), upper()
- Added the possibility to use ORDER BY, SKIP and LIMIT together with WITH
- Fixes #904: CREATE UNIQUE doesn't work with parameter maps
- Fixes #908: Parameters do not survive WITH if it has aggregation
- SET can now be used to set properties on nodes and relationships from maps or other graph elements