perf(files): keep the mimetype table in the local cache - #64091
Open
solracsf wants to merge 1 commit into
Open
Conversation
solracsf
requested review from
Altahrim,
leftybournes,
provokateurin and
salmart-dev
and removed request for
a team
September 7, 2026 07:45
CarlSchwan
reviewed
Sep 7, 2026
OC\Files\Type\Loader loaded the whole oc_mimetypes table from the database
in every PHP process that touched the filesystem: in a captured workload the
`SELECT id, mimetype FROM oc_mimetypes` statement ran 154 times across 169
connections. The table is append-only and tiny, so keep it in the local
memcache (createLocal('mimetypes'), one hour TTL) and serve lookups from
there.
A cached copy can miss rows another process or host added after it was
taken, so an unknown id or mimetype reloads the table from the database
once per loader instance before it is reported as missing; store() and
reset() drop the cached copy.
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
solracsf
force-pushed
the
perf/mimetype-loader-local-cache
branch
from
September 7, 2026 09:36
65f7577 to
f4ad2f9
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
OC\Files\Type\Loaderloaded the wholeoc_mimetypestable from the database in every PHP process that touched the filesystem: in a captured workload theSELECT id, mimetype FROM oc_mimetypesstatement ran 154 times across 169 connections. The table is append-only and tiny, so keep it in the local memcache (one hour TTL) and serve lookups from there.A cached copy can miss rows another process or host added after it was taken, so an unknown id or mimetype reloads the table from the database once per loader instance before it is reported as missing;
store()andreset()drop the cached copy.Checklist
3. to review, feature component)stable32)AI (if applicable)