|
Under Development
Beyond P2P with WAND
The Wide Area Network Directory (WAND) from PlanetLab could
revolutionise the Internet's data management system, says Vinutha V
Peer-to-Peer
(P2P) systems are getting all the buzz, be it Skype for voice or Kaaza for file-sharing.
Locating data elements in a pure P2P system that has no central server or any
other form of centralised control is a challenge. To facilitate browsing and
retrieval from a wide-area P2P network, a file system is required'one
that is robust and retains its structure even when nodes enter and leave the
network on the fly.
To evolve and maintain a global file system structure over a wide-area P2P network,
a team of four academicians from the Indian Institute of Information Technology-Bangalore
(IIIT-B) have developed a new model called Wide Area Network Directory (WAND).
This system has a novel approach to managing the root directory, and an innovative
mechanism for propagating changes using a simple form for metadata'a file
system tree.
How it works
In a WAND network, peer systems (meaning PCs) share one or
more directories from their local file system. WAND provides a file system tree
where peers can mount their shared directories. The global file system structure
is implemented in such a way that each peer is in charge of one or more mounted
directories.
A peer can enter a WAND network by either connecting to an existing network
or building its own network using the buildroot function. When a node executes
buildroot, a horizontal cache (root cache) is created containing the contents
of the root directory. The file system comprises a single virtual folder corresponding
to the root directory that is owned by the peer performing buildroot. The node
then has to create at least one virtual directory under the root directory.
It can mount its shared directories under these virtual directories at the root
level. The node performing buildroot is termed as the WAND node of its network.
When a new node wants to join, it requests a copy of the horizontal cache from
any node in an existing network. The host node can be either a root level or
a sub-directory level node.
Handling networked partitions
The WAND directory structure is resilient to network partitions. These are handled
by splitting the file system tree into two or more sub-trees. The splitting
algorithm is such that a node tries its best to remain in its file system tree.
But if it cannot contact any node even after trying its best, it decides to
walk away and form its own network containing the same sub-tree to which it
belongs. It does not matter whether the network is really partitioned'the
objective is to maintain consistent sub-trees when the tree splits.
Tested at PlanetLab
The WAND model has been piloted through the global PlanetLab project, which
is a test bed for researchers and academicians to experiment with network applications
and services that benefit from distribution across a wide geographic area.
A prototype of WAND has been implemented over Java and RMI, and the implementation
is sufficient to test the usability of WAND. The performance of the WAND network
is dependent on the number of messages being passed between nodes, the delay
in message-passing due to geographic distribution of nodes, and consistency
in the network view that each node has with respect to the actual network topology.
Says Dr Srinath Srinivasa, a professor at IIIT-B who is also in charge of PlanetLab
at the institute, 'We are hoping that WAND will become an open source
tool and a resilient file system for various applications in fields where data
sharing is required.'
WAND is expected to become a comprehensive tool for data sharing without having
to maintain a Website or using a domain name. It will be useful in the areas
of education and in the corporate world, and wherever sharing of files or online
meetings or anything to do with co-ordination is required.
Consistency: the ability to maintain semantic integrity while performing
various operations.
Resilience: the ability of the system to withstand host failures.
Scalability: the ability of the system to scale up to large numbers of users.
The target audience for WAND is the Internet community, and hence scalability
is a crucial issue.
Availability: the ability of the system to correctly determine the state
of the system. |
|