Cache design gets more complicated when we use the client-server OWFS model.
Not only can programs connect locally to the 1-wire bus, but they can connect remotely to an owserver.
In fact, more than one program can connect to an owserver.
A typical complex OWFS design:
In this design, every element can have it's own cache except the OWSHELL programs (owdir, owpresent, owwrite and owpresent).
For a simple design, it's pretty easy:
Results are cached locally AND remotely. This works fine as long as the cache times are similar, and no other processes are changing the remote owserver.
Potentially the owfs and owhttpd process in this example could each alter a chip's memory, and think that their local copy was correct. Remote owserver would know the truth, but the local copy could be wrong.
As of OWFS 2.5p7 this potential problem is bypassed. Both volatile and stable properties are cached only where they are directly set.