The answer is basically no.
A single mechanical disk drive will take about 10 ms or so to perform a search because it must move the disk head. 16,000 requests every 10 milliseconds per search is 160 seconds. It doesn't matter how you write your code; e.g. mmap () doesn't matter.
Welcome to the physical world, software man :-). You must improve the location of your operations.
First, sort the addresses you are accessing. The nearest locations in the file are likely to be nearby on disk, and searching between adjacent locations is faster than randomly searching.
, , 100 ; 1 , . , 1 , , . ( , .)
, RAID ( ). , , .
- , , . , . (, , ).
[]
@JeremyP SSD - . , 0,1 . , , 50-100 . ( , 1- TB, SSD- .)
[edit 2]
@FrankH , , , , , . , (, XFS) "" (, posix_fallocate , ).