Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 = <mode>` 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:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 = <mode>` 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:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 = <mode>` 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
Expand Down
Loading