python / python/cpython

Cross-interpreter support for efficient sharing of frozendicts

Offen
#148,234 2 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

extension-modules topic-subinterpreters type-feature
Vorherrschende Sprache
Python
Sterne
77.2k
Forks
35.9k
PR-Merge-Kennzahlen
PR-Kennzahlen ausstehend

Beschreibung

Feature or enhancement

Proposal:

The concurrent.interpreters module for subinterpreters handles sharing/sending values across interpreters with direct sharing of some basic immutable types, and a fallback to pickling others. As an immutable container, tuples are supported (as long as all items are themselves shareable). Similarly, I think it would be good to support sharing frozendict without serialization (if keys & values are shareable).

Because dictionaries are so fundamental and common, having a better and more performant way to share such a mapping would significantly improve the experience of using concurrent.interpreters and InterpreterPoolExecutor.

Has this already been discussed elsewhere?

No response given

Links to previous discussion of this feature:

No response

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne damit, die Dokumentation von concurrent.interpreters zum Teilen von Objekten und die bestehende Behandlung teilbarer Tupel und Mappings im Modul zu lesen. Ermittle, wie das Teilen von frozendict funktionieren könnte, wenn alle Schlüssel und Werte teilbar sind; als erledigt gilt die Unterstützung von Werten, die Interpreter ohne Pickling überqueren, wobei das Verhalten durch relevante Tests abgedeckt ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
backend
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Ruhig
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
45/100

Neue Issues direkt in Ihr Postfach

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