i Mob Store - Mobile nternet

advertisement
MobiStore - Mobile internet
File Storage Platform
Chetna Kaur
Proposed Work
Develop a distributed internet storage platform that
will allow internet enabled devices to manage
storage over the internet.
What is an Internet File System
User’s view

Storage provided on the Internet.

Can access the data stored in the File System on the go.

No need to buy expensive memory.

Seamless integration into the users file system eg: Gmail Drive’
Technically,




Not a Real File System
Simulates a file system by having a central repository of folder and file
links.
Files are stored on multiple storage servers.
API’s are provided for users to log in, create and manage files and
folders.
Motivation - Why another Internet File System?




# of mobile internet users increasing exponentially.
Mobile clients have limited memory but growing
memory requirements. – Potential User Base
Current internet file systems cannot cater to these
clients due to client resource constraints (Memory,
Bandwidth).
Why? What are the issues involved? How can I
build a file system platform that can provide
storage services to all types of clients?
Other sources of motivation

Show Gmail drive demo here
Solution
The Block Level Meta File System
-
-
-
Files are stored and accessed at a block
level.
Allows users with limited memory and
bandwidth requirements to access large
files.
File is downloaded in chunks as needed.
Challenges

Where Will Data Be Stored?
Requiring lot’s of space is the easy part of the problem!
 Availability
 Scalability
 Privacy and security
 Efficient data updates

Storage Access and Management Problems




Customizing system to users’/applications’ needs
Designing and managing block level meta data
Adaptivity to existing or new applications
 How do you share storage on top of blocks?
Communication between components
Important Design Decisions



System Interface
Scalable and High Availability Architecture
Data Structures




What Meta-Data to capture?
 Fast Indexing
 User Based Views
 Ease of file sharing
Efficient Algorithms for creation of new files and allocation
of new data blocks
File caching strategy
Technology
System Design
Meta File System Server
WWW
Distributed Storage Server
Access Server
System Interface and Functionality




Simple API for user login (password based
authentication).
APIs to create, and delete files and directories.
APIs to read and write to files at a block level
granularity.
API to share files with friends
Access Server - Functionality


Users connect to the file system and access their files via the
Access Server.
Client requests for File Block.





The Access Server gets the file information from the MFS Server.
Checks if file available in Cache.
If not, it connects to the storage server fetches the first block from
the SS.
Delegates the task of fetching rest of the blocks to cache
manager.
Send the requested data block to the client.
Key Features





Asynchronous Communication
Multithreaded – New thread for every connection
(uses a thread pool).
Block Level File Caching and Pre-Fetching.
Cache Manager runs in separate thread, prefetches next few blocks.
Cache Replacement Policy – Least Recently Used.
Storage Server



Essentially a flat file store.
Each file can be distributed across several actual
files on one or more storage servers.
How then can we allocate new files and blocks on
storage servers?
 Handled
by the Meta File System Server.
Meta File System



Stores Meta-data related to users and files
Uses hash maps for quick indexing of user name
spaces and files.
Efficient allocation of new blocks and files to
storage servers.
 Tries
to first allocate contiguous blocks so that they can be
pre-fetched together.
 If not possible, tries to allocate all blocks on same storage
server.
Design of the Meta File System
Main Contributions





Propose a Scalable, Highly-Available Architecture for a Distributed Internet File
System.
Design and implement an efficient Meta-File structure for a block level file
system implementation.
Implemented a simple file caching and pre-fetching mechanism, to improve
efficiency of block level file access.
Design and implement APIs for accessing files block by block for client with
resource constraints.
Implement a proof of concept system, and built a basic web based file storage
application on this platform to demonstrate its capabilities.
Open Research Areas





Persistence of Meta File System structure
Improved File Caching Mechanism in the Access
Server
Test the performance of the Block Allocation
Algorithm and improve it.
Towards a Google Docs type of implementation
(Multiple users can write different blocks of data
simultaneously)
Handling Multimedia Files
Technologies Used

+ Front End Web Application
PHP
+ Server
Apache, C++, Adaptive Communication
Environment, STL/BOOST
+ Communication
JSON over HTTP
Questions?
Download