FlashLite: A User-Level Library to Enahnce Durability of SSD for P2P File Sharing
Peer-to-peer file sharing is popular, but it generates random write traffic to storage due to the nature of swarming. NAND flash memory based Solid-State Drive (SSD) technology is available as an alternative to hard drives for notebook and tablet PCs. As it turns out, random write is extremely detrimental to the lifetime of SSD drives.
This project focuses on the following problem, namely, P2P file downloading when the target of the download is an SSD drive. We make three contributions: first, analysis of write patterns of downloading program to establish the premise of the problem; second, development of a simple yet powerful technique called FlashLite to combat this problem, by automatically converting the random writes to sequential writes; third, showing through performance evaluation using modified eMule file downloading program that FlashLite does change random writes to sequential, and most importantly eliminates about 94\% of erase operations of the original eMule program.
- Hyojun Kim, Umakishore Ramachandran, FlashLite: A User-Level Library to Enhance Durability of SSD for P2P File Sharing, 29th International Conference on Distributed Computing Systems (ICDCS), June 2009.
Enhanced CTorrent for Nokia N900
FlashLite approach is especially useful mobile devices having NAND flash storage inside. Due to the restricted resources of mobile devices, the NAND flash storage devices show relatively poor random write performance, in general. For example, in October 2009, a video clip was uploaded on YouTube , which was showing that Transmission (P2P file sharing program) was running on Nokia N900 smart phone. However, according to the video clip, N900 system was almost not responding during P2P downloading, and the problem can be solved by FlashLite approach.
To prove that, we applied FlashLite approach to the console based torrent client, named Enhanced CTorrent. We open our source patch as a open source so that anyone can evaluate it.
Here are some useful links,
Source Download and Compile
- Enhanced CTorrent: http://www.rahul.net/dholmes/ctorrent/
- FlashLite patch: http://www.cc.gatech.edu/~hkim362/opensrc/patch-dnh3.3.2-flashlite
- Quick Compilation Guide
/scratchbox/login wget http://www.rahul.net/dholmes/ctorrent/ctorrent-dnh3.3.2.tar.gz wget http://www.cc.gatech.edu/~hkim362/opensrc/patch-dnh3.3.2-flashlite tar xvfz ctorrent-dnh3.3.2.tar.gz cd ctorrent-dnh3.3.2 patch -p1 < ../patch-dhn3.3.2-flashlite ./configure make cd rearranger make
Pre-compiled binaries for Nokia N900
- Prerequisite: gainroot package
- Open X Terminal
sudo gainroot apt-get install wget wget http://www.cc.gatech.edu/~hkim362/opensrc/ctorrent-dnh3.3.2-n900-bin.tar tar xvf ctorrent-dnh3.3.2-n900-bin.tar mv ctorrent /usr/bin mv ctorrent-org /usr/bin mv rearranger /usr/bin
- ctorrent: ctorrent binary with FlashLite (user-level logging library)
- ctorrent-org: original ctorrent without FlashLite (for comparison)
- rearranger: a tool to translate *.fl file to normal file.
- Simple Steps:
- download torrent file with web browser to maybe on N900/MyDoc directory
- open xterm, go to MyDoc directory
- type 'ctorrent [.torrent file]', then ctorrent will download files in log-file format (with .fl extension)
- type 'rearranger [.fl file]' to translate .fl file to normal file
- delete .fl file