Did you ever run into the problem of the system running out of file descriptors? If each client gets its own database file, each connection will require a file descriptor.
For example, Linux limits the number of file descriptors to 1024 per process to each process can open up to 1024 files at any point in time.
I ran into this problem in the past in another project (the system ran out of file descriptors for another reason).