Hi Sandesh,
MongoDB (WiredTiger Storage Engine) stores file per collection. So if we have so many small databases(<20 GB per month) for tenants, does it impact performance for any case(I/O etc)?
Depending on your use case, you may be able to create many small databases. However, you might want to consider:
WiredTiger opens two files per collection at the minimum. Additional index will open an additional file. Since WiredTiger works in a per-collection basis, the number of databases have no impact toward the number of open files.
Each connection to the database is also counted toward the open file limit.
The Unix ulimit settings page has a detailed description on how many files you can expect to be open, and also has some recommendations on the ulimit settings.
Overall performance also depends on the provisioned hardware. More CPU/RAM/Disk is certainly better.
Your schema design certainly has a great impact on performance as well. For example, querying on a non-indexed collections will always be much slower compared to indexed collections, unless you have a small amount of documents ("small" is also relative in this case).
The best way to find out if MongoDB is better for your use case is to extensively test it with your intended application. Unfortunately, it is not possible to make a sweeping statement about performance. Every use case is unique, even when they look similar at a glance.
Best regards,
Kevin