fluvio-community / fluvio-community/fluvio-client-python

Performance degradation on python producer.send with large number of records

Aperta
#258 0 commenti 1 reazione 0 assegnatari Vedi su GitHub
bug
Lingua principale
Python
Stelle
19
Fork
11
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

slack thread: https://infinyon.slack.com/archives/CQ8UX6SBH/p1684349700779719

simple producer in python:
```python
#!/usr/bin/env python3
from datetime import datetime
from fluvio import Fluvio
import time

PARTITION = 0

if __name__ == "__main__":
# Connect to cluster
fluvio = Fluvio.connect()

producer = fluvio.topic_producer("simple")

start_time = time.time()

for x in range(10000):
producer.send_string("{}: timestamp: {}".format(x, datetime.now()))

# Flush the last entry
producer.flush()
print("completed in {} seconds", (time.time()-start_time))
```
10K records pushed in 1.2153611183166504 seconds, when if you increase the range to 100000
python3 producer100K.py
The same code takes 64.67606687545776 to complete.
Rust producer doesn't have such behaviour.

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Direzione di ricerca

Usa lo snippet del producer Python fornito come riproduzione, confrontando i tempi per 10.000 e 100.000 record con il comportamento descritto del producer Rust. Non sono indicati file sorgente o test; traccia producer.send_string e flush dal punto di ingresso del client Python; il lavoro è completato quando l’esecuzione con molti record non mostra più il degrado segnalato e la regressione è coperta.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
python
Ambito
api, performance
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
38/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.