Increasing number of concurrent connections Ambry can handle
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 1.8k
- Forks
- 298
- Avg merge
- 21h 43m
- Merged PRs (30d)
- 9
Description
I use Ambry for storing media files (sizes ranges from few megabytes to tens). And the ability to handle many requests simultaneously is quite important for me. I did testing of requesting different files (using ab benchmarking tool) and the bigger the file the less requests complete successfully:
For 40mb file and 10 concurrent requests:
Concurrency Level: 10
Time taken for tests: 26.319 seconds
Complete requests: 100
Failed requests: 0
Write errors: 0
Total transferred: 4375887000 bytes
HTML transferred: 4375854600 bytes
Requests per second: 3.80 [#/sec] (mean)
Time per request: 2631.851 [ms] (mean)
Time per request: 263.185 [ms] (mean, across all concurrent requests)
Transfer rate: 162369.68 [Kbytes/sec] received
Same file and 20 concurrent requests:
Concurrency Level: 20
Time taken for tests: 17.797 seconds
Complete requests: 100
Failed requests: 76
(Connect: 0, Receive: 0, Length: 76, Exceptions: 0)
Write errors: 0
Non-2xx responses: 24
Total transferred: 3092361566 bytes
HTML transferred: 3092332718 bytes
Requests per second: 5.62 [#/sec] (mean)
Time per request: 3559.317 [ms] (mean)
Time per request: 177.966 [ms] (mean, across all concurrent requests)
Transfer rate: 169688.97 [Kbytes/sec] received
For 3mb file and same concurrency it works excellent:
Concurrency Level: 20
Time taken for tests: 1.285 seconds
Complete requests: 100
Failed requests: 0
Write errors: 0
Total transferred: 178868400 bytes
HTML transferred: 178836100 bytes
Requests per second: 77.82 [#/sec] (mean)
Time per request: 257.003 [ms] (mean)
Time per request: 12.850 [ms] (mean, across all concurrent requests)
Transfer rate: 135932.97 [Kbytes/sec] received
So my question is what settings can I try to change (in server.properties and/or frontend.properties) to increase the number of concurrent requests Ambry able to handle for bigger files.
Contributor guide
No contributing guide indexed for this repository
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
Start with the concurrency behavior described in the issue and reproduce it using the Apache ab benchmarking tool, comparing the 40 MB and 3 MB cases. Review server.properties and frontend.properties for settings that govern concurrent large-file requests; done means identifying an appropriate configuration change and validating improved results without the reported failed requests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- backend, performance
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100