Amazon Neptune Engine Version 1.1.0.0 (2021-11-19)
As of 2021-11-19, engine version 1.1.0.0 is being generally deployed. Please note that it takes several days for a new release to become available in every region.
Important
Upgrading to this engine release from a version earlier
than 1.1.0.0
also triggers an operating-system upgrade on all the
instances in your DB cluster. Because active write requests that occur during
the operating-system upgrade will not be processed, you must pause all write
workloads to the cluster being upgraded, including bulk data loads, before
starting the upgrade.
In order to complete the upgrade successfully, each subnet in every availability zone (AZ) must have at least one IP address available per Neptune instance. For example, if there is one writer instance and two reader instances in subnet 1, and two reader instances in subnet 2, subnet 1 must have at least 3 IP addresses free and subnet 2 must have at least 2 IP addresses free before starting the upgrade.
At the start of the upgrade, Neptune generates a snapshot with a name composed
of preupgrade
followed by an autogenerated identifier based on your DB
cluster information. You will not be charged for this snapshot, and you can use it
to restore your DB cluster if anything goes wrong during the upgrade process.
When the engine upgrade itself has completed, the new engine version will be available briefly on the old operating system, but in less than 5 minutes all the the instances in your cluster will simultaneously begin an operating-system upgrade. Your DB cluster will be unavailable at this point for a number of minutes. You may resume write workloads after the upgrade completes.
This process generates the following events:
-
Per-cluster event messages:
Upgrade in progress: Creating pre-upgrade snapshot [preupgrade-
(autogenerated snapshot ID)
]Database cluster major version has been upgraded
-
Per-instance event messages:
Applying off-line patches to DB instance
DB instance shutdown
Finished applying off-line patches to DB instance
DB instance restarted
Note
Starting with this engine release, Neptune no
longer supports R4 instance types. If you are using an R4
instance in your DB cluster, you must manually replace it with a different instance type
before upgrading to this release. If your writer instance is an R4
, follow
these instructions to move it.
Subsequent patch releases for this release
New Features in This Engine Release
-
Introduced general-purpose
T4g
and memory-optimizedR6g
database instances powered by the AWS Graviton2 processor. Graviton2-based instances deliver significantly better price/performance than comparable current-generation x86-based instances for a variety of workloads. Applications work as normal on these new instance types, and there is no need to port application code when you upgrade to them. For more information on pricing and regional availability, see the Amazon Neptune pricing page
. Introduced custom models in Neptune ML.
Added support for SPARQL inference queries in Neptune ML.
-
Added a new streams endpoint for property-graph data, namely:
https://
Neptune-DNS
:8182/propertygraph/streamThe output format of this endpoint, named
PG_JSON
, is exactly the same as as theGREMLIN_JSON
format output by the oldgremlin/stream
.The new
propertygraph/stream
endpoint extends Neptune stream support to openCypher and replaces thegremlin/stream
endpoint with its associatedGREMLIN_JSON
output format.
Improvements in This Engine Release
-
Made improvements to Neptune streams:
Added a
commitTimestamp
field to therecords
object the Neptune streams change-log response format, to provide a timestamp for each record in a change-log stream.Added a
LATEST
value to theiteratorType
parameter, allowing you to retrieve the last valid eventId from the streams. See Calling the Streams API.
Added support for getting the inference confidence score in Gremlin node classification and regression queries.
Added support for the
OPTIONAL MATCH
clause in openCypher.Added support for the
MERGE
clause in openCypher.Added support for using
ORDER BY
inWITH
clauses in openCypher.Added support for pattern comprehension in openCypher, and extended support for pattern expression beyond existence checking.
Extended support for the
DELETE
andDELETE DETACH
clauses in openCypher, so that they can now be used with other update clauses.Extended support for
CREATE
andUPDATE
clauses used withRETURN
in openCypher.Added support in the DFE engine for the Gremlin
limit
,range
, andskip
steps.Improved query execution in the DFE engine when neither
explain
norprofile
is requested.Improved query execution in the DFE engine for the
value
expression.-
Improved a number of chained Gremlin conditional insert patterns so as to avoid concurrent-modification exceptions and allow chaining of query patterns like these:
-
Conditional vertex insertion by ID, such as:
g.V(
ID
).fold().coalesce(unfold(), g.addV("L1").property(id,ID
)) -
Conditional vertex insertion with multiple labels, such as:
g.V(
ID
).fold().coalesce(unfold(), g.addV("L1::L2").property(id,ID
)) -
Conditional edge insertion by ID, such as:
g.E(
ID
).fold().coalesce(unfold(), V(from
).addE(label
).to(V(to
)).property(id,ID
)) -
Conditional edge insertion with multiple labels, such as:
g.E(
ID
).fold().coalesce(unfold(), g.addE(label
).from(V(from
)).to(V(to
)).property(id,ID
)) -
Conditional insertion followed by a query, such as:
g.V(
ID
).fold().coalesce(unfold(), g.addV("L1").property(id,ID
)).project("myvalues").by(valueMap()) -
Conditional insertion with added properties, such as:
g.V(
ID
).fold().coalesce(unfold(), g.addV("L1").property(id,ID
).property("name","pumba"))
-
Defects Fixed in This Engine Release
Disabled the statistics feature on
T3.medium
instance types, which were not able to support it.Fixed a SPARQL bug in
explain
with anIN
function that took non-constant values.
Query-Language Versions Supported in This Release
Before upgrading a DB cluster to version 1.1.0.0, make sure that your project is compatible with these query-language versions:
Gremlin version:
3.4.11
SPARQL version:
1.1
Upgrade Paths to Engine Release 1.1.0.0
You can manually upgrade any previous Neptune engine release to this release.
You will not automatically be upgraded to this release.
Upgrading to This Release
If a DB cluster is running an engine version from which there is an upgrade path to this release, it is eligible to be upgraded now. You can upgrade any eligible cluster using the DB cluster operations on the console or by using the SDK. The following CLI command will upgrade an eligible cluster immediately:
For Linux, OS X, or Unix:
aws neptune modify-db-cluster \ --db-cluster-identifier
(your-neptune-cluster)
\ --engine-version 1.1.0.0 \ --allow-major-version-upgrade \ --apply-immediately
For Windows:
aws neptune modify-db-cluster ^ --db-cluster-identifier
(your-neptune-cluster)
^ --engine-version 1.1.0.0 ^ --allow-major-version-upgrade ^ --apply-immediately
Instead of --apply-immediately
, you can specify
--no-apply-immediately
. To perform a major version upgrade, the
allow-major-version-upgrade parameter is required. Also, be sure to include
the engine version or your engine may be upgraded to a different version.
If your cluster uses a custom cluster parameter group, be sure to include this paramater to specify it:
--db-cluster-parameter-group-name
(name of the custom DB cluster parameter group)
Similarly, if any instances in the cluster use a custom DB parameter group, be sure to include this parameter to specify it:
--db-instance-parameter-group-name
(name of the custom instance parameter group)
Always test before you upgrade
When a new major or minor Neptune engine version is released, always test your Neptune applications on it first before upgrading to it. Even a minor upgrade could introduce new features or behavior that would affect your code.
Start by comparing the release notes pages from your current version to those of the targeted version to see if there will be changes in query language versions or other breaking changes.
The best way to test a new version before upgrading your production DB cluster is to clone your production cluster so that the clone is running the new engine version. You can then run queries on the clone without affecting the production DB cluster.
Always create a manual snapshot before you upgrade
Before performing an upgrade, we strongly recommend that you always create a manual snapshot of your DB cluster. Having an automatic snapshot only offers short-term protection, whereas a manual snapshot remains available until you explicitly delete it.
In certain cases Neptune creates a manual snapshot for you as a part of the upgrade process, but you should not rely on this, and should create your own manual snapshot in any case.
When you are certain that you won't need to revert your DB cluster to its
pre-upgrade state, you can explicitly delete the manual snapshot that you created
yourself, as well as the manual snapshot that Neptune might have created. If Neptune
creates a manual snapshot, it will have a name that begins with preupgrade
,
followed by the name of your DB cluster, the source engine version, the target engine
version, and the date.
Note
If you are trying to upgrade while a pending action is in process, you may encounter an error such as the following:
We're sorry, your request to modify DB cluster (cluster identifier) has failed. Cannot modify engine version because instance (instance identifier) is running on an old configuration. Apply any pending maintenance actions on the instance before proceeding with the upgrade.
If you encounter this error, wait for the pending action to finish, or trigger a maintenance window immediately to let the previous upgrade complete.
For more information about upgrading your engine version, see Maintaining your Amazon Neptune DB Cluster. If you have any questions or concerns, the AWS Support
team is available on the community forums and through AWS Premium Support