Skip to content

Neo4j 1.9 Advanced changelog

Jonas Kalderstam edited this page Mar 31, 2017 · 2 revisions

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