Jump to content

TomP2P

From Wikipedia, the free encyclopedia
TomP2P
Developer(s)Thomas Bocek
Stable release
4.4
Repository
Written inJava
Typepeer-to-peer, key-value store
LicenseApache License 2
Websitetomp2p.net

TomP2P is a distributed hash table which provides a decentralized key-value infrastructure for distributed applications. Each peer has a table that can be configured either to be disk-based or memory-based to store its values.

Overview and key concept

[edit]

TomP2P stores key-value pairs in a distributed hash table. To find the peers and store the data in the distributed hash table, TomP2P uses an iterative routing approach. The underlying protocol for all the communication with other peers uses state-less request-reply messaging. Since TomP2P uses non-blocking communication, a future object is required to keep track of future results. This key concept is used for all the communication (iterative routing and DHT operations, such as storing a value on multiple peers) in TomP2P and it is also exposed in the API. Thus, an operation such as get(...) or put(...) will return immediately and the user of the API can either block the operation to wait for the completion or add a listener that gets notified when the operation completes.

Features

[edit]
  • Java 6 DHT implementation with non-blocking IO (java.nio) and a binary protocol[1]
  • XOR-based iterative routing with an ID space of 160-bit as in Kademlia
  • Data replication and best effort data protection[2]
  • Distributed tracker and Mesh-based distributed tracker (B-Tracker[3])
  • NAT traversal via UPNP and NAT-PMP[4]

See also

[edit]

References

[edit]
  1. ^ Bocek, T.; PeerCollaboration: [www.ifi.uzh.ch/pax/index.php/publication/pdf/id/1430 A Peer-to-Peer Collaboration Application for Large-scale Systems]. ISBN 978-3-8322-9002-3, Shaker Verlag, Aachen, Germany, March 2010. Chapter 7.2.1
  2. ^ Security in TomP2P
  3. ^ Hecht, F.V.; Bocek, T.; Stiller, B.; B-Tracker: Improving load balancing and efficiency in distributed P2P trackers, 2011 IEEE International Conference on Peer-to-Peer Computing (P2P), vol., no., pp. 310–313, Aug. 31 2011-Sept. 2 2011,
  4. ^ Changelog for TomP2P 4.0.0
[edit]