Ich habe derzeit Zehntausende von Artikeln, die ich von Dynamo auf einen Anruf erhalten muss. Bei meinen Tests dauert es mit nur 16.000 Elementen etwa 750-1000 ms, bis Dynamo alle Daten zurückgibt. Nicht schrecklich, aber ich weiß, dass sie nach mehr suchen werden, und das ist eine lange Zeit für eine von Kundenereignis angetriebene Abfrage. IEnumerable ids;
using (var client = GetDynamoDbClient())
{
DynamoDBContextConfig config = new DynamoDBContextConfig
{
TableNamePrefix = "test",
Conversion = DynamoDBEntryConversion.V2,
ConsistentRead = false,
};
DynamoDBContext context = new DynamoDBContext(client, config);
var IdsBatchedLists = Split(ids.ToList(), BatchRequestSizeLimit); //100 items per batch
var batchTasks = IdsBatchedLists.Select(async list =>
{
var batchRequest = context.CreateBatchGet();
list.ForEach(x => batchRequest.AddKey(x));
await batchRequest.ExecuteAsync().ConfigureAwait(false);
return batchRequest.Results;
});
var results = await Task.WhenAll(batchTasks).ConfigureAwait(false);
}
< /code>
Ich denke, ich habe alles getan, um es so schnell wie möglich zu machen (ich habe jede Konfiguration ausprobiert, die ich für AmazondynamodbConfig vorstellen kann). In meinen Spuren kann ich große Mengen gleichzeitiger Abfragen sehen, und dann werde ich ein oder zwei und dann wieder eine Gruppe sehen. Das Bild stammt aus Datadog, das alle Dynamo -Treffer in einer bestimmten Trace zeigt. schneller?
Danke
MassenbatchgetItems aus Dynamo ⇐ C#
-
- Similar Topics
- Replies
- Views
- Last post