Changes

Jump to: navigation, search

Firefox OS/Cloud Storage

1,880 bytes added, 03:02, 20 May 2015
Update Cache Architecture
== Virtual Storage Interface ==
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) ==
30
edits

Navigation menu