是否提供提供<= 20毫秒查询延迟的AWS服务?

问题描述 投票:-2回答:1

对于一个用例,我的团队正在使用DynamoDB查询GSI。 随着返回的行数增加,查询等待时间增加。

我们的代码看起来像这样(Java)(非常正常)

        Map<String, Condition> keyConditions = new HashMap<>();
        keyConditions.put(indexHashKeyName, new Condition()
                .withAttributeValueList(Collections.singletonList(new AttributeValue(identifier.toString())))
                .withComparisonOperator(ComparisonOperator.EQ));
        QueryRequest queryRequest = new QueryRequest();
        queryRequest.setTableName(tableName);
        queryRequest.setIndexName(indexName);
        queryRequest.setKeyConditions(keyConditions);
        queryRequest.withAttributesToGet(attributesRequired);
        QueryResult result = dynamoDB.query(queryRequest);

我们的DynamoDB表具有大约4-5个String类型的属性。我们使用AWS KMS进行静态加密,并且所有4-5个属性都存在于GSI中。

[我们看到GSI上的p99延迟通常为30-40毫秒(毫秒),可检索约30行数据。

除了减少缓存之外,有没有什么方法可以减少延迟?对于我们的服务收到的客户流量模式,缓存不是可行的解决方案。

我们正在研究几个选项:-

  1. 创建一个DynamoDB新表,该表在GSI哈希键上建立索引,所有数据都存储为JSON Blob(或压缩Blob)。这将减少延迟,因为查询现在将成为GET。但是一旦项目超过400KB属性大小限制,这将变得困难。

  2. 创建一个新的DynamoDB表,该表在GSI-has-key上建立索引,范围键为1,2,3 ...,并且每当数据块超过400KB时,创建一个新的范围项,并进行多个GET检索多行JSON Blob。一旦开始为给定的哈希键创建太多范围键,这将增加延迟。

  3. <<
  4. AWS是否提供任何其他数据库解决方案来帮助解决我们的用例?
  5. Note

:-我们的EC2主机与DynamoDB表位于同一区域。 30-40ms的延迟仅用于dynamoDB查询。

对于一个用例,我的团队正在使用DynamoDB查询GSI。随着返回的行数增加,查询等待时间增加。我们的代码看起来像这样(Java)(非常正常)Map&...

amazon-web-services amazon-dynamodb latency dynamodb-queries low-latency
1个回答
0
投票
我认为您在谈论查询时间,而不是延迟。如果需要改善延迟,则可以使用VPC端点。实际上,默认情况下,DDB通过公共互联网运行
    如果要缩短查询时间,可能需要更改RCU容量。或切换到按需定价
© www.soinside.com 2019 - 2024. All rights reserved.