[Feature] Timeline that scales to multi-million asset libraries #31360
Closed
IB647
started this conversation in
Feature Request
Replies: 1 comment
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
I have searched the existing feature requests, both open and closed, to make sure this is not a duplicate request.
The feature
Make the web timeline usable on libraries of a few million assets.
My library is 2,000,184 assets across 310 monthly buckets, spanning 1980 to
2026. The largest month holds 20,946 assets and several others are above
15,000. The timeline renders and the year rail shows the full range, but
dragging the scrubber stalls at an arbitrary year and will not go further
back. Where it stops varies by browser and by session: Safari stopped at
2019, Chrome at 2023 in a clean window with no extensions. Reloading moves
the stall point.
The server is not the constraint. Every bucket request returns 200 in well
under 200 ms:
2026-03-01 200 0.159s 4.28 MB
2025-04-01 200 0.195s 5.02 MB
2016-08-01 200 0.086s 2.03 MB
2005-09-01 200 0.026s 0.22 MB
There are no server errors, all job queues are idle, every container sits
under 1% CPU, and VACUUM ANALYZE has been run. Date range filtering reaches
2005 instantly, so the data and the API are both fine. Only the timeline
scroller fails.
This worked until recently. About 565,000 of my assets had no thumbnails,
left over from the v2.7.5 to v3.1.0 migration. After regenerating thumbnails
for the whole library the scrubber started stalling, which fits the
synchronous geometry pre-computation described in #28861, where a single
long task of 17,949 ms was measured on one large bucket.
Two directions that would help, though the implementation is obviously
yours to choose: computing bucket geometry incrementally across frames
instead of in one blocking loop, or letting the client request finer than
monthly buckets so no single payload reaches 5 MB.
The known limitation in #21284 notes the timeline struggles past ~10,000
assets in a bucket. This report is a concrete data point somewhat past that,
with server timings that rule out the backend.
Setup: Immich v3.1.0, QNAP NAS, 12 cores, 62 GB RAM, external library on
RAID6, Immich data on SSD, Postgres 14.
Platform
All reactions