Skip to content

Document how the storage backend is chosen - #110

Merged
tibvdm merged 1 commit into
mainfrom
docs/storage-backend-build
Sep 4, 2026
Merged

Document how the storage backend is chosen#110
tibvdm merged 1 commit into
mainfrom
docs/storage-backend-build

Conversation

@tibvdm

@tibvdm tibvdm commented Sep 4, 2026

Copy link
Copy Markdown
Collaborator

Step 7 of 8. Stacked on #106. Independent of #107, #108 and #109.

After #106 the storage backend is a compile-time choice, which means someone building the
server has to know the features exist before they can pick one — and picking wrongly is a
redeploy rather than a restart. Nothing in the README said so.

Adds a section covering the nine configurations, which one production uses
(--features mmap), the startup line that reports the choice back, and the deployment
guidance from the index's own benchmark record.

The part worth reviewing carefully

The guidance is counter-intuitive and I have quoted it from upstream rather than derived it:
preloading is worth +22% to +58% only when the whole index is guaranteed resident, and is
actively worse under a memory ceiling — preloaded-proteins is behind plain mmap at every
ceiling, and the fully preloaded build is OOM-killed at every one. Also documents
RAYON_NUM_THREADS, which is the single largest effect in that record and costs ~10% when the
index is resident.

Someone who knows the deployment should check these against how the servers are actually
provisioned before this is marked ready. The figures are one machine's, against the 223 GB
UniProt index, and the README says so.

Verification

Prose only; no code changes.

@tibvdm
tibvdm force-pushed the feature/port-to-unipept-index-main branch from 4b9a6aa to 9fd47e8 Compare September 4, 2026 07:50
@tibvdm
tibvdm force-pushed the docs/storage-backend-build branch from e933442 to e88f35c Compare September 4, 2026 07:50
@tibvdm
tibvdm force-pushed the feature/port-to-unipept-index-main branch from 9fd47e8 to 458ab8c Compare September 4, 2026 08:57
@tibvdm
tibvdm force-pushed the docs/storage-backend-build branch from e88f35c to ed906a2 Compare September 4, 2026 08:57
@tibvdm
tibvdm force-pushed the feature/port-to-unipept-index-main branch from 458ab8c to ef1418e Compare September 4, 2026 09:12
@tibvdm
tibvdm force-pushed the docs/storage-backend-build branch 2 times, most recently from e24cef7 to 5d0f683 Compare September 4, 2026 09:54
@tibvdm
tibvdm marked this pull request as ready for review September 4, 2026 10:06
@tibvdm
tibvdm force-pushed the feature/port-to-unipept-index-main branch 2 times, most recently from 3c07a85 to bc347c7 Compare September 4, 2026 10:43
Base automatically changed from feature/port-to-unipept-index-main to main September 4, 2026 10:43
The backend is compiled in rather than passed as a flag, so someone building the
server has to know the features exist before they can pick one — and picking wrongly
is now a redeploy rather than a restart.

Records which build production uses, what the startup line reports, and the part
that is easy to get backwards: preloading only pays when the whole index is
guaranteed resident, and is the wrong default anywhere the memory ceiling might
move.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@tibvdm
tibvdm force-pushed the docs/storage-backend-build branch from 5d0f683 to 61670ec Compare September 4, 2026 10:46
@tibvdm
tibvdm merged commit b7dd868 into main Sep 4, 2026
1 check passed
@tibvdm
tibvdm deleted the docs/storage-backend-build branch September 4, 2026 10:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant