Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services AWS BatchGetItem与GetItem并行_Amazon Web Services_Amazon Dynamodb_Dynamodb Queries_Amazon Dynamodb Index - Fatal编程技术网

Amazon web services AWS BatchGetItem与GetItem并行

Amazon web services AWS BatchGetItem与GetItem并行,amazon-web-services,amazon-dynamodb,dynamodb-queries,amazon-dynamodb-index,Amazon Web Services,Amazon Dynamodb,Dynamodb Queries,Amazon Dynamodb Index,使用BatchGetItem与并行发布多个GetItem在时间性能上是否有很大差异 如果我能使用GetItem并自己处理并行化,我的代码就会更干净 但是,如果BatchGetItem具有明确的时间性能优势,那么我肯定会使用它。已经并行工作了: 为了最小化响应延迟,BatchGetItem并行检索项 虽然我没有为您提供基准测试,但单个BatchGetItem最多可以并行获得100个项目。另外,BatchGetItem是单个API调用。因此,仅由于网络延迟,执行一个API调用以获取100个项目应该比

使用
BatchGetItem
与并行发布多个
GetItem
在时间性能上是否有很大差异

如果我能使用
GetItem
并自己处理并行化,我的代码就会更干净

但是,如果
BatchGetItem
具有明确的时间性能优势,那么我肯定会使用它。

已经并行工作了:

为了最小化响应延迟,BatchGetItem并行检索项


虽然我没有为您提供基准测试,但单个
BatchGetItem
最多可以并行获得100个项目。另外,
BatchGetItem
是单个API调用。因此,仅由于网络延迟,执行一个API调用以获取100个项目应该比使用
GetItem
执行100个单独的API调用快得多。

“因此,仅由于网络延迟,执行一个API调用以获取100个项目应该比使用GetItem执行100个单独的API调用快得多。”从理论上讲,如果这100个单独的API调用都是并行的,就不会这样。操作时间仅为MAX(所有请求次数)。正如您所说:BatchGetItem并行工作,但我的并行GetItem请求也将并行工作。因此,问题是:BatchGetItem是否比手动并行执行GetItem一致且可测量地快?正如我所提到的:我这样做就像在我的例子中一样,它使我的代码更干净。@LawrenceWagerfield我没有数字给你。但这是可以在现有数据库上轻松进行基准测试的东西。还有其他因素需要考虑。并行的100个呼叫将给您自己的服务器/应用程序带来压力
BatchGetItem
在AWS服务器上执行并行工作,从而减少对您自己的计算和内存资源的压力。对发出请求的客户端机器的额外压力。我没有指定这一点,但我只会发出2个请求,并且客户机是一个Lambda函数(因此我不需要担心并行地服务多个客户机,因为Lambda序列化了对Lambda的所有访问/不会重用同一个Lambda实例来一次服务多个请求),这意味着额外的资源使用并不是我真正关心的问题:只有执行时间关心。我想额外的HTTP调用会稍微增加内存使用量,这确实是一个因素。。。但是它只有两个请求:)@LawrenceWagerfield如果它只有两个请求,那么从
BatchGetItem
开始可能没有什么好处,如果它更容易编程和管理,那么我会坚持使用
GetItem
。相关: