Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hstreb/rinha-backend
projeto para testar tecnologias com java para resolver o problema da rinha de backend https://github.com/zanfranceschi/rinha-de-backend-2023-q3
https://github.com/hstreb/rinha-backend
gatling java jooby postgresql spring-boot vertx virtual-threads webflux
Last synced: 29 days ago
JSON representation
projeto para testar tecnologias com java para resolver o problema da rinha de backend https://github.com/zanfranceschi/rinha-de-backend-2023-q3
- Host: GitHub
- URL: https://github.com/hstreb/rinha-backend
- Owner: hstreb
- Created: 2023-09-18T23:06:41.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-10-05T03:56:23.000Z (over 1 year ago)
- Last Synced: 2024-11-01T02:23:35.599Z (3 months ago)
- Topics: gatling, java, jooby, postgresql, spring-boot, vertx, virtual-threads, webflux
- Language: Java
- Homepage:
- Size: 8.61 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# rinha de backend
Soluções para o desafio da rinha de backend https://github.com/zanfranceschi/rinha-de-backend-2023-q3.
## Stress test
Script gatling do [zanfranceschi/rinha-de-backend-2023-q3](https://github.com/zanfranceschi/rinha-de-backend-2023-q3/tree/main/stress-test), com os apontamentos locais.
### Rodar
```shell
cd stress-test
./run-test.sh
```## Soluções
- [Spring-boot](rinha-spring)
- [Vertx](rinha-vertx)
- [Spring-boot-virtual-threads](rinha-spring-virtual-threads)
- [Spring-boot-webflux](rinha-spring-webflux)
- [Jooby](rinha-jooby)
## Resultados parciais
Alguns resultados conforme a evolução dos projetos [resultados](resultados.md).
## placar atual
### rodar scrits
```shell
./start.sh rinha-spring jvm
./start.sh rinha-spring native
./start.sh rinha-spring-virtual-threads jvm
./start.sh rinha-spring-webflux jvm
./start.sh rinha-vertx jvm
./start.sh rinha-jooby jvm
```### hardware
```shell
sudo lshw -short
Caminho do hardware Dispositivo Classe Descrição
============================================================
/0 bus 03TXXV
/0/0 memory 64KiB BIOS
/0/40 memory 16GiB Memória do sistema
/0/40/0 memory 16GiB SODIMM DDR4 Síncrono Unbuffered (Unregistered) 2400 MHz (0,4 ns)
/0/44 memory 128KiB L1 cache
/0/45 memory 512KiB L2 cache
/0/46 memory 4MiB L3 cache
/0/47 processor Intel(R) Core(TM) i7-7500U CPU @ 2.70GHz
```### classificação
| projeto | profile | contagem de pessoas | p99 geral |
| --- | --- | --- | --- |
| viniciusfonseca | default | 44933 | 15580 |
| rinha-spring-webflux | jvm | 44302 | 16382 |
| rinha-vertx | jvm | 44228 | 16047 |
| rinha-spring-virtual-threads | jvm | 43914 | 18503 |
| rinha-spring | jvm | 43185 | 18490 |
| rinha-spring | native | 39950 | 22186 |## revisões
Após o video do [MrPowerGamerBR](https://www.youtube.com/watch?v=XqYdhlkRlus) ajustei o randomized do stress test para buscar sempre inserir 46576 pessoas, inclusive foi encontrado um bug que não inseria pessoas com nome com espaço em branco (' ').
Com o ajuste mostrado no tweet do [Vinícius Ferras](https://twitter.com/viniciusfcf/status/1700298875574030608) sobre utilizar o `network_mode: "host"`, os resultados melhoraram muito, todos conseguiram inserir o total de pessoas e o p99 ficou bem menor:
| projeto | profile | contagem de pessoas | p99 geral |
| --- | --- | --- | --- |
| rinha-vertx | jvm | 46576 | 12 |
| rinha-spring | native | 46576 | 81 |
| rinha-spring-virtual-threads | jvm | 46576 | 351 |
| rinha-spring-webflux | jvm | 46576 | 1360 |
| rinha-spring | jvm | 46576 | 2744 |### Quando a gente atingir a meta, nós dobramos a meta.
Ao colocar 1200 usuários simultâneos os resultados mudaram um pouco, com a programação reativa trabalhando melhor que a imperativa, e as threads virtuais não conseguiram atingir o 100% de inserts.
| projeto | profile | contagem de pessoas | p99 geral |
| --- | --- | --- | --- |
| rinha-jooby | jvm | 84671 | 567 |
| rinha-vertx | jvm | 84671 | 925 |
| rinha-spring-webflux | jvm | 84671 | 21365 |
| rinha-spring | jvm | 84671 | 77408 |
| rinha-spring | native | 82130 | 70667 |
| sring-virtual-threads | jvm | 68515 | 60001 |