Firefox OS/Cloud Storage: Difference between revisions

Update Cache Architecture
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) ==
30

edits