perf: add an opt-in read-only connection pool

Offen
#401 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Anfängerfreundlichkeit
28/100
Issue-Typ
Feature
Klarheit
Muss geklärt werden
Aktivitätsstatus
Aktiv
Tech-Stack
android, ios, react-native, sqlite

Rechercherichtung

Start by reviewing the existing independent read-only connection API and native FIFO behavior, then compare one connection with a small read pool on mixed read/write workloads for queue wait, query time, memory, WAL size, and battery/CPU cost on iOS and Android. Done requires recorded measurements before implementation, plus documented journal-mode and snapshot semantics and a clearly scoped opt-in pool lifecycle.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

area:api area:runtime enhancement

NitroSQLite now supports independent read-only connections to one database file, but callers must create, select, and close each connection themselves. A write-heavy app with long reads may benefit from an opt-in pool that routes independent read queries across a bounded set of handles while retaining one writer connection.

Design a small pool API on top of the existing independent-connection and native FIFO behavior. Bound the connection count, preserve each connection's configuration, reject writes on reader handles, and close all handles only after outstanding work has settled or been cancelled. Document the SQLite journal mode and snapshot semantics; a pool must not silently change a database's journal mode or promise parallel writes.

Before implementation, compare one connection with a small read pool on realistic mixed read/write workloads. Record queue wait, query time, peak memory, WAL size, and battery/CPU cost on iOS and Android. Avoid a default pool until measurements show a benefit beyond the existing independent-connection API.

Related: #62, #364, #369. The independent read-only connections are already available; this issue tracks automatic routing and lifecycle only.

Vorherrschende Sprache
C
Sterne
582
Forks
53
Ø Merge
2 T. 2 Std.
Gemergte PRs (30 T.)
36

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus margelo/react-native-nitro-sqlite

Alle Issues in margelo/react-native-nitro-sqlite

Ähnliche Issues

Weitere Issues zu C

Neue Issues direkt in Ihr Postfach

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