epam / epam/Lagerta

[DEV] Performance test on Lead

Open
#154 0 comments 0 reactions 0 assignees View on GitHub
TOP
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.