Amazon Neptune Engine Updates 2019-07-26 - Amazon Neptune

Amazon Neptune Engine Updates 2019-07-26


Amazon Neptune is generally available. All new Neptune DB clusters, including those restored from snapshots, will be created in Neptune after the engine update is complete for that Region.

Existing clusters can be upgraded to this release immediately using the DB cluster operations on the console or by using the SDK.

IMPORTANT: Because the TinkerPop upgrade to version 3.4.1 can be a breaking change for some customers, this engine release (version will NOT automatically be applied during maintenance windows.

To upgrade a DB cluster to this engine version, you must update it manually. You can use the following CLI command to do so:

aws neptune apply-pending-maintenance-action \ --apply-action system-update \ --opt-in-type immediate \ --resource-identifier arn:aws:rds:<region>:<account number>:<resourcetype>:<name>

Updates are applied to all instances in a DB cluster simultaneously. An update requires a database restart on all instances in a DB cluster, so you will experience downtime ranging from 20–30 seconds to several minutes, after which you can resume using your DB cluster or clusters. You can view or change your maintenance window settings on the Neptune console.

If you have any questions or concerns, the AWS Support team is available on the community forums and through AWS Premium Support.

New Features in This Engine Release

  • Upgraded to TinkerPop 3.4.1 (see TinkerPop Upgrade Information, and TinkerPop 3.4.1 Change Log).

    For Neptune customers, these changes provide new functionality and improvements, such as:

    • GraphBinary is now available as a serialization format.

    • A keep-alive bug that caused memory leaks in the TinkerPop Java driver has been fixed, so a work-around is no longer necessary.

    However, in a few cases, they may affect existing Gremlin code in Neptune. For example:

    • valueMap() now returns a Map<Object,Object> instead of a Map<String,Object>.

    • Inconsistent behavior of the within() step was fixed so it would work consistently with other steps. Previously, types had to match for comparisons to work. Now, numbers of different types can be accurately compared. For example, 33 now compares as equal to 33L, which it did not before.

    • A bug in ReducingBarrierStep was fixed, so it now returns no value if no elements are available for output.

    • The order of select() scopes changed (the order is now maps, side-effects, paths). This changes the results of the rare queries that combine side-effects and select with the same key name for side-effects as for select.

    • bulkSet() is now part of the GraphSON protocol. Queries that end with toBulkSet() won't work with older clients.

    • One parameterization of the Submit() step was removed from the 3.4 client.

    Many other changes introduced in TinkerPop 3.4 do not affect current Neptune behavior. For example, Gremlin io() was added as a step to Traversal and is now deprecated in Graph, but was never enabled in Neptune.

  • Added support for single cardinality vertex properties to the bulk loader for Gremlin, for loading property graph data.

  • Added an option to overwrite the existing values for a single-cardinality property in the bulk loader.

  • Added the ability to retrieve the status of a Gremlin query, and to cancel a Gremlin query.

  • Added a query hint for SPARQL query timeouts.

  • Added the ability to see the instance role in the status API (see Instance Status).

  • Added support for database cloning (see Database Cloning in Neptune).

Improvements in This Engine Release

  • Improved the SPARQL Query Explanation to show graph variables from FROM clauses.

  • Improved performance for SPARQL in filters, equal filters, VALUES clauses, and range counts.

  • Improved performance for Gremlin step ordering.

  • Improved performance for Gremlin .repeat.dedup traversals.

  • Improved the performance of Gremlin valueMap() and path().by() traversals.

Defects Fixed in This Engine Release

  • Fixed multiple issues with SPARQL property paths including operation with named graphs.

  • Fixed an issue with SPARQL CONSTRUCT queries causing memory issues.

  • Fixed an issue with the RDF Turtle parser and local names.

  • Fixed an issue to correct error messages displayed to users.

  • Fixed an issue with Gremlin repeat()...drop() traversals.

  • Fixed an issue with the Gremlin drop() step.

  • Fixed an issue with Gremlin label filters.

  • Fixed an issue with Gremlin query timeouts.