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

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

Abierto
#258 0 comentarios 1 reacción 0 asignados Ver en GitHub
bug
Lenguaje dominante
Python
Estrellas
19
Forks
11
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

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.

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Línea de trabajo

Usa el fragmento de productor de Python proporcionado como reproducción, comparando los tiempos para 10.000 y 100.000 registros con el comportamiento descrito del productor de Rust. No se nombra ningún archivo fuente ni ninguna prueba; rastrea producer.send_string y flush desde el punto de entrada del cliente de Python; se considera terminado cuando la ejecución con registros grandes ya no muestra la degradación indicada y la regresión está cubierta.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
python
Área
api, performance
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
38/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.