I think i’m missing something here, could you not just mmap() the file in and let the kernel take care of memory pressure for you?
[UPDATE] I missed a crucial part of the problem setup, which is that the data is read-only. That obviously moots my objection.
"static key-value data. ... a const (i.e. a hash table)"
Edit: oh and I think I did come across some article like the one linked in the neighbor comment. It's starting to come back.