I need to set up a Linux RAMDisk to implement a queue.
The basic idea is there will be processes writing to the RAMDisk. At the same time there are processes that watch for new files and read and delete them as they come.
In the situation that writing is faster than reading and the RAMDisk fills up, the writing should block until there is enough space in the RAMDisk to store the new file that is coming in.
One option would be to use tmpfs, which 'overflows' to disk when the ram assigned to the filesystem is all used - however, the whole system would slow down due to the slow HDD IO involved in that - and in my high-performance system that would be unacceptable.
What I would ideally want is a filesystem that automatically blocks writes when RAMDisk is full until enough space is available.
Note I don't have control over the writing processes, so they will not have the ability to query free space and wait - they are just dumb processes that simply write all the time.
Any solution?