I'm implementing a client/server application.
The system consists of many clients, 1 server and 1 control center.
This is a scientific app which has a dense processing tasks.
The clients performs some tasks and then return the results to the server.
Both server and clients need a huge data located in a dbserver( mysql ).
The control center may change the database without informing other subsystems.
Since the data may be changed by any other subsystems, each subsystem retrieve a snapshot of the data whenever it need.
The retrieval ( time of necessity ) period is about per 1 minute.
Shortly assume that we have 20 clients in the environment and all are requesting
a big data set [a few tables each has about 10.000 entries] per 1 minute.
On the other hand the possible update period is about 1 minute and generally
it affects only 1 or 2 rows in a 1-2 table in DB.
As it can be seen we suffer so much from "retrieves" to be always fresh caused by "updates".

What can we do? Keeping a runtime copy of all tables in each subsystem and getting only
updates from somewhere sounds fine but it brings so many management & syncronization issues...

Should we continue to costly retrieves?

Thanks...