From an implementation point of view, the easiest solution would probably be a Store component (client side storage) for the cache and a server side callback for the for the delta update.
If the amount of data is large (~ MB), it might be worth thinking about reducing data transfer by keeping the data either server side or client side. Which solution will be the most performant depends on the network speeds between the different entities (client, server, and SQL server). However, as you note, with Dash the latter might not be possible (I haven’t tried).
Hence, if performance is an issue, i would try with a server side solution, i.e. server side callbacks both for the delta update and for drawing the graph. And server side storage, e.g. a file or a redis cache; possibly via a ServersideOutput.