danielgerlag / danielgerlag/workflow-core

Load test throws Connection errors with MongoDB

Open
#1,066 0 comments 1 reaction 0 assignees View on GitHub
Dominant language
C#
Stars
5.9k
Forks
1.3k
Avg merge
1d 1h
Merged PRs (30d)
5

Description

**Describe the bug**
I tried to load test workflow core with a simple hello world program with 5000 requests and 5 pods.
![image](https://user-images.githubusercontent.com/29457011/177932954-540ee2c7-de5a-4906-b40d-17bc68f640ba.png)
![image](https://user-images.githubusercontent.com/29457011/177936198-8eee34c0-99d0-4ddf-b80b-337762741595.png)
![image](https://user-images.githubusercontent.com/29457011/177936362-622d5b94-f43f-421e-b206-6f44689e8596.png)

**To Reproduce**
load test workflow core with a simple hello world program with 5000 requests and 5 pods. Used RabbitMQ, Redis, MongoDB

**Expected behavior**
Should not have thrown errors (It was 20% errors and throughput went from 200/sec to 13/sec after 1300 requests.

**Additional context**
Error: Thread pool starvation
What I Tried: I created a singleton class of MongoDBClient and sent it as a param in UseMongoDB().
![image](https://user-images.githubusercontent.com/29457011/177935415-c08b6416-6016-40f9-966a-c1559ceb7ec1.png)

Am I missing something here? It seems to be working great initially but stops with thread starvation error.

Contributor guide

No contributing guide indexed for this repository

Research direction

Reproduce the workflow-core load test with a hello-world workflow, 5 pods, 5000 requests, RabbitMQ, Redis, and MongoDB. Start by examining the MongoDBClient singleton passed to UseMongoDB() and the reported thread pool starvation; done means the connection errors and starvation no longer occur under this load and throughput does not collapse.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp, mongodb, rabbitmq, redis
Domain
backend, databases, distributed-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.