

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Amazon Neptune 引擎版本 1.1.1.0（2022 年 4 月 19 日）
<a name="engine-releases-1.1.1.0"></a>

截至 2022 年 4 月 19 日，引擎版本 1.1.1.0 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

**重要**  
**从早于 `1.1.0.0` 的版本升级到此引擎版本还会触发数据库集群中所有实例的操作系统升级。由于不会处理操作系统升级过程中发生的活动写入请求，因此在开始升级之前，必须暂停对正在升级的集群的所有写入工作负载，包括批量数据加载。**  
为了成功完成升级，每个可用区 (AZ) 中的每个子网对于每个 Neptune 实例都必须至少有一个可用的 IP 地址。例如，如果子网 1 中有一个写入器实例和两个读取器实例，子网 2 中有两个读取器实例，则在开始升级之前，子网 1 必须至少有 3 个空闲的 IP 地址，子网 2 必须至少有 2 个空闲的 IP 地址。  
升级开始时，Neptune 会根据您的数据库集群信息生成一个快照，其名称由 `preupgrade` 后跟自动生成的标识符组成。您无需为此快照付费，如果升级过程中出现任何问题，您可以使用它来还原数据库集群。  
当引擎升级本身完成后，新的引擎版本将在旧操作系统上短暂可用，但不到 5 分钟后，集群中的所有实例将同时开始操作系统升级。此时，您的数据库集群将在几分钟内不可用。升级完成后，您可以恢复写入工作负载。  
此过程会生成以下事件：  
每个集群的事件消息：  
`Upgrade in progress: Creating pre-upgrade snapshot [preupgrade-(autogenerated snapshot ID)]`
`Database cluster major version has been upgraded`
每个实例的事件消息：  
`Applying off-line patches to DB instance`
`DB instance shutdown`
`Finished applying off-line patches to DB instance`
`DB instance restarted`

## 此版本的后续补丁版本
<a name="engine-releases-1.1.1.0-patches"></a>
+ [维护版本：1.1.1.0.R2（2022 年 5 月 16 日）](engine-releases-1.1.1.0.R2.md) 
+ [版本：1.1.1.0.R3（2022 年 6 月 7 日）](engine-releases-1.1.1.0.R3.md) 
+ [版本：1.1.1.0.R4（2022 年 6 月 23 日）](engine-releases-1.1.1.0.R4.md) 
+ [版本：1.1.1.0.R5（2022 年 7 月 21 日）](engine-releases-1.1.1.0.R5.md) 
+ [版本：1.1.1.0.R6（2022 年 9 月 23 日）](engine-releases-1.1.1.0.R6.md) 
+ [版本：1.1.1.0.R7（2023 年 1 月 23 日）](engine-releases-1.1.1.0.R7.md) 

## 此引擎版本中的新增功能
<a name="engine-releases-1.1.1.0-features"></a>
+ [openCypher 查询语言](access-graph-opencypher.md)现在可普遍用于生产环境。
**警告**  
此版本对使用 openCypher 和 IAM 身份验证的代码进行了重大更改。在 openCypher 的 Neptune 预览版中，IAM 签名中的主机字符串包含协议，例如 `bolt://`，如下所示：  

  ```
  "Host":"bolt://(host URL):(port)"
  ```
从该引擎版本开始，必须省略协议：  

  ```
  "Host":"(host URL):(port)"
  ```
有关示例，请参阅 [使用 Bolt 协议](access-graph-opencypher-bolt.md)。
+ 增加了对 TinkerPop `3.5.2` 的支持。[此版本中的更改](https://github.com/apache/tinkerpop/blob/3.5.2/CHANGELOG.asciidoc#release-3-5-2)包括对远程事务的支持和对会话的字节码支持（使用 [https://tinkerpop.apache.org/docs/current/reference/#transactions](https://tinkerpop.apache.org/docs/current/reference/#transactions)），以及在 Gremlin 语言中添加了 `datetime()` 函数。
**警告**  
TinkerPop 3.5.0、3.5.1 和 3.5.2 中引入了几项重大更改，这些更改可能会影响您的 Gremlin 代码。例如，如下所示的[使用由 GraphTraversalSource 生成的遍历作为子项](https://issues.apache.org/jira/browse/TINKERPOP-2361)将不再起作用：`g.V().union(identity(), g.V())`。  
现在改用如下所示的匿名遍历：`g.V().union(identity(), __.V())`。
+ 增加了对 [AWS 全局条件键](iam-data-condition-keys.md#iam-data-global-condition-keys)的支持，您可以在 [IAM 数据访问策略](iam-admin-policies.md)中使用这些条件键，这些策略控制对存储在 Neptune 数据库集群中的数据的访问。
+ [Neptune DFE 查询引擎](neptune-dfe-engine.md)现在可以通过 openCypher 查询语言在生产环境中普遍使用，但尚未可用于 Gremlin 和 SPARQL 查询。现在，您可以使用它自己的 [neptune\$1dfe\$1query\$1engine](parameters.md#parameters-instance-parameters-neptune_dfe_query_engine) 实例参数而不是实验室模式参数来启用它。

## 此引擎版本中的改进
<a name="engine-releases-1.1.1.0-improvements"></a>
+ 向 [openCypher](access-graph-opencypher.md) 添加了新特征，例如参数化查询支持、参数化查询的抽象语法树 (AST) 缓存、可变长度路径 (VLP) 改进以及新的运算符和子句。有关当前的语言支持级别，请参阅[Amazon Neptune 中的 openCypher 规范合规性](feature-opencypher-compliance.md)。
+ 对 openCypher 进行了显著的性能改进，适用于简单的读写工作负载，与版本 1.1.0.0 相比，吞吐量更高。
+ 移除了 openCypher 处理可变长度路径的双向和深度限制。
+ 在 DFE 引擎中完成了对 Gremlin `within` 和 `without` 谓词的支持，包括它们与其它谓词运算符组合的情况。例如：

  ```
  g.V().has('age', within(12, 15, 18).or(gt(30)))
  ```
+ 当范围为全局（即不是 `order(local)`）且不使用 `by()` 调制器时，在 DFE 引擎中扩展了对 Gremlin `order` 步骤的支持。例如，此查询现在将具有 DFE 支持：

  ```
   g.V().values("age").order()
  ```
+ 在 [Neptune 流更改日志](streams-using-api-reponse.md)响应格式中添加了一个 `isLastOp` 字段，以指示记录是其事务中的最后一个操作。
+ 启用审计日志记录后，显著提高了审计日志记录的性能并减少了延迟。
+ 在审计日志中将 Gremlin WebSocket 字节码和 HTTP 查询转换为用户可读的格式。现在可以直接从审计日志中复制查询，以便在 Neptune 笔记本和其它地方执行。请注意，对当前审计日志格式的这一更改构成了重大更改。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.1.1.0-defects"></a>
+ 修复了一个罕见的 Gremlin 错误，即在组合使用嵌套 `filter()` 和 `count()` 步骤时未返回任何结果，例如在以下查询中：

  ```
  g.V("1").filter(out("knows")
          .filter(in("knows")
          .hasId("notExists"))
          .count())
  ```
+ 修复了一个 Gremlin 错误，即在将 `to()` 或 `from()` 遍历中聚合步骤存储的顶点与 `addE` 步骤结合使用时返回错误。此类查询的示例为：

  ```
  g.V("id").aggregate("v").out().addE().to(select("v").unfold()))
  ```
+ 修正了使用 DFE 引擎时，`not` 步骤在边缘情况下失败的 Gremlin 错误。例如：

  ```
  g.V().not(V())
  ```
+ 修正了 `sideEffect` 值在 `to()` 和 `from()` 遍历中不可用的 Gremlin 错误。
+ 修复了偶尔会导致快速重置以触发实例失效转移的错误。
+ 修复了批量加载程序错误，即在开始下一个加载任务之前不会关闭失败的事务。
+ 修复了批量加载程序错误，即内存不足可能会导致系统崩溃。
+ 添加了重试功能以修复批量加载程序错误，即在失效转移后，加载程序等待的时间不够长，IAM 凭证无法变为可用。
+ 修复了未正确清除非查询端点（例如 `status` 端点）的内部凭证缓存的错误。
+ 修复了一个流错误，以确保流提交序列号的顺序正确。
+ 修复了在启用 IAM 的集群上长时间运行的连接在十天内终止的错误。

## 此版本支持的查询语言版本
<a name="engine-releases-1.1.1.0-query-versions"></a>

在将数据库集群升级到版本 1.1.1.0 之前，请确保您的项目与以下查询语言版本兼容：
+ *支持的 Gremlin 最早版本：*`3.5.2`
+ *支持的 Gremlin 最新版本：*`3.5.4`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.1.1.0 的升级路径
<a name="engine-releases-1.1.1.0-upgrade-paths"></a>

您可以将任何以前的 Neptune 引擎版本手动升级到此版本。请注意，主版本引擎 (1.1.0.0) 之前的版本需要更长的时间才能升级到此版本。

您不会自动升级到此版本。

## 升级到此版本
<a name="engine-releases-1.1.1.0-upgrading"></a>

**重要**  
**从 `1.1.0.0` 之前的任何版本升级到此引擎版本还会触发数据库集群中所有实例的操作系统升级。由于不会处理操作系统升级过程中发生的活动写入请求，因此在开始升级之前，必须暂停对正在升级的集群的所有写入工作负载，包括批量数据加载。**  
升级开始时，Neptune 会根据您的数据库集群信息生成一个快照，其名称由 `preupgrade` 后跟自动生成的标识符组成。您无需为此快照付费，如果升级过程中出现任何问题，您可以使用它来还原数据库集群。  
当引擎升级本身完成后，新的引擎版本将在旧操作系统上短暂可用，但不到 5 分钟后，集群中的所有实例将同时开始操作系统升级。此时，您的数据库集群将在大约 6 分钟内不可用。升级完成后，您可以恢复写入工作负载。  
此过程会生成以下事件：  
每个集群的事件消息：  
`Upgrade in progress: Creating pre-upgrade snapshot [preupgrade-(autogenerated snapshot ID)]`
`Database cluster major version has been upgraded`
每个实例的事件消息：  
`Applying off-line patches to DB instance`
`DB instance shutdown`
`Finished applying off-line patches to DB instance`
`DB instance restarted`

如果数据库集群运行的引擎版本有此版本的升级路径，则可以立即对其进行升级。您可以使用控制台上的数据库集群操作或使用 SDK 升级任何符合条件的集群。以下 CLI 命令将立即升级符合条件的集群：

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine neptune \
4.     --engine-version 1.1.1.0 \
5.     --allow-major-version-upgrade \
6.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine neptune ^
4.     --engine-version 1.1.1.0 ^
5.     --allow-major-version-upgrade ^
6.     --apply-immediately
```

您可以指定 `--no-apply-immediately`，而不是 `--apply-immediately`。要执行主要版本升级，需要使用 allow-major-upgrade 参数。另外，请务必包括引擎版本，否则您的引擎可能会升级到其它版本。

如果集群使用自定义集群参数组，请确保包含以下参数以指定此参数组：

```
    --db-cluster-parameter-group-name (name of the custom DB cluster parameter group)
```

同样，如果集群中的任何实例使用自定义数据库参数组，请确保包含此参数以指定此参数组：

```
    --db-instance-parameter-group-name (name of the custom instance parameter group)
```

### 升级前始终先测试
<a name="engine-1.1.1.0-test-before-upgrading"></a>

发布新的主要或次要 Neptune 引擎版本时，请务必先在该版本上测试您的 Neptune 应用程序，然后再升级到该版本。即使是次要版本升级，也可能引入会影响代码的新特征或行为。

首先，将当前版本的发行说明页面与目标版本的发行说明页面进行比较，以查看查询语言版本是否会发生变化或是否会发生其它重大更改。

在升级生产数据库集群之前测试新版本的最佳方法是克隆生产集群，以便克隆运行新的引擎版本。然后，您可以在不影响生产数据库集群的情况下在克隆上运行查询。

### 请在升级之前始终创建手动快照
<a name="engine-1.1.1.0-snapshot-before-upgrading"></a>

在执行升级之前，我们强烈建议您始终创建数据库集群的手动快照。拥有自动快照只能提供短期保护，而手动快照在您显式删除它之前仍然可用。

在某些情况下，作为升级过程的一部分，Neptune 会为您创建手动快照，但您不应依赖此快照，无论如何都应创建自己的手动快照。

当您确定不需要将数据库集群恢复到其升级前的状态时，可以显式删除自己创建的手动快照以及 Neptune 可能已创建的手动快照。如果 Neptune 创建手动快照，则其名称将以 `preupgrade` 开头，后跟数据库集群的名称、源引擎版本、目标引擎版本和日期。

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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.
```
如果遇到此错误，请等待待处理操作完成，或者立即触发维护时段，让之前的升级完成。

有关升级引擎版本的更多信息，请参阅[维护 Amazon Neptune 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.1.1.0.R7（2023 年 1 月 23 日）
<a name="engine-releases-1.1.1.0.R7"></a>

截至 2023 年 1 月 23 日，引擎版本 1.1.1.0.R7 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

**重要**  
**从早于 `1.1.0.0` 的版本升级到此引擎版本还会触发数据库集群中所有实例的操作系统升级。由于不会处理操作系统升级过程中发生的活动写入请求，因此在开始升级之前，必须暂停对正在升级的集群的所有写入工作负载，包括批量数据加载。**  
为了成功完成升级，每个可用区 (AZ) 中的每个子网对于每个 Neptune 实例都必须至少有一个可用的 IP 地址。例如，如果子网 1 中有一个写入器实例和两个读取器实例，子网 2 中有两个读取器实例，则在开始升级之前，子网 1 必须至少有 3 个空闲的 IP 地址，子网 2 必须至少有 2 个空闲的 IP 地址。  
升级开始时，Neptune 会根据您的数据库集群信息生成一个快照，其名称由 `preupgrade` 后跟自动生成的标识符组成。您无需为此快照付费，如果升级过程中出现任何问题，您可以使用它来还原数据库集群。  
当引擎升级本身完成后，新的引擎版本将在旧操作系统上短暂可用，但不到 5 分钟后，集群中的所有实例将同时开始操作系统升级。此时，您的数据库集群将在几分钟内不可用。升级完成后，您可以恢复写入工作负载。  
此过程会生成以下事件：  
每个集群的事件消息：  
`Upgrade in progress: Creating pre-upgrade snapshot [preupgrade-(autogenerated snapshot ID)]`
`Database cluster major version has been upgraded`
每个实例的事件消息：  
`Applying off-line patches to DB instance`
`DB instance shutdown`
`Finished applying off-line patches to DB instance`
`DB instance restarted`

## 此引擎版本中的改进
<a name="engine-releases-1.1.1.0.R7-improvements"></a>
+ 提高了涉及 `MERGE` 和 `OPTIONAL MATCH` 的 openCypher 查询的性能。
+ 改进了 openCypher 查询的性能，这些查询涉及文本值映射列表的 `UNWIND`。
+ 改进了对 `id` 具有 `IN` 筛选条件的 openCypher 查询的性能。例如：

  ```
  MATCH (n) WHERE id(n) IN ['1', '2', '3'] RETURN n
  ```
+ 各种 Gremlin 运算符的性能改进和正确性修复，包括 `repeat`、`coalesce`、`store` 和 `aggregate`。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.1.1.0.R7-defects"></a>
+ 修复了一个 openCypher 错误，即如果在请求失败后提交，则使用 HTTP 保持活动状态的请求可能会被错误关闭。
+ 修复了一个 openCypher 错误，即列表或映射列表的参数类型并非总是能正确地解释。
+ 修复了一个 openCypher 错误，即在 Bolt 和 SPARQL-JSON 中，查询返回字符串 `"null"`，而不是 null 值。
+ 修复了查询超时失败和内存不足错误的 openCypher 错误代码和错误消息。
+ 修复了一个 Gremlin 错误，该错误导致 `valueMap()` 无法在 DFE 引擎的 `by()` 遍历下进行优化。
+ 修复了死锁探测器逻辑偶尔会导致引擎无响应的问题。
+ 修复了一个审计日志错误，该错误导致记录不必要的信息以及日志中缺少某些字段。

## 此版本支持的查询语言版本
<a name="engine-releases-1.1.1.0.R7-query-versions"></a>

在将数据库集群升级到版本 1.1.1.0.R7 之前，请确保您的项目与以下查询语言版本兼容：
+ *支持的 Gremlin 最早版本：*`3.5.2`
+ *支持的 Gremlin 最新版本：*`3.5.3`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.1.1.0.R7 的升级路径
<a name="engine-releases-1.1.1.0.R7-upgrade-paths"></a>

如果您正在运行引擎版本 `1.1.1.0`，您的集群将在下一个维护时段内自动升级到此补丁版本。

## 升级到此版本
<a name="engine-releases-1.1.1.0.R7-upgrading"></a>

**重要**  
**从 `1.1.0.0` 之前的任何版本升级到此引擎版本还会触发数据库集群中所有实例的操作系统升级。由于不会处理操作系统升级过程中发生的活动写入请求，因此在开始升级之前，必须暂停对正在升级的集群的所有写入工作负载，包括批量数据加载。**  
升级开始时，Neptune 会根据您的数据库集群信息生成一个快照，其名称由 `preupgrade` 后跟自动生成的标识符组成。您无需为此快照付费，如果升级过程中出现任何问题，您可以使用它来还原数据库集群。  
当引擎升级本身完成后，新的引擎版本将在旧操作系统上短暂可用，但不到 5 分钟后，集群中的所有实例将同时开始操作系统升级。此时，您的数据库集群将在大约 6 分钟内不可用。升级完成后，您可以恢复写入工作负载。  
此过程会生成以下事件：  
每个集群的事件消息：  
`Upgrade in progress: Creating pre-upgrade snapshot [preupgrade-(autogenerated snapshot ID)]`
`Database cluster major version has been upgraded`
每个实例的事件消息：  
`Applying off-line patches to DB instance`
`DB instance shutdown`
`Finished applying off-line patches to DB instance`
`DB instance restarted`

如果数据库集群运行的引擎版本有此版本的升级路径，则可以立即对其进行升级。您可以使用控制台上的数据库集群操作或使用 SDK 升级任何符合条件的集群。以下 CLI 命令将立即升级符合条件的集群：

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.1.1.0 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.1.1.0 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.1.1.0.R7-test-before-upgrading"></a>

发布新的主要或次要 Neptune 引擎版本时，请务必先在该版本上测试您的 Neptune 应用程序，然后再升级到该版本。即使是次要版本升级，也可能引入会影响代码的新特征或行为。

首先，将当前版本的发行说明页面与目标版本的发行说明页面进行比较，以查看查询语言版本是否会发生变化或是否会发生其它重大更改。

在升级生产数据库集群之前测试新版本的最佳方法是克隆生产集群，以便克隆运行新的引擎版本。然后，您可以在不影响生产数据库集群的情况下在克隆上运行查询。

### 请在升级之前始终创建手动快照
<a name="engine-1.1.1.0.R7-snapshot-before-upgrading"></a>

在执行升级之前，我们强烈建议您始终创建数据库集群的手动快照。拥有自动快照只能提供短期保护，而手动快照在您显式删除它之前仍然可用。

在某些情况下，作为升级过程的一部分，Neptune 会为您创建手动快照，但您不应依赖此快照，无论如何都应创建自己的手动快照。

当您确定不需要将数据库集群恢复到其升级前的状态时，可以显式删除自己创建的手动快照以及 Neptune 可能已创建的手动快照。如果 Neptune 创建手动快照，则其名称将以 `preupgrade` 开头，后跟数据库集群的名称、源引擎版本、目标引擎版本和日期。

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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.
```
如果遇到此错误，请等待待处理操作完成，或者立即触发维护时段，让之前的升级完成。

有关升级引擎版本的更多信息，请参阅[维护 Amazon Neptune 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.1.1.0.R6（2022 年 9 月 23 日）
<a name="engine-releases-1.1.1.0.R6"></a>

截至 2022 年 9 月 23 日，引擎版本 1.1.1.0.R6 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

**重要**  
**从早于 `1.1.0.0` 的版本升级到此引擎版本还会触发数据库集群中所有实例的操作系统升级。由于不会处理操作系统升级过程中发生的活动写入请求，因此在开始升级之前，必须暂停对正在升级的集群的所有写入工作负载，包括批量数据加载。**  
为了成功完成升级，每个可用区 (AZ) 中的每个子网对于每个 Neptune 实例都必须至少有一个可用的 IP 地址。例如，如果子网 1 中有一个写入器实例和两个读取器实例，子网 2 中有两个读取器实例，则在开始升级之前，子网 1 必须至少有 3 个空闲的 IP 地址，子网 2 必须至少有 2 个空闲的 IP 地址。  
升级开始时，Neptune 会根据您的数据库集群信息生成一个快照，其名称由 `preupgrade` 后跟自动生成的标识符组成。您无需为此快照付费，如果升级过程中出现任何问题，您可以使用它来还原数据库集群。  
当引擎升级本身完成后，新的引擎版本将在旧操作系统上短暂可用，但不到 5 分钟后，集群中的所有实例将同时开始操作系统升级。此时，您的数据库集群将在几分钟内不可用。升级完成后，您可以恢复写入工作负载。  
此过程会生成以下事件：  
每个集群的事件消息：  
`Upgrade in progress: Creating pre-upgrade snapshot [preupgrade-(autogenerated snapshot ID)]`
`Database cluster major version has been upgraded`
每个实例的事件消息：  
`Applying off-line patches to DB instance`
`DB instance shutdown`
`Finished applying off-line patches to DB instance`
`DB instance restarted`

**注意**  
此版本对使用 openCypher 和 IAM 身份验证的代码进行了重大更改。到目前为止，IAM 签名中的主机字符串包含协议，例如 `bolt://`，如下所示：  

```
"Host":"bolt://(host URL):(port)"
```
从引擎版本 `1.1.1.0` 开始，必须省略协议：  

```
"Host":"(host URL):(port)"
```
有关示例，请参阅 [使用 Bolt 协议](access-graph-opencypher-bolt.md)。

## 此引擎版本中的改进
<a name="engine-releases-1.1.1.0.R6-improvements"></a>
+ 改进了 Gremlin `order-by` 查询的性能。`NeptuneGraphQueryStep` 末尾带有 `order-by` 的 Gremlin 查询现在使用更大的块大小以获得更好的性能。这不适用于查询计划的内部（非根）节点上的 `order-by`。
+ 改进了 Gremlin 更新查询的性能。现在，在添加边缘或属性时，必须锁定顶点和边缘以防止删除。此更改消除了事务中的重复锁定，从而提高了性能。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.1.1.0.R6-defects"></a>
+ 修复了 `MERGE` 子句中的 openCypher 错误，该错误在某些情况下会导致创建重复的节点和边缘。
+ 修复了在处理 `OPTIONAL` 子句中包含 `(NOT) EXISTS` 的 SPARQL 查询时的一个错误，也即，在某些情况下，查询结果会丢失。
+ 修复了在批量加载过程中延迟服务器重启的错误。
+ 修复了一个错误，即在关系属性上使用筛选条件的 openCypher 可变长度模式双向遍历会导致错误。这种可变长度模式的一个例子是 `(n)-[r*1..2]->(m)`。
+ 修复了与如何将缓存的数据发送回客户端相关的错误，该错误在某些情况下会导致意想不到的长延迟。

## 此版本支持的查询语言版本
<a name="engine-releases-1.1.1.0.R6-query-versions"></a>

在将数据库集群升级到版本 1.1.1.0.R6 之前，请确保您的项目与以下查询语言版本兼容：
+ *支持的 Gremlin 最早版本：*`3.5.2`
+ *支持的 Gremlin 最新版本：*`3.5.4`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.1.1.0.R6 的升级路径
<a name="engine-releases-1.1.1.0.R6-upgrade-paths"></a>

如果您正在运行引擎版本 `1.1.1.0`，您的集群将在下一个维护时段内自动升级到此补丁版本。

## 升级到此版本
<a name="engine-releases-1.1.1.0.R6-upgrading"></a>

**重要**  
**从 `1.1.0.0` 之前的任何版本升级到此引擎版本还会触发数据库集群中所有实例的操作系统升级。由于不会处理操作系统升级过程中发生的活动写入请求，因此在开始升级之前，必须暂停对正在升级的集群的所有写入工作负载，包括批量数据加载。**  
升级开始时，Neptune 会根据您的数据库集群信息生成一个快照，其名称由 `preupgrade` 后跟自动生成的标识符组成。您无需为此快照付费，如果升级过程中出现任何问题，您可以使用它来还原数据库集群。  
当引擎升级本身完成后，新的引擎版本将在旧操作系统上短暂可用，但不到 5 分钟后，集群中的所有实例将同时开始操作系统升级。此时，您的数据库集群将在大约 6 分钟内不可用。升级完成后，您可以恢复写入工作负载。  
此过程会生成以下事件：  
每个集群的事件消息：  
`Upgrade in progress: Creating pre-upgrade snapshot [preupgrade-(autogenerated snapshot ID)]`
`Database cluster major version has been upgraded`
每个实例的事件消息：  
`Applying off-line patches to DB instance`
`DB instance shutdown`
`Finished applying off-line patches to DB instance`
`DB instance restarted`

如果数据库集群运行的引擎版本有此版本的升级路径，则可以立即对其进行升级。您可以使用控制台上的数据库集群操作或使用 SDK 升级任何符合条件的集群。以下 CLI 命令将立即升级符合条件的集群：

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.1.1.0 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.1.1.0 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.1.1.0.R6-test-before-upgrading"></a>

发布新的主要或次要 Neptune 引擎版本时，请务必先在该版本上测试您的 Neptune 应用程序，然后再升级到该版本。即使是次要版本升级，也可能引入会影响代码的新特征或行为。

首先，将当前版本的发行说明页面与目标版本的发行说明页面进行比较，以查看查询语言版本是否会发生变化或是否会发生其它重大更改。

在升级生产数据库集群之前测试新版本的最佳方法是克隆生产集群，以便克隆运行新的引擎版本。然后，您可以在不影响生产数据库集群的情况下在克隆上运行查询。

### 请在升级之前始终创建手动快照
<a name="engine-1.1.1.0.R6-snapshot-before-upgrading"></a>

在执行升级之前，我们强烈建议您始终创建数据库集群的手动快照。拥有自动快照只能提供短期保护，而手动快照在您显式删除它之前仍然可用。

在某些情况下，作为升级过程的一部分，Neptune 会为您创建手动快照，但您不应依赖此快照，无论如何都应创建自己的手动快照。

当您确定不需要将数据库集群恢复到其升级前的状态时，可以显式删除自己创建的手动快照以及 Neptune 可能已创建的手动快照。如果 Neptune 创建手动快照，则其名称将以 `preupgrade` 开头，后跟数据库集群的名称、源引擎版本、目标引擎版本和日期。

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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.
```
如果遇到此错误，请等待待处理操作完成，或者立即触发维护时段，让之前的升级完成。

有关升级引擎版本的更多信息，请参阅[维护 Amazon Neptune 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.1.1.0.R5（2022 年 7 月 21 日）
<a name="engine-releases-1.1.1.0.R5"></a>

截至 2022 年 7 月 21 日，引擎版本 1.1.1.0.R5 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

**重要**  
**从早于 `1.1.0.0` 的版本升级到此引擎版本还会触发数据库集群中所有实例的操作系统升级。由于不会处理操作系统升级过程中发生的活动写入请求，因此在开始升级之前，必须暂停对正在升级的集群的所有写入工作负载，包括批量数据加载。**  
为了成功完成升级，每个可用区 (AZ) 中的每个子网对于每个 Neptune 实例都必须至少有一个可用的 IP 地址。例如，如果子网 1 中有一个写入器实例和两个读取器实例，子网 2 中有两个读取器实例，则在开始升级之前，子网 1 必须至少有 3 个空闲的 IP 地址，子网 2 必须至少有 2 个空闲的 IP 地址。  
升级开始时，Neptune 会根据您的数据库集群信息生成一个快照，其名称由 `preupgrade` 后跟自动生成的标识符组成。您无需为此快照付费，如果升级过程中出现任何问题，您可以使用它来还原数据库集群。  
当引擎升级本身完成后，新的引擎版本将在旧操作系统上短暂可用，但不到 5 分钟后，集群中的所有实例将同时开始操作系统升级。此时，您的数据库集群将在几分钟内不可用。升级完成后，您可以恢复写入工作负载。  
此过程会生成以下事件：  
每个集群的事件消息：  
`Upgrade in progress: Creating pre-upgrade snapshot [preupgrade-(autogenerated snapshot ID)]`
`Database cluster major version has been upgraded`
每个实例的事件消息：  
`Applying off-line patches to DB instance`
`DB instance shutdown`
`Finished applying off-line patches to DB instance`
`DB instance restarted`

**注意**  
此版本对使用 openCypher 和 IAM 身份验证的代码进行了重大更改。到目前为止，IAM 签名中的主机字符串包含协议，例如 `bolt://`，如下所示：  

```
"Host":"bolt://(host URL):(port)"
```
从引擎版本 `1.1.1.0` 开始，必须省略协议：  

```
"Host":"(host URL):(port)"
```
有关示例，请参阅 [使用 Bolt 协议](access-graph-opencypher-bolt.md)。

## 此引擎版本中的改进
<a name="engine-releases-1.1.1.0.R5-improvements"></a>
+ 进行了改进以支持死锁检测。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.1.1.0.R5-defects"></a>
+ 修复了在某些条件下无法完全从容关闭数据库集群的错误。

## 此版本支持的查询语言版本
<a name="engine-releases-1.1.1.0.R5-query-versions"></a>

在将数据库集群升级到版本 1.1.1.0.R5 之前，请确保您的项目与以下查询语言版本兼容：
+ *支持的 Gremlin 最早版本：*`3.5.2`
+ *支持的 Gremlin 最新版本：*`3.5.4`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.1.1.0.R5 的升级路径
<a name="engine-releases-1.1.1.0.R5-upgrade-paths"></a>

如果您正在运行引擎版本 `1.1.1.0`，您的集群将在下一个维护时段内自动升级到此补丁版本。

## 升级到此版本
<a name="engine-releases-1.1.1.0.R5-upgrading"></a>

**重要**  
**从 `1.1.0.0` 之前的任何版本升级到此引擎版本还会触发数据库集群中所有实例的操作系统升级。由于不会处理操作系统升级过程中发生的活动写入请求，因此在开始升级之前，必须暂停对正在升级的集群的所有写入工作负载，包括批量数据加载。**  
升级开始时，Neptune 会根据您的数据库集群信息生成一个快照，其名称由 `preupgrade` 后跟自动生成的标识符组成。您无需为此快照付费，如果升级过程中出现任何问题，您可以使用它来还原数据库集群。  
当引擎升级本身完成后，新的引擎版本将在旧操作系统上短暂可用，但不到 5 分钟后，集群中的所有实例将同时开始操作系统升级。此时，您的数据库集群将在大约 6 分钟内不可用。升级完成后，您可以恢复写入工作负载。  
此过程会生成以下事件：  
每个集群的事件消息：  
`Upgrade in progress: Creating pre-upgrade snapshot [preupgrade-(autogenerated snapshot ID)]`
`Database cluster major version has been upgraded`
每个实例的事件消息：  
`Applying off-line patches to DB instance`
`DB instance shutdown`
`Finished applying off-line patches to DB instance`
`DB instance restarted`

如果数据库集群运行的引擎版本有此版本的升级路径，则可以立即对其进行升级。您可以使用控制台上的数据库集群操作或使用 SDK 升级任何符合条件的集群。以下 CLI 命令将立即升级符合条件的集群：

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.1.1.0 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.1.1.0 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.1.1.0.R5-test-before-upgrading"></a>

发布新的主要或次要 Neptune 引擎版本时，请务必先在该版本上测试您的 Neptune 应用程序，然后再升级到该版本。即使是次要版本升级，也可能引入会影响代码的新特征或行为。

首先，将当前版本的发行说明页面与目标版本的发行说明页面进行比较，以查看查询语言版本是否会发生变化或是否会发生其它重大更改。

在升级生产数据库集群之前测试新版本的最佳方法是克隆生产集群，以便克隆运行新的引擎版本。然后，您可以在不影响生产数据库集群的情况下在克隆上运行查询。

### 请在升级之前始终创建手动快照
<a name="engine-1.1.1.0.R5-snapshot-before-upgrading"></a>

在执行升级之前，我们强烈建议您始终创建数据库集群的手动快照。拥有自动快照只能提供短期保护，而手动快照在您显式删除它之前仍然可用。

在某些情况下，作为升级过程的一部分，Neptune 会为您创建手动快照，但您不应依赖此快照，无论如何都应创建自己的手动快照。

当您确定不需要将数据库集群恢复到其升级前的状态时，可以显式删除自己创建的手动快照以及 Neptune 可能已创建的手动快照。如果 Neptune 创建手动快照，则其名称将以 `preupgrade` 开头，后跟数据库集群的名称、源引擎版本、目标引擎版本和日期。

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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.
```
如果遇到此错误，请等待待处理操作完成，或者立即触发维护时段，让之前的升级完成。

有关升级引擎版本的更多信息，请参阅[维护 Amazon Neptune 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.1.1.0.R4（2022 年 6 月 23 日）
<a name="engine-releases-1.1.1.0.R4"></a>

截至 2022 年 6 月 23 日，引擎版本 1.1.1.0.R4 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

**重要**  
**从早于 `1.1.0.0` 的版本升级到此引擎版本还会触发数据库集群中所有实例的操作系统升级。由于不会处理操作系统升级过程中发生的活动写入请求，因此在开始升级之前，必须暂停对正在升级的集群的所有写入工作负载，包括批量数据加载。**  
为了成功完成升级，每个可用区 (AZ) 中的每个子网对于每个 Neptune 实例都必须至少有一个可用的 IP 地址。例如，如果子网 1 中有一个写入器实例和两个读取器实例，子网 2 中有两个读取器实例，则在开始升级之前，子网 1 必须至少有 3 个空闲的 IP 地址，子网 2 必须至少有 2 个空闲的 IP 地址。  
升级开始时，Neptune 会根据您的数据库集群信息生成一个快照，其名称由 `preupgrade` 后跟自动生成的标识符组成。您无需为此快照付费，如果升级过程中出现任何问题，您可以使用它来还原数据库集群。  
当引擎升级本身完成后，新的引擎版本将在旧操作系统上短暂可用，但不到 5 分钟后，集群中的所有实例将同时开始操作系统升级。此时，您的数据库集群将在几分钟内不可用。升级完成后，您可以恢复写入工作负载。  
此过程会生成以下事件：  
每个集群的事件消息：  
`Upgrade in progress: Creating pre-upgrade snapshot [preupgrade-(autogenerated snapshot ID)]`
`Database cluster major version has been upgraded`
每个实例的事件消息：  
`Applying off-line patches to DB instance`
`DB instance shutdown`
`Finished applying off-line patches to DB instance`
`DB instance restarted`

**注意**  
此版本对使用 openCypher 和 IAM 身份验证的代码进行了重大更改。到目前为止，IAM 签名中的主机字符串包含协议，例如 `bolt://`，如下所示：  

```
"Host":"bolt://(host URL):(port)"
```
从引擎版本 `1.1.1.0` 开始，必须省略协议：  

```
"Host":"(host URL):(port)"
```
有关示例，请参阅 [使用 Bolt 协议](access-graph-opencypher-bolt.md)。

## 此引擎版本中的改进
<a name="engine-releases-1.1.1.0.R4-improvements"></a>
+ 更新了 `x2g` 实例类型的实例配置。
+ 提高了顶点删除的性能。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.1.1.0.R4-defects"></a>
+ 修复了 Gremlin 错误，即对于多次调用的查询，或者对于跨某些类型的 ASK 联接的多个读取器调用的查询，解决方案无法保持稳定的顺序。
+ 此外，缩小了先前版本中导致 Gremlin 中某些类型的 ASK 联接性能下降的更改范围。
+ 修复了在子遍历中存在边缘输入和顶点遍历时 `union()` 步骤中出现的 Gremlin 错误。
+ 修复了 Gremlin profile 错误，即一些步骤报告为未经过优化，而实际上已优化。
+ 修复了一个 SPARQL 错误，即嵌套在 `UNION` 子句中的 `FILTER` 表达式中使用的变量被分配了无效的作用域信息。

## 此版本支持的查询语言版本
<a name="engine-releases-1.1.1.0.R4-query-versions"></a>

在将数据库集群升级到版本 1.1.1.0.R4 之前，请确保您的项目与以下查询语言版本兼容：
+ *支持的 Gremlin 最早版本：*`3.5.2`
+ *支持的 Gremlin 最新版本：*`3.5.4`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.1.1.0.R4 的升级路径
<a name="engine-releases-1.1.1.0.R4-upgrade-paths"></a>

如果您正在运行引擎版本 `1.1.1.0`，您的集群将在下一个维护时段内自动升级到此补丁版本。

## 升级到此版本
<a name="engine-releases-1.1.1.0.R4-upgrading"></a>

**重要**  
**从 `1.1.0.0` 之前的任何版本升级到此引擎版本还会触发数据库集群中所有实例的操作系统升级。由于不会处理操作系统升级过程中发生的活动写入请求，因此在开始升级之前，必须暂停对正在升级的集群的所有写入工作负载，包括批量数据加载。**  
升级开始时，Neptune 会根据您的数据库集群信息生成一个快照，其名称由 `preupgrade` 后跟自动生成的标识符组成。您无需为此快照付费，如果升级过程中出现任何问题，您可以使用它来还原数据库集群。  
当引擎升级本身完成后，新的引擎版本将在旧操作系统上短暂可用，但不到 5 分钟后，集群中的所有实例将同时开始操作系统升级。此时，您的数据库集群将在大约 6 分钟内不可用。升级完成后，您可以恢复写入工作负载。  
此过程会生成以下事件：  
每个集群的事件消息：  
`Upgrade in progress: Creating pre-upgrade snapshot [preupgrade-(autogenerated snapshot ID)]`
`Database cluster major version has been upgraded`
每个实例的事件消息：  
`Applying off-line patches to DB instance`
`DB instance shutdown`
`Finished applying off-line patches to DB instance`
`DB instance restarted`

如果数据库集群运行的引擎版本有此版本的升级路径，则可以立即对其进行升级。您可以使用控制台上的数据库集群操作或使用 SDK 升级任何符合条件的集群。以下 CLI 命令将立即升级符合条件的集群：

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.1.1.0 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.1.1.0 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.1.1.0.R4-test-before-upgrading"></a>

发布新的主要或次要 Neptune 引擎版本时，请务必先在该版本上测试您的 Neptune 应用程序，然后再升级到该版本。即使是次要版本升级，也可能引入会影响代码的新特征或行为。

首先，将当前版本的发行说明页面与目标版本的发行说明页面进行比较，以查看查询语言版本是否会发生变化或是否会发生其它重大更改。

在升级生产数据库集群之前测试新版本的最佳方法是克隆生产集群，以便克隆运行新的引擎版本。然后，您可以在不影响生产数据库集群的情况下在克隆上运行查询。

### 请在升级之前始终创建手动快照
<a name="engine-1.1.1.0.R4-snapshot-before-upgrading"></a>

在执行升级之前，我们强烈建议您始终创建数据库集群的手动快照。拥有自动快照只能提供短期保护，而手动快照在您显式删除它之前仍然可用。

在某些情况下，作为升级过程的一部分，Neptune 会为您创建手动快照，但您不应依赖此快照，无论如何都应创建自己的手动快照。

当您确定不需要将数据库集群恢复到其升级前的状态时，可以显式删除自己创建的手动快照以及 Neptune 可能已创建的手动快照。如果 Neptune 创建手动快照，则其名称将以 `preupgrade` 开头，后跟数据库集群的名称、源引擎版本、目标引擎版本和日期。

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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.
```
如果遇到此错误，请等待待处理操作完成，或者立即触发维护时段，让之前的升级完成。

有关升级引擎版本的更多信息，请参阅[维护 Amazon Neptune 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.1.1.0.R3（2022 年 6 月 7 日）
<a name="engine-releases-1.1.1.0.R3"></a>

截至 2022 年 6 月 7 日，引擎版本 1.1.1.0.R3 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

**重要**  
**从早于 `1.1.0.0` 的版本升级到此引擎版本还会触发数据库集群中所有实例的操作系统升级。由于不会处理操作系统升级过程中发生的活动写入请求，因此在开始升级之前，必须暂停对正在升级的集群的所有写入工作负载，包括批量数据加载。**  
升级开始时，Neptune 会根据您的数据库集群信息生成一个快照，其名称由 `preupgrade` 后跟自动生成的标识符组成。您无需为此快照付费，如果升级过程中出现任何问题，您可以使用它来还原数据库集群。  
当引擎升级本身完成后，新的引擎版本将在旧操作系统上短暂可用，但不到 5 分钟后，集群中的所有实例将同时开始操作系统升级。此时，您的数据库集群将在几分钟内不可用。升级完成后，您可以恢复写入工作负载。  
此过程会生成以下事件：  
每个集群的事件消息：  
`Upgrade in progress: Creating pre-upgrade snapshot [preupgrade-(autogenerated snapshot ID)]`
`Database cluster major version has been upgraded`
每个实例的事件消息：  
`Applying off-line patches to DB instance`
`DB instance shutdown`
`Finished applying off-line patches to DB instance`
`DB instance restarted`

**注意**  
此版本对使用 openCypher 和 IAM 身份验证的代码进行了重大更改。到目前为止，IAM 签名中的主机字符串包含协议，例如 `bolt://`，如下所示：  

```
"Host":"bolt://(host URL):(port)"
```
从引擎版本 `1.1.1.0` 开始，必须省略协议：  

```
"Host":"(host URL):(port)"
```
有关示例，请参阅 [使用 Bolt 协议](access-graph-opencypher-bolt.md)。

## 此引擎版本中的改进
<a name="engine-releases-1.1.1.0.R3-improvements"></a>
+ 增加了对基于 Graviton2 的 `x2g` 实例类型的支持，此实例类型针对内存密集型工作负载进行了优化。这些最初仅在四个 AWS 区域中提供：
  + 美国东部（弗吉尼亚州北部）(`us-east-1`)
  + 美国东部（俄亥俄州）(`us-east-2`)
  + 美国西部（俄勒冈州）(`us-west-2`)
  + 欧洲地区（爱尔兰）(`eu-west-1`)

  有关更多信息，请参阅 [Neptune 定价页面](https://aws.amazon.com/neptune/pricing/)。
+ 改进了涉及多个边缘或顶点遍历、属性查找或标签查找的 Gremlin 步骤的性能。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.1.1.0.R3-defects"></a>
+ 修复了在处理子遍历中的 `otherV()` 步骤时出现的 Gremlin 错误。
+ 修复了查询中的一个 Gremlin 错误，即 `union` 只有作为子级的筛选步骤。例如：

  ```
  g.V().union(has("name"), out("knows")).out()
  ```
+ 修复了一个 SPARQL 错误，即嵌套在 `UNION` 子句中的 `FILTER` 表达式中使用的变量被分配了无效的作用域信息。

## 此版本支持的查询语言版本
<a name="engine-releases-1.1.1.0.R3-query-versions"></a>

在将数据库集群升级到版本 1.1.1.0.R3 之前，请确保您的项目与以下查询语言版本兼容：
+ *支持的 Gremlin 最早版本：*`3.5.2`
+ *支持的 Gremlin 最新版本：*`3.5.4`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.1.1.0.R3 的升级路径
<a name="engine-releases-1.1.1.0.R3-upgrade-paths"></a>

如果您正在运行引擎版本 `1.1.1.0`，您的集群将在下一个维护时段内自动升级到此补丁版本。

## 升级到此版本
<a name="engine-releases-1.1.1.0.R3-upgrading"></a>

**重要**  
**从 `1.1.0.0` 之前的任何版本升级到此引擎版本还会触发数据库集群中所有实例的操作系统升级。由于不会处理操作系统升级过程中发生的活动写入请求，因此在开始升级之前，必须暂停对正在升级的集群的所有写入工作负载，包括批量数据加载。**  
升级开始时，Neptune 会根据您的数据库集群信息生成一个快照，其名称由 `preupgrade` 后跟自动生成的标识符组成。您无需为此快照付费，如果升级过程中出现任何问题，您可以使用它来还原数据库集群。  
当引擎升级本身完成后，新的引擎版本将在旧操作系统上短暂可用，但不到 5 分钟后，集群中的所有实例将同时开始操作系统升级。此时，您的数据库集群将在大约 6 分钟内不可用。升级完成后，您可以恢复写入工作负载。  
此过程会生成以下事件：  
每个集群的事件消息：  
`Upgrade in progress: Creating pre-upgrade snapshot [preupgrade-(autogenerated snapshot ID)]`
`Database cluster major version has been upgraded`
每个实例的事件消息：  
`Applying off-line patches to DB instance`
`DB instance shutdown`
`Finished applying off-line patches to DB instance`
`DB instance restarted`

如果数据库集群运行的引擎版本有此版本的升级路径，则可以立即对其进行升级。您可以使用控制台上的数据库集群操作或使用 SDK 升级任何符合条件的集群。以下 CLI 命令将立即升级符合条件的集群：

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.1.1.0 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.1.1.0 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.1.1.0.R3-test-before-upgrading"></a>

发布新的主要或次要 Neptune 引擎版本时，请务必先在该版本上测试您的 Neptune 应用程序，然后再升级到该版本。即使是次要版本升级，也可能引入会影响代码的新特征或行为。

首先，将当前版本的发行说明页面与目标版本的发行说明页面进行比较，以查看查询语言版本是否会发生变化或是否会发生其它重大更改。

在升级生产数据库集群之前测试新版本的最佳方法是克隆生产集群，以便克隆运行新的引擎版本。然后，您可以在不影响生产数据库集群的情况下在克隆上运行查询。

### 请在升级之前始终创建手动快照
<a name="engine-1.1.1.0.R3-snapshot-before-upgrading"></a>

在执行升级之前，我们强烈建议您始终创建数据库集群的手动快照。拥有自动快照只能提供短期保护，而手动快照在您显式删除它之前仍然可用。

在某些情况下，作为升级过程的一部分，Neptune 会为您创建手动快照，但您不应依赖此快照，无论如何都应创建自己的手动快照。

当您确定不需要将数据库集群恢复到其升级前的状态时，可以显式删除自己创建的手动快照以及 Neptune 可能已创建的手动快照。如果 Neptune 创建手动快照，则其名称将以 `preupgrade` 开头，后跟数据库集群的名称、源引擎版本、目标引擎版本和日期。

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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.
```
如果遇到此错误，请等待待处理操作完成，或者立即触发维护时段，让之前的升级完成。

有关升级引擎版本的更多信息，请参阅[维护 Amazon Neptune 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 维护版本，版本 1.1.1.0.R2（2022 年 5 月 16 日）
<a name="engine-releases-1.1.1.0.R2"></a>

截至 2022 年 5 月 16 日，引擎版本 1.1.1.0.R2 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

**重要**  
**从早于 `1.1.0.0` 的版本升级到此引擎版本还会触发数据库集群中所有实例的操作系统升级。由于不会处理操作系统升级过程中发生的活动写入请求，因此在开始升级之前，必须暂停对正在升级的集群的所有写入工作负载，包括批量数据加载。**  
为了成功完成升级，每个可用区 (AZ) 中的每个子网对于每个 Neptune 实例都必须至少有一个可用的 IP 地址。例如，如果子网 1 中有一个写入器实例和两个读取器实例，子网 2 中有两个读取器实例，则在开始升级之前，子网 1 必须至少有 3 个空闲的 IP 地址，子网 2 必须至少有 2 个空闲的 IP 地址。  
升级开始时，Neptune 会根据您的数据库集群信息生成一个快照，其名称由 `preupgrade` 后跟自动生成的标识符组成。您无需为此快照付费，如果升级过程中出现任何问题，您可以使用它来还原数据库集群。  
当引擎升级本身完成后，新的引擎版本将在旧操作系统上短暂可用，但不到 5 分钟后，集群中的所有实例将同时开始操作系统升级。此时，您的数据库集群将在几分钟内不可用。升级完成后，您可以恢复写入工作负载。  
此过程会生成以下事件：  
每个集群的事件消息：  
`Upgrade in progress: Creating pre-upgrade snapshot [preupgrade-(autogenerated snapshot ID)]`
`Database cluster major version has been upgraded`
每个实例的事件消息：  
`Applying off-line patches to DB instance`
`DB instance shutdown`
`Finished applying off-line patches to DB instance`
`DB instance restarted`

**注意**  
此版本对使用 openCypher 和 IAM 身份验证的代码进行了重大更改。到目前为止，IAM 签名中的主机字符串包含协议，例如 `bolt://`，如下所示：  

```
"Host":"bolt://(host URL):(port)"
```
从引擎版本 `1.1.1.0` 开始，必须省略协议：  

```
"Host":"(host URL):(port)"
```
有关示例，请参阅 [使用 Bolt 协议](access-graph-opencypher-bolt.md)。

## 此版本支持的查询语言版本
<a name="engine-releases-1.1.1.0.R2-query-versions"></a>

在将数据库集群升级到版本 1.1.1.0.R2 之前，请确保您的项目与以下查询语言版本兼容：
+ *支持的 Gremlin 最早版本：*`3.5.2`
+ *支持的 Gremlin 最新版本：*`3.5.4`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.1.1.0.R2 的升级路径
<a name="engine-releases-1.1.1.0.R2-upgrade-paths"></a>

如果您正在运行引擎版本 `1.1.1.0`，您的集群将在下一个维护时段内自动升级到此维护补丁版本。

您可以将任何以前的 Neptune 引擎版本手动升级到此版本。

## 升级到此版本
<a name="engine-releases-1.1.1.0.R2-upgrading"></a>

**重要**  
**从 `1.1.0.0` 之前的任何版本升级到此引擎版本还会触发数据库集群中所有实例的操作系统升级。由于不会处理操作系统升级过程中发生的活动写入请求，因此在开始升级之前，必须暂停对正在升级的集群的所有写入工作负载，包括批量数据加载。**  
升级开始时，Neptune 会根据您的数据库集群信息生成一个快照，其名称由 `preupgrade` 后跟自动生成的标识符组成。您无需为此快照付费，如果升级过程中出现任何问题，您可以使用它来还原数据库集群。  
当引擎升级本身完成后，新的引擎版本将在旧操作系统上短暂可用，但不到 5 分钟后，集群中的所有实例将同时开始操作系统升级。此时，您的数据库集群将在大约 6 分钟内不可用。升级完成后，您可以恢复写入工作负载。  
此过程会生成以下事件：  
每个集群的事件消息：  
`Upgrade in progress: Creating pre-upgrade snapshot [preupgrade-(autogenerated snapshot ID)]`
`Database cluster major version has been upgraded`
每个实例的事件消息：  
`Applying off-line patches to DB instance`
`DB instance shutdown`
`Finished applying off-line patches to DB instance`
`DB instance restarted`

如果数据库集群运行的引擎版本有此版本的升级路径，则可以立即对其进行升级。您可以使用控制台上的数据库集群操作或使用 SDK 升级任何符合条件的集群。以下 CLI 命令将立即升级符合条件的集群：

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.1.1.0 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.1.1.0 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.1.1.0.R2-test-before-upgrading"></a>

发布新的主要或次要 Neptune 引擎版本时，请务必先在该版本上测试您的 Neptune 应用程序，然后再升级到该版本。即使是次要版本升级，也可能引入会影响代码的新特征或行为。

首先，将当前版本的发行说明页面与目标版本的发行说明页面进行比较，以查看查询语言版本是否会发生变化或是否会发生其它重大更改。

在升级生产数据库集群之前测试新版本的最佳方法是克隆生产集群，以便克隆运行新的引擎版本。然后，您可以在不影响生产数据库集群的情况下在克隆上运行查询。

### 请在升级之前始终创建手动快照
<a name="engine-1.1.1.0.R2-snapshot-before-upgrading"></a>

在执行升级之前，我们强烈建议您始终创建数据库集群的手动快照。拥有自动快照只能提供短期保护，而手动快照在您显式删除它之前仍然可用。

在某些情况下，作为升级过程的一部分，Neptune 会为您创建手动快照，但您不应依赖此快照，无论如何都应创建自己的手动快照。

当您确定不需要将数据库集群恢复到其升级前的状态时，可以显式删除自己创建的手动快照以及 Neptune 可能已创建的手动快照。如果 Neptune 创建手动快照，则其名称将以 `preupgrade` 开头，后跟数据库集群的名称、源引擎版本、目标引擎版本和日期。

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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.
```
如果遇到此错误，请等待待处理操作完成，或者立即触发维护时段，让之前的升级完成。

有关升级引擎版本的更多信息，请参阅[维护 Amazon Neptune 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。