p2p-fs Features

P2P-FS Logo

  1. Fault Tolerance: p2p-fs will detect if there are multiple copies of a file being shared on the network. If it detects this, then a list of all these replicas is made internally. Consider that machine X has file a.mp3, and user Y has file b.mp3, which are the same file, but differently named. p2p-fs will be able to determine that they are the same file using the MD5 algorithm. Suppose a client C is accessing the file X/a.mp3, and the host X goes down, then the client C will still be able to access this file since p2p-fs will internally use the replica of this file to serve out the request. Thus, the failure of a node is transparently hidden away from the user by p2p-fs, and people can continue accessing files from failed nodes even without noticing the failure. When these nodes come up again, they start getting used once again.

  2. Load Balancing: p2p-fs will use all the replicas to serve out a read request for a file if certain criteria are met. This ensures that servers that serve a lot of files are not heavily loaded if replicas of those files exist in the system. This also ensures that people can continue accessing files from a single node but all requests will actually be spread out across nodes having replicas of the file(s) being accessed.

  3. Unified file view: p2p-fs provides a unified file view such that all the IP addresses of machines sharing data are displayed in the root of the mount directory. You can use command line tools such as "ls" and "find" to easily search through the files on their names as you would do in a normal file system. You however need to be a bit careful while doing a "grep" on the mount point of a p2p-fs file-system, since it will involve actually fetching the file contents from each peer for every read request that "grep" makes. That apart, if there exist replicas of files, each replica will be searched, resulting in a considerable waste of time. I'm looking for a way to show only unique files in some way, but haven't yet been able to find one. So, the best you can do for now is manually limit your search using shell scripts, and filter files having extensions which can definitely not contain content that you are looking for.