从多个 dynamodb 表中获取项目的好方法(低延迟)?
good way (with low latency) to get items from multiple dynamodb tables?
我有几个 dynamodb tables,table A,table B,table C 和 table D。
我想从 table A 中获取项目 A,从 table B 中获取项目 B,从 table C 中获取项目 C,从 table D 中获取项目 D。
目前我对 4 tables 进行了 4 次 dynamodb getItem 调用以按顺序获取项目。每次通话花费约 12 毫秒,总计约 50 毫秒。
ItemA a = tableA.getItem("A");
ItemB b = tableB.getItem("B");
ItemC c = tableC.getItem("C");
ItemD d = tableD.getItem("D");
是否有更好的调用方式来减少延迟?不知道我怎样才能让它在这里平行。
如果请求(如您的示例中所示)彼此不依赖 - 换句话说,您无需知道第一个请求的结果即可发送第二个请求,则无需执行它们按顺序(一个接一个)- 您可以同时启动所有四个。
如何并行启动四个请求取决于您使用的特定编程,但您有一个更简单的选择:只发送一个 BatchGetItem
请求 - 其中包含四个请求。 DynamoDB 将为您并行处理所有这些请求。
我有几个 dynamodb tables,table A,table B,table C 和 table D。
我想从 table A 中获取项目 A,从 table B 中获取项目 B,从 table C 中获取项目 C,从 table D 中获取项目 D。
目前我对 4 tables 进行了 4 次 dynamodb getItem 调用以按顺序获取项目。每次通话花费约 12 毫秒,总计约 50 毫秒。
ItemA a = tableA.getItem("A");
ItemB b = tableB.getItem("B");
ItemC c = tableC.getItem("C");
ItemD d = tableD.getItem("D");
是否有更好的调用方式来减少延迟?不知道我怎样才能让它在这里平行。
如果请求(如您的示例中所示)彼此不依赖 - 换句话说,您无需知道第一个请求的结果即可发送第二个请求,则无需执行它们按顺序(一个接一个)- 您可以同时启动所有四个。
如何并行启动四个请求取决于您使用的特定编程,但您有一个更简单的选择:只发送一个 BatchGetItem
请求 - 其中包含四个请求。 DynamoDB 将为您并行处理所有这些请求。