For a custom use case, we are trying to change the COA of a company by adding and modifying multiple ledgers (order of 1000) and also import 10000s of vouchers into the system. We are facing the following issues,
i) COA changes are CPU heavy and are not letting any other operations go through. Even on a quad core machine the CPU is pegged at 200% (2 full cores). Though 2 more cores are available Mariadb is not using them. All other operations like statement generation are timing out.
ii) The voucher import is taking a very long time in the order of 8-10 hours for 15K vouchers. Again, the CPU pegs to 200% when insertion of vouchers are happening.
iii) Our use case calls for a multi-tenant system, i.e., voucher import and COA modification could happen for multiple companies. Also, there could be users on the system from different companies who are doing other routine things. The above 2 points are causing one tenant to block other tenant’s operations. Is there a separation of queues possible so that operations of one tenant can be in a separate queue and not hinder the other tenant?
For iii) to be effective, i) and ii) have to be addressed satisfactorily. Please share your experiences and strategies for the above problems.