Performance regression in versions 2.14.1 and later for all API operations
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 243
- Forks
- 171
- Avg merge
- 30m
- Merged PRs (30d)
- 4
Description
Update : We have fixed this issue in version 2.66.2 and 3.31.0 of the SDK by using an idle connection monitor. More details can be found here
In versions 2.14.1 and later, you may encounter performance regressions when using the SDK to call API operations to any of the OCI services. The regression ranges from 30% to 60% increase in latency in SDK operations to any of the OCI services.
If you are experiencing this issue, and would like to get the older performance back, there are some workarounds you can do:
- Switch back to the Jersey’s default
HttpUrlConnectorProviderby setting theOCI_JAVASDK_JERSEY_CLIENT_DEFAULT_CONNECTOR_ENABLEDenvironment variable totrueor any other methods mentioned here - Disable the use of
NoConnectionReuseStrategyfor theApacheConnectorProviderby setting theApacheConnectorProperties.connectionReuseStrategytonullandApacheConnectorProperties.requestRetryHandlertonull
// For clients that should not buffer requests into memory
ObjectStorageClient client = ObjectStorageClient.builder().clientConfigurator(new ApacheConfigurator.NonBuffering(
ApacheConnectorProperties.builder().
.connectionReuseStrategy(null)
.requestRetryHandler(null)
.build()
)).build(provider);
// For clients that should buffer requests into memory
IdentityClient identityClient = IdentityClient.builder().clientConfigurator(new ApacheConfigurator(
ApacheConnectorProperties.builder()
.connectionReuseStrategy(null)
.requestRetryHandler(null)
.build()
)).build(provider);
- Or, use SDK version
2.14.0or earlier.
If you have any questions, please feel free to comment on this GitHub issue and we will be happy to help.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The issue points to ApacheConnector-README.md and the ApacheConfigurator and ApacheConnectorProperties entry points. Start by reviewing the documented idle connection monitor fix and affected SDK versions; done is not defined because the regression is reported fixed in versions 2.66.2 and 3.31.0.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- api, performance
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 15/100