Amazon Neptune 引擎版本 1.0.4.0(2020 年 10 月 12 日) - Amazon Neptune
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

Amazon Neptune 引擎版本 1.0.4.0(2020 年 10 月 12 日)

截至 2020 年 10 月 12 日,引擎版本 1.0.4.0 正在普遍部署中。请注意,新版本在每个区域的发布需要几天的时间。

此版本的后续补丁版本

此引擎版本中的新增功能

  • 为 Gremlin 添加了帧级压缩。

此引擎版本中的改进

  • Amazon Neptune 现在要求所有区域中与 Neptune 的所有连接都使用带有 TLSv1.2 协议的安全套接字层 (SSL),同时使用以下强密码套件:

    • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

    • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256

    • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384

    • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256

    • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA

    • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA

    与 Neptune 的 REST 和 WebSocket 连接都是如此,这意味着在所有区域中连接到 Neptune 时,必须使用 HTTPS 而不是 HTTP。

    由于任何地方都将不再支持使用 HTTP 或 TLS 1.1 的客户端连接,因此在升级到此引擎版本之前,请确保您的客户端和代码已更新为使用 TLS 1.2 和 HTTPS。

重要

所有与 Neptune 的连接都必须使用 SSL/TLS 可能是一个重大变化。它会影响您与 Gremlin 控制台、Gremlin 驱动程序、Gremlin Python、.NET、nodeJs、REST API 的连接以及负载均衡器连接。如果您一直使用 HTTP 进行任何这些操作或全部操作,则现在必须更新相关的客户端和驱动程序,并将代码更改为使用 HTTPS,否则连接将失败。

此版本中的一个错误允许以前设置数据库集群参数以防止强制执行 HTTPS 连接的客户继续使用 HTTP 连接和/或过时的 TLS 连接。该错误已在补丁版本 1.0.4.0.R21.0.4.1.R2 中修复,但是当自动安装补丁时,此修复导致意外的连接失败。

因此,这两个补丁都已恢复,只能手动安装,以便您有机会更新 TLS 1.2 的设置。

  • 已将 TinkerPop 升级到版本 3.4.8。这是向后兼容的升级。有关新增内容,请参阅 TinkerPop 更新日志

  • 改进了 Gremlin properties() 步骤的性能。

  • 在 explain 和 profile 报告中添加了有关 BindOpMultiplexerOp 的详细信息。

  • 添加了数据预提取功能,以在出现缓存未命中时提高性能。

  • 在批量加载程序的 parserConfiguration 参数中添加了一个新的 allowEmptyStrings 设置,允许在 CSV 加载中将空字符串视为有效的属性值(请参阅Neptune 加载程序请求参数)。

  • 加载程序现在允许在多值 CSV 列中使用转义分号。

在此引擎版本中修复的缺陷

  • 修复了与 both() 步骤相关的潜在 Gremlin 内存泄漏问题。

  • 修复了由于未正确处理以 '/' 结尾的端点而导致请求指标丢失的错误。

  • 修复了在实验室模式下启用 DFE 引擎时,副本在负载过重时会滞后并重启的错误。

  • 修复了由于内存不足状况而导致批量加载失败时无法报告正确的错误消息的错误。

  • 修复了在 SPARQL 查询响应中将字符编码放在 Content-Encoding 标头中的 SPARQL 错误。现在 charset 改为放在 Content-Type 标头中,使 HTTP 客户端能够识别自动使用的字符集。

此版本支持的查询语言版本

在将数据库集群升级到版本 1.0.4.0 之前,请确保您的项目与以下查询语言版本兼容:

  • Gremlin 版本:3.4.8

  • SPARQL 版本:1.1

引擎版本 1.0.4.0 的升级路径

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

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

升级到此版本

Amazon Neptune 1.0.4.0 现已正式发布。

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

对于 Linux、OS X 或 Unix:

aws neptune modify-db-cluster \ --db-cluster-identifier (your-neptune-cluster) \ --engine-version 1.0.4.0 \ --apply-immediately

对于 Windows:

aws neptune modify-db-cluster ^ --db-cluster-identifier (your-neptune-cluster) ^ --engine-version 1.0.4.0 ^ --apply-immediately

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

升级前始终先测试

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

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

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

请在升级之前始终创建手动快照

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

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

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

注意

如果您在待处理操作正在进行时尝试升级,则可能会遇到如下错误:

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 数据库集群。如果您有任何问题或疑问,可通过社区论坛和 Amazon Premium Support 联系 Amazon Support 团队。