Hello,
I have a Java-built software that runs on a server as a background application and performs heavy computing tasks on data coming in from hundreds of client applications in different locations.
By heavy processing, I mean some tasks may take up to 5 minutes to process. Some of the process is CPU-intensive and some is I/O-intensive.
In brief, data packets are continuously coming in to a NoSQL database. Then, our software retrieves data packets one at a time in a sequential manner, does some heavy processing, and then stores the results in a database.
The problem is the speed of the processing. Currently, every data packet is processed in a sequential manner, which contributes to lengthening the overall time needed to process the data and having them presented in a dashboard.
One problem is that each processing partly depends on the successful processing of the previous data item. That complicates multi-threading options.
My questions are:
Any hint or resource would be appreciated.
Regards,
Jeremie