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

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

Offen
#258 0 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen
bug
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

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.