schorr@ead.dsa.com (Andrew J. Schorr) (09/19/90)
We have a home-grown database system that we are currently running under SunOS 4.0.3. The key to this system is a database server that memory maps a large number of files and responds to queries from the network. Under SunOS, this is not a problem because memory mapping does not require a file descriptor. Under AIX 3.1, however, each memory mapping requires an open file descriptor, as I understand it. Our problem is that we would like to memory map more than 2000 files. In particular, a number in the range of 5000 would be useful. We would like to port this system to AIX, but are currently stymied by the limit of 2000 descriptors per process. Question: is there any way around this limit? Ideally, a given process would be able to extend its limit by making a system call to extend this resource. However, a kernel recompile would also be an acceptable solution. Thanks for your help, Andy P.S. I know that I could solve this problem by forking multiple processes, but that approach would not be as efficient.
rudy@chukran.austin.ibm.com (09/21/90)
Memory mapping files first becomes constrained by the number of segment registers free. The hardware for Risc System 6000 has 16, and 6 are already tied up when your program starts, giving you 10 files which you can map concurrently. This is a result of file mapping being tied to the shmat system call which uses a new segment register. ********************************************************************* IBM AIX Porting Center | RSCS: CHUKRAN at AUSTIN 11400 Burnet Rd. | AWDnet: rudy@chukran.austin.ibm.com Internal ZIP 2830 | internet: chukran@austin.iinus1.ibm.com Austin, Texas 78758 | Voice: 512-838-4674 Tieline: 678-4674 *********************************************************************