T-07S-05

From
Jump to navigation Jump to search

Distributed Filesystem for Wireless Mesh Networks

Assigned to: Felix Bechstein

Advisor: Anatolij Zubow

Expected Submission: December 2007

Problem Statement

  • Which problem do you want to solve?
    • There is no filesystem only based on DHT for decentralized use, like our BRN.
  • To which domain of Computer Science does this problem relate to?
  • Why is the problem interesting? Why is it difficult?
    • A filesystem is a basic service for many applications on top. It can be used for class- and update-distribution, backup- or storage-service and many more.

Deliverables

  • At the end of the project, what will you have delivered?
    • A basic distributed (high-performance) filesystem, using only the DHT.
    • An interface to that filesystem in fuse or nfs, to mount it.
  • What does it mean that the project was successful?
    • The filesystem's performance is sufficient for class- or upgrade-distribution.

Prior Art

  • Who are your competitors? What are they doing?
  • How is your work different?
  • List of publications related to your topic.

Key Ideas / Project Execution Plan

  • How will you approach the problem?
    • I'll build the filesystem from bottom to top:
      • abstraction to fuse, nfs or similar
      • fs-layer: c# library, with an ioctl-like interface
      • block-layer: abstract the dht to simple blocks/extends variable in size
      • dht-layer: use the DHT
    • All the BRN-magic is done in the DHT, so i'll try to build a clever block structure with some caching to improve everything's speed.
  • On which contributions of others do you depend on?

Project Log

  • What you have done so far?
    • Define some Interfaces (not fixed yet).
    • Implement a DHT interface localy (not distributed).
    • Implement the Blocklayer.
      • hardcopys on blocklayer
    • Implement Direcorys:
      • openDir
      • mkdir
      • rmdir
      • ls
      • close
      • chdir
      • pwd
    • Implement Files
      • openFile
      • unlink
      • read
      • write
      • truncate
      • close
    • Implement Fuse Frontend
    • first prototype
  • What You plan to do next?
    • fix bugs
    • push performance to its limits