-
Notifications
You must be signed in to change notification settings - Fork 494
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Performance: Adds optimized request headers #1949
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please follow the required format: "[Internal] Category: (Adds|Fixes|Refactors) Description"
Examples:
Diagnostics: Adds GetElapsedClientLatency to CosmosDiagnostics
PartitionKey: Fixes null reference when using default(PartitionKey)
[v4] Client Encryption: Refactors code to external project
[Internal] Query: Adds code generator for CosmosNumbers for easy additions in the future.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please follow the required format: "[Internal] Category: (Adds|Fixes|Refactors) Description"
Examples:
Diagnostics: Adds GetElapsedClientLatency to CosmosDiagnostics
PartitionKey: Fixes null reference when using default(PartitionKey)
[v4] Client Encryption: Refactors code to external project
[Internal] Query: Adds code generator for CosmosNumbers for easy additions in the future.
Microsoft.Azure.Cosmos/src/Headers/CosmosMessageHeadersInternal.cs
Outdated
Show resolved
Hide resolved
…com/Azure/azure-cosmos-dotnet-v3 into users/jawilley/perf/request_headers
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
What's the E2E impact? From the attached chart reads are more optimal compared to creates. Does that fit well into the overall requirements? |
Please see the updated PR description. |
Closing due to in-activity, pease feel free to re-open. |
Pull Request Template
Description
This uses a generated file to create a list of well known headers for Item point operations. This allows the properties to be directly set instead of doing a dictionary lookup.
This makes CosmosMessageHeadersInternal a contract which then has custom implementation for request headers and response headers.
Overall +50 to 100 Rps improvement for read item stream operations
*Create is just creating the object
*Read is object creation + adding all the headers used for a normal read scenario
*Keys is used in transport layer to iterate and populate the transport objects
Type of change
Please delete options that are not relevant.
Closing issues
To automatically close an issue: closes #IssueNumber