fluvio-community / fluvio-community/fluvio-client-python
Performance degradation on python producer.send with large number of records
- Vorherrschende Sprache
- Python
- Sterne
- 19
- Forks
- 11
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
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.
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Rechercherichtung
Verwende das bereitgestellte Python-Produzentensnippet als Reproduktion und vergleiche die Zeiten für 10.000 und 100.000 Datensätze mit dem beschriebenen Verhalten des Rust-Produzenten. Es ist keine Quelldatei oder kein Test benannt; verfolge producer.send_string und flush vom Einstiegspunkt des Python-Clients aus; abgeschlossen ist die Aufgabe, wenn der Lauf mit großen Datensätzen die gemeldete Verschlechterung nicht mehr zeigt und die Regression abgedeckt ist.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- api, performance
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 38/100