Skip to content

DynamoDB unmarshalling slow #3551

Open
Open
@michelemottini

Description

@michelemottini

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

DBPerfTestConsole.zip

  • it expects AWS profile and region in the AWS_PROFILE and AWS_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

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugThis issue is a bug.dynamodbp2This is a standard priority issuequeuedv4

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions