You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Feb 21, 2023. It is now read-only.
While evaluating aioredis and aredis against a client that I am working on, I've noticed that aioredis appears to perform exponentially worse in larger transactions (i.e. tens/hundreds of thousands of commands):
The benchmark is written to use uvloop, and has been tested on Linux (Ubuntu 18.04) with Python 3.8.1, as well as on macOS with Python 3.8.1 and Python 3.7.6. All runs have similar results.
The aioredismulti_exec() pipeline appears to be many orders of magnitude slower than both aredis and the custom client.
While looking at the implementation, aioredis appears to fire off a coroutine for every single command in the transaction, which likely explains most of the slowdown. What is the rationale behind this design?
The text was updated successfully, but these errors were encountered:
Hi,
While evaluating
aioredis
andaredis
against a client that I am working on, I've noticed thataioredis
appears to perform exponentially worse in larger transactions (i.e. tens/hundreds of thousands of commands):Benchmark code.
The benchmark is written to use uvloop, and has been tested on Linux (Ubuntu 18.04) with Python 3.8.1, as well as on macOS with Python 3.8.1 and Python 3.7.6. All runs have similar results.
The
aioredis
multi_exec()
pipeline appears to be many orders of magnitude slower than botharedis
and the custom client.While looking at the implementation,
aioredis
appears to fire off a coroutine for every single command in the transaction, which likely explains most of the slowdown. What is the rationale behind this design?The text was updated successfully, but these errors were encountered: