Skip to content

New unit/stress test for separate down-and up-queues #168

@belaban

Description

@belaban

Add a stress test to RaftTest: the leader should call setAsync() 1M times; this mimics a stress test where the sender uses an async API (e.g. AsyncCounter) and does not use thenCombine() on the returned CompletionStage, but instead adds it to a list and joins all completion stages at the end of the test.

This should show the following issues:

  • The max size of processing_queue (default: 9182) will be reached immediately by the sender, filling the queue with DownRequests
  • UpRequests are far and few between, and will be handled very infrequently, as the sender always fills the queue
  • The problem is that UpRequests are acks from followers, so pending requests will not be able to finish for a long time, possibly timing out

A possible solution (separate issue) would be to create 2 queues: a down- and an up-queue. The up-queue would always have to be processed first, in order to not starve up-requests. Note that this issue exists only on the leader, as followers have no elements in the down-queue.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions