An overlap store is created by sorting all the overlaps by IID. This is done using a bucket sort. We don't know how many overlaps there are per IID, and we try to guesstimate the size of each bucket, requiring that it be below some user-supplied memory limit.
Instead, we can ask the OS how many open files we are allowed to have, and use that many buckets.
The code change is trivial, adding the command line option and integrating into runCA will take the most effort.