diff --git a/website/docs/components/data-accelerators/cayenne/index.md b/website/docs/components/data-accelerators/cayenne/index.md index 854782261..c98dcbe23 100644 --- a/website/docs/components/data-accelerators/cayenne/index.md +++ b/website/docs/components/data-accelerators/cayenne/index.md @@ -179,7 +179,7 @@ A global `cayenne_goal_*` setpoint steers only the datasets that run the closed | `cayenne_metastore_busy_timeout_ms` | SQLite metastore `busy_timeout` in milliseconds — how long a blocked connection waits for a lock before erroring. Defaults to `30000`. | | `cayenne_metastore_wal_autocheckpoint_pages` | SQLite metastore WAL auto-checkpoint threshold in pages. `0` disables the inline auto-checkpoint so the WAL is drained off the hot commit path by a dedicated background checkpoint instead. Defaults to `0`. | | `cayenne_metastore_wal_truncate_threshold_mb` | WAL size in megabytes above which the background checkpoint escalates to a TRUNCATE checkpoint to reclaim file space. Defaults to `160`. | -| `cayenne_metastore_auto_vacuum` | SQLite metastore `auto_vacuum` mode: `none`, `incremental`, or `full`. Takes effect only on a fresh database (an existing database needs a full `VACUUM` to change it). Defaults to `none`. Under `incremental`, freed pages are marked reclaimable and reclaimed in bounded batches by the background maintenance pass — see `cayenne_metastore_incremental_vacuum_pages`. An unrecognized value logs a warning and falls back to `none`. | +| `cayenne_metastore_auto_vacuum` | SQLite metastore `auto_vacuum` mode: `none`, `incremental`, or `full`. Defaults to `incremental`, so freed pages are marked reclaimable and reclaimed in bounded batches by the background maintenance pass — see `cayenne_metastore_incremental_vacuum_pages`. An unrecognized value logs a warning and keeps the `incremental` default. SQLite fixes the mode at file creation, so a metastore created while the default was `none` stays on `none` — the runtime warns at startup when it finds one. To move it to `incremental`, stop the runtime, run `PRAGMA auto_vacuum = INCREMENTAL; VACUUM;` against the metastore file, and restart: the pragma alone is a no-op on a file created with `auto_vacuum = none`, and a bare `VACUUM` keeps it on `none`. Switching between `full` and `incremental` needs no `VACUUM`. See the [SQLite `auto_vacuum` documentation](https://sqlite.org/pragma.html#pragma_auto_vacuum). | | `cayenne_metastore_incremental_vacuum_pages` | Freelist pages the background maintenance pass reclaims per tick when the metastore is in `incremental` `auto_vacuum` mode; ignored in every other mode. Defaults to `256`, which is 1 MiB at SQLite's 4 KiB default page size. Reclamation holds the write lock while it relocates pages, so the cap is what keeps each pause short; raise it to drain a large freelist faster at the cost of longer write-lock holds, or set `0` to stop reclaiming without changing the database's `auto_vacuum` mode. | ```yaml diff --git a/website/versioned_docs/version-2.0.x/components/data-accelerators/cayenne/index.md b/website/versioned_docs/version-2.0.x/components/data-accelerators/cayenne/index.md index 59a5019dc..d33826ae9 100644 --- a/website/versioned_docs/version-2.0.x/components/data-accelerators/cayenne/index.md +++ b/website/versioned_docs/version-2.0.x/components/data-accelerators/cayenne/index.md @@ -127,7 +127,7 @@ Set once under the top-level `runtime.params` and applied to every Cayenne-accel | `cayenne_metastore_mmap_mb` | SQLite metastore memory-mapped I/O size in megabytes. Defaults to `1024` (1 GiB). | | `cayenne_metastore_busy_timeout_ms` | SQLite metastore `busy_timeout` in milliseconds — how long a blocked connection waits for a lock before erroring. Defaults to `30000`. | | `cayenne_metastore_wal_autocheckpoint_pages` | SQLite metastore WAL auto-checkpoint threshold in pages; the WAL is checkpointed automatically once it grows past this many pages. Defaults to `10000`. | -| `cayenne_metastore_auto_vacuum` | SQLite metastore `auto_vacuum` mode: `none`, `incremental`, or `full`. Takes effect only on a fresh database (an existing database needs a full `VACUUM` to change it). Defaults to `none`. | +| `cayenne_metastore_auto_vacuum` | SQLite metastore `auto_vacuum` mode: `none`, `incremental`, or `full`. SQLite fixes the mode at file creation. Switching an existing metastore between `full` and `incremental` takes effect from `PRAGMA auto_vacuum = ` on its own; moving it to or from `none` needs a full `VACUUM` after the pragma, because the pragma alone is a no-op in that direction and a bare `VACUUM` keeps the file on the mode it already has. See the [SQLite `auto_vacuum` documentation](https://sqlite.org/pragma.html#pragma_auto_vacuum). Defaults to `none`. | ```yaml runtime: diff --git a/website/versioned_docs/version-2.1.x/components/data-accelerators/cayenne/index.md b/website/versioned_docs/version-2.1.x/components/data-accelerators/cayenne/index.md index 2c104f0c0..5ffd2264a 100644 --- a/website/versioned_docs/version-2.1.x/components/data-accelerators/cayenne/index.md +++ b/website/versioned_docs/version-2.1.x/components/data-accelerators/cayenne/index.md @@ -145,7 +145,7 @@ Set once under the top-level `runtime.params` and applied to every Cayenne-accel | `cayenne_metastore_busy_timeout_ms` | SQLite metastore `busy_timeout` in milliseconds — how long a blocked connection waits for a lock before erroring. Defaults to `30000`. | | `cayenne_metastore_wal_autocheckpoint_pages` | SQLite metastore WAL auto-checkpoint threshold in pages. `0` disables the inline auto-checkpoint so the WAL is drained off the hot commit path by a dedicated background checkpoint instead. Defaults to `0`. | | `cayenne_metastore_wal_truncate_threshold_mb` | WAL size in megabytes above which the background checkpoint escalates to a TRUNCATE checkpoint to reclaim file space. Defaults to `160`. | -| `cayenne_metastore_auto_vacuum` | SQLite metastore `auto_vacuum` mode: `none`, `incremental`, or `full`. Takes effect only on a fresh database (an existing database needs a full `VACUUM` to change it). Defaults to `none`. | +| `cayenne_metastore_auto_vacuum` | SQLite metastore `auto_vacuum` mode: `none`, `incremental`, or `full`. SQLite fixes the mode at file creation. Switching an existing metastore between `full` and `incremental` takes effect from `PRAGMA auto_vacuum = ` on its own; moving it to or from `none` needs a full `VACUUM` after the pragma, because the pragma alone is a no-op in that direction and a bare `VACUUM` keeps the file on the mode it already has. See the [SQLite `auto_vacuum` documentation](https://sqlite.org/pragma.html#pragma_auto_vacuum). Defaults to `none`. | ```yaml runtime: diff --git a/website/versioned_docs/version-2.2.x/components/data-accelerators/cayenne/index.md b/website/versioned_docs/version-2.2.x/components/data-accelerators/cayenne/index.md index 8e1dcaac1..0d66086f3 100644 --- a/website/versioned_docs/version-2.2.x/components/data-accelerators/cayenne/index.md +++ b/website/versioned_docs/version-2.2.x/components/data-accelerators/cayenne/index.md @@ -179,7 +179,7 @@ A global `cayenne_goal_*` setpoint steers only the datasets that run the closed | `cayenne_metastore_busy_timeout_ms` | SQLite metastore `busy_timeout` in milliseconds — how long a blocked connection waits for a lock before erroring. Defaults to `30000`. | | `cayenne_metastore_wal_autocheckpoint_pages` | SQLite metastore WAL auto-checkpoint threshold in pages. `0` disables the inline auto-checkpoint so the WAL is drained off the hot commit path by a dedicated background checkpoint instead. Defaults to `0`. | | `cayenne_metastore_wal_truncate_threshold_mb` | WAL size in megabytes above which the background checkpoint escalates to a TRUNCATE checkpoint to reclaim file space. Defaults to `160`. | -| `cayenne_metastore_auto_vacuum` | SQLite metastore `auto_vacuum` mode: `none`, `incremental`, or `full`. Takes effect only on a fresh database (an existing database needs a full `VACUUM` to change it). Defaults to `none`. Under `incremental`, freed pages are marked reclaimable and reclaimed in bounded batches by the background maintenance pass — see `cayenne_metastore_incremental_vacuum_pages`. An unrecognized value logs a warning and falls back to `none`. | +| `cayenne_metastore_auto_vacuum` | SQLite metastore `auto_vacuum` mode: `none`, `incremental`, or `full`. SQLite fixes the mode at file creation. Switching an existing metastore between `full` and `incremental` takes effect from `PRAGMA auto_vacuum = ` on its own; moving it to or from `none` needs a full `VACUUM` after the pragma, because the pragma alone is a no-op in that direction and a bare `VACUUM` keeps the file on the mode it already has. See the [SQLite `auto_vacuum` documentation](https://sqlite.org/pragma.html#pragma_auto_vacuum). Defaults to `none`. Under `incremental`, freed pages are marked reclaimable and reclaimed in bounded batches by the background maintenance pass — see `cayenne_metastore_incremental_vacuum_pages`. An unrecognized value logs a warning and falls back to `none`. | | `cayenne_metastore_incremental_vacuum_pages` | Freelist pages the background maintenance pass reclaims per tick when the metastore is in `incremental` `auto_vacuum` mode; ignored in every other mode. Defaults to `256`, which is 1 MiB at SQLite's 4 KiB default page size. Reclamation holds the write lock while it relocates pages, so the cap is what keeps each pause short; raise it to drain a large freelist faster at the cost of longer write-lock holds, or set `0` to stop reclaiming without changing the database's `auto_vacuum` mode. | ```yaml