[DEV] Performance test on Lead
- Dominant language
- Java
- Stars
- 3
- Forks
- 4
- PR merge metrics
- No merged PRs in 30d
Description
Create a test to measure Lead performance. Performance should be measured in terms of time passed from the moment reader sends notifyRead request to a Lead, containing the tx scope, to the moment when reader receives from Lead this tx id as a one it can start to commit - the latency in ms; and txs/sec the reader receives from the lead to commit. The reader is imitated in this test by a load generating thread and sends notifyCommit for a txs it received from the lead, immediately after notifyRead call.
Transactions should be generated and passed to Lead in batches of predetermined size.
The test should gradually increase load on Lead until the latency gets saturated (starts rapidly growing ~ Lead is unable to process its requests queue faster than requests arrive) - the thoughput registered at this moment will be maximum throughput the Lead can handle.
Latency should be recorded on a per-quantile basis - with at least 50th, 75th, 90th, 95th, 99th and 99.9th percentiles present.
Contributor guide
No contributing guide indexed for this repository
Research direction
Locate the Lead entry points for notifyRead and notifyCommit, then identify how transactions are generated and batched. Build a load test that records latency percentiles and throughput while increasing load; it is done when saturation and maximum throughput are reported with the requested quantiles.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- distributed-systems, performance, testing
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100