MagicStack / MagicStack/asyncpg
Implementation of shared mode connection pool.
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 8.1k
- Forks
- 468
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
- asyncpg version: 0.21.0
- PostgreSQL version: 12.4
- Do you use a PostgreSQL SaaS? If so, which? Can you reproduce
the issue with a local PostgreSQL install?: no - Python version: 3.8.3
- Platform: Linux 4.18.0-193.19.1.el8_2.x86_64
- Do you use pgbouncer?: no
- Did you install asyncpg with pip?: yes
- If you built asyncpg locally, which version of Cython did you use?:
- Can the issue be reproduced under both asyncio and
uvloop?: yes
Currently, asyncpg implements connection pool by blocking the acquired connection in an asyncio.LifoQueue. In aioredis, the connection pool uses so-called shared mode connection which sends the command directly to the connection's StreamWriter and awaits the result from a background asyncio.Future consuming results from StreamReader indefinitely. Is it possible to implement a similar connection pool to optimize the performance of query?
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Das Issue nennt asyncpgs Connection-Pool und die Connection-Pool-Implementierung von aioredis als Ausgangspunkte, aber keine Dateien oder Tests. Lies zunächst beide Pool-Designs, und lege dann fest, wie die Abfrageleistung und die Verarbeitung gleichzeitiger Befehle gemessen werden sollen; für den Abschluss sind ein abgestimmtes Design für den Shared-Modus, ein Implementierungsumfang und Leistungsnachweise erforderlich.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- postgresql, python
- Bereich
- databases
- Issue-Typ
- Feature
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 25/100