The whole point of the Network is not to have data need to be stored to disk, right? Also, due to the cost of transmitting data throughout the Network, using the least amount of GETs is encouraged, correct?
So my thought is, where is this data stored when it’s being operated on?
###The simple answer is RAM.
But how much RAM can be consumed by that data, and how long can data persist in one machine?
The first question has to take into account the Launcher and the App itself along with the data that it’s acting on. The second is a bit more vague, because it must facilitate multiple use cases.
There I’m mainly concerned with the point of view that I don’t want every press of the “back button” to require a re-download of the data concerned. Should every rewind of a video necessitate re-downloading the frames? How far in advance should it be buffered? You can extrapolate this as you will - however, this is not a concern when using the Network as a dropbox replacement, but rather an app-centric environment.
###Launcher RAM cap
If this is indeed - as I see it - an issue, there may be the ability for the Launcher to institute a RAM cap. Now that may be per-app or globally, but I would envision something of the sort acting similarly to caching in nodes.
Speaking of which, caching does do this by default. Well, it kinda does it. While it is seen as a way to reverse the “reddit hug of death” paradigm, in this scenario it (presumably) significantly reduces download time for recently accessed files.
However, this does not do away with the need to re-download files that - while they may be most recently accessed - are no longer being acted upon by the app. This still add (perhaps unnecessarily) to the amount of GET requests on the Network.
Every app will have different needs for file retrieval and re-retrieval. This may just be left to the whim of the developers for them to ensure a reasonably efficient program.
While this may seem bad as there is no strict control by the user, this does incentivize similar apps to be competitive in their respective footprint size in a balance with their efficiency.
As a last note, there may be a maidsafe “swap” or “.tmp” rationale that is implemented to save data directly to disk for the duration of the App - or longer. This would need to be controlled - most likely via Launcher - to be kept within an acceptable, user-defined limit.
While this may not be a problem for a casual user, or even for a heavy user in the early stages of the Network, I do forsee that RAM usage by the Network and its Apps will be or become significant if not taken into appropriate consideration in an App-centric environment. There are several ways to mitigate this that are not - in themselves - mutually exclusive.