Skip to content

Database measurement: compare Room3 pool/FTS5/WITHOUT ROWID candidates only after #178 #196

Description

@MrFr3di

Objective

Create one measurement-only decision gate for Room3 capabilities that are available in the modern stack but must not be adopted merely because they are newer.

Candidates

After #178 restores trustworthy database measurement semantics, compare the current default against isolated candidates:

  • explicit Room3 single/multiple connection-pool configuration;
  • dedicated query coroutine context only if thread contention is observed;
  • current FTS4 Unicode61 vs FTS5 candidates (including trigram only where search semantics justify it);
  • WITHOUT ROWID only for individually selected entity shapes.

Required baseline evidence

Before any production schema/config change capture:

  • actual journal mode;
  • query p50/p95 and EXPLAIN QUERY PLAN for heavy Channels/Search/Guide queries;
  • transaction duration;
  • connection wait/hold where observable;
  • concurrent read demand;
  • write contention during M3U/EPG staging/publication;
  • DB/WAL size and growth;
  • SQLITE_BUSY/retry incidence;
  • Search quality/semantics on deterministic 1k/10k/50k corpus.

Experiment rules

Each candidate is isolated. Do not bundle pool tuning + FTS migration + row-layout change into one PR. A result may legitimately be “keep the default”.

FTS5 is a schema/search-semantics change and must include migration/rebuild cost and result-quality comparison, not only query latency. WITHOUT ROWID requires table-specific size/read/write evidence and migration tests.

Acceptance

Non-goals

  • changing Room configuration now;
  • FTS5 migration now;
  • blanket reader/writer count increase;
  • schema version bump in this measurement issue.

Ownership

Measurement/decision issue under #27/#179. The current Room3 3.0.1 dependency-only patch remains #146 and must not absorb these experiments.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions