Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The files in the cache may be modified. That is, the client may not assume that a file in the cache is identical to the one in Synapse, even if the entity's e-tag has not changed. (TODO:  How DOES the client know a file has been modified? One way is to keep a copy of the md5 in memory upon synGet or synStore, and compare when storing again.)

TODO:  When the client does synGet() and the associated file(s) is/are in the cache already, how does it know whether to download again?  One way is to compute the local file(s) md5(s) and compare to those in Synapse.

TODO:  What if you add a script to a FIle entity, synStore(), exit, restart and synGet()?  You now have two copies of the file, one in the cache and the original elsewhere.  The user would like to keep editing the original and, upon synStore(), update again.  How does the client know to associate the original?  One solution:  Client keeps a map of <Syn FileHandle> -> <local location> which gets saved upon exit and loaded upon start-up and which 'overlays' or 'amends' the default cache mapping.