Open
Description
Describe the bug
Unmarshalling DynamoDB GetItem / BatchGetItem response is slow - ~700 msec for a 1.7 MB response
Regression Issue
- Select this option if this issue appears to be a regression.
Expected Behavior
Unmarshalling time << of the HTTP request time
Current Behavior
Unmarshalling time >> of the HTTP request time
Reproduction Steps
Copy the following files in a S3 folder:
djk7enshnmzkphkldeszvgzole.json.gz
ikhj4i2zsi4ptfwkszjkizzvly.json.gz
jmknnpggim2u3fd3lknw5njlsq.json.gz
m5lnl37q7a7z7hvykktyqt2mn4.json.gz
Use the DynamoDB 'Import from S3' function on that folder to create a table
- Table name
dbperftest
- Data format: DynamoDB JSON compressed
- Partition key:
@rid
(string)
-No sort key - Capacity mode: on demand
- No indexes, default encryption at rest
Download, compile and run
- it expects AWS profile and region in the
AWS_PROFILE
andAWS_REGION
environment variables (SSO is fine) - it reads data from the
dbperftest
table in various ways - main one being reading 100 items using a single BatchGetItemCall - whose statistics are:
CredentialsRequestTime = 00:00:00.0000269; RequestSigningTime = 00:00:00.0003347; HttpRequestTime = 00:00:00.2243586; ResponseUnmarshallTime = 00:00:00.7423187; ResponseProcessingTime = 00:00:00.7452110; ClientExecuteTime = 00:00:00.9727216;
with an unmarshall time that is more than three times the HTTP request time
Possible Solution
No response
Additional Information/Context
No response
AWS .NET SDK and/or Package version used
AWSSDK.DynamoDBv2 3.7.403.3
Targeted .NET Platform
.NET Core 8
Operating System and version
Windows 11, Amazon Linux