30
edits
EdenChuang (talk | contribs) No edit summary |
(Update Cache Architecture) |
||
Line 21: | Line 21: | ||
== Virtual Storage Interface == | == Virtual Storage Interface == | ||
Virtual Storage Interface is plugin system for cloud storage framework to cooperate with different cloud storage. | Virtual Storage Interface is plugin system for cloud storage framework to cooperate with different cloud storage. | ||
== Cache Architecture == | |||
=== Background === | |||
* '''Improve performance''' | |||
** measurement: response time of each file operation | |||
* '''Offline Support''' | |||
** Cache store is a subset of cloud storage, so Cache system still can provide cached file content from cache store even no network connection available. | |||
=== Architecture === | |||
* '''Cache Manager''' | |||
** Dispatch the request from Cloud Storage Interface to Data/Meta Cache first | |||
** Get data from Web Storage Manager if there is no data existed in Cache. | |||
* '''Cloud Storage Interface''' | |||
** The interface for using Cloud Storage cache is a general design. This can be used in JS Library or Gecko implementation. | |||
* '''Meta Cache''' | |||
** Each file has its meta data like mdate, cdate, size, etc. These information should be cached. | |||
* '''Data Cache''' | |||
** Data Cache should store a file content requested by user for each file in order to avoid extra network transaction. | |||
* '''Web Storage Manager''' | |||
** Provide an interface for each web storage provider (Dropbox, Box.net, etc) to communicate with Cache Manager. | |||
* '''Cache Policy''' | |||
** Cache policy is a set of method to prefetch file content or meta aggressively, so the response time for each request can be improved. | |||
=== Data Cache Implement Proposal === | |||
* File-based Cache | |||
** minimum data chunk - File | |||
* Block-based Cache | |||
** minimum data chunk - Block (with fixed-size) | |||
** File System level operation can be mapped to cloud storage. | |||
{| class="wikitable" | |||
|- | |||
! Header text !! File-based !! Block-based | |||
|- | |||
| Cross Platform/Browser || Yes || TBD... | |||
|- | |||
| Response Time for large-size file<br />(ex: video) || poor || good | |||
|- | |||
| Response Time for small-size file<br />(ex: photo, audio) || good || good<br />(depends on block-size) | |||
|- | |||
| Implementation Idea || Gaia: JS Library (Filer) || Gaia: TBD...<br />Gecko: FUSE | |||
|- | |||
| Related Web API || Blob, MSE(?), ... || Blob, Device Storage, ... | |||
|} | |||
== Proposed Solution(s) == | == Proposed Solution(s) == |
edits