Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7cbcd3957f |
@@ -30,14 +30,6 @@ P2: security: per-IP rate limiting on the image routes
|
|||||||
|
|
||||||
# Completed Steps
|
# Completed Steps
|
||||||
|
|
||||||
- 2026-10-08 requests no longer wait behind eviction queries that read a whole
|
|
||||||
table (closes #227): the new `cache_usage` table holds the total cache usage,
|
|
||||||
kept up to date by triggers on `source_content` and `variant_content` in the
|
|
||||||
statement that adds, removes or resizes a row, and `UsageBytes` reads it. The
|
|
||||||
reconciliation pass reads the content tables 1000 rows per query, sums them
|
|
||||||
and corrects the total when it differs, unless a row changed while it summed.
|
|
||||||
Source rows get `last_accessed_at` when added, so choosing source images to
|
|
||||||
evict reads that column's index instead of sorting the whole table.
|
|
||||||
- 2026-10-08 libvips' JPEG XL support is installed and required (part of #222):
|
- 2026-10-08 libvips' JPEG XL support is installed and required (part of #222):
|
||||||
`script/bootstrap --cgo` installs `vips-jxl` when its package manager is apk,
|
`script/bootstrap --cgo` installs `vips-jxl` when its package manager is apk,
|
||||||
as Alpine's `vips` package lacks the support, and the runtime stage of the
|
as Alpine's `vips` package lacks the support, and the runtime stage of the
|
||||||
@@ -46,6 +38,14 @@ P2: security: per-IP rate limiting on the image routes
|
|||||||
save JPEG XL, so pixad does not start without it. A test saves an image as
|
save JPEG XL, so pixad does not start without it. A test saves an image as
|
||||||
JPEG XL with govips and loads it back. JPEG XL is not yet a format pixa
|
JPEG XL with govips and loads it back. JPEG XL is not yet a format pixa
|
||||||
serves.
|
serves.
|
||||||
|
- 2026-10-08 requests no longer wait behind eviction queries that read a whole
|
||||||
|
table (closes #227): the new `cache_usage` table holds the total cache usage,
|
||||||
|
kept up to date by triggers on `source_content` and `variant_content` in the
|
||||||
|
statement that adds, removes or resizes a row, and `UsageBytes` reads it. The
|
||||||
|
reconciliation pass reads the content tables 1000 rows per query, sums them
|
||||||
|
and corrects the total when it differs, unless a row changed while it summed.
|
||||||
|
Source rows get `last_accessed_at` when added, so choosing source images to
|
||||||
|
evict reads that column's index instead of sorting the whole table.
|
||||||
- 2026-10-08 SQLite writes no longer fail with "database is locked" under load
|
- 2026-10-08 SQLite writes no longer fail with "database is locked" under load
|
||||||
(closes #223): `internal/database` opens the database with one connection, so
|
(closes #223): `internal/database` opens the database with one connection, so
|
||||||
pixa's own reads and writes run on it one at a time instead of competing for
|
pixa's own reads and writes run on it one at a time instead of competing for
|
||||||
|
|||||||
Reference in New Issue
Block a user