An indexing framework for peer-to-peer systems

Current peer-to-peer (P2P) indices are monolithic pieces of software that address only a subset of the desired functionality for P2P databases. For instance, Chord [6] provides reliability and scalability, but only supports equality queries. Skip Graphs [1] support equality and range queries, but only for one data item per peer. PePeR [4] supports equality and range queries over multiple data items per peer, but does not provide any search or reliability guarantees in face of multiple failures. Galanis et al. [5] describe an index structure for locating XML documents, but this index does not provide any provable guarantees on size and performance. In a P2P database system, all of the above functionality is required, but none of the existing systems supports it. We devise a modularized indexing framework that cleanly separates different functional components. This allows us to reuse existing algorithms rather than implement everything anew and to experiment with different implementations for the same component so that we can clearly evaluate and quantify the benefits of a particular implementation. Our indexing framework has the following components: 1. Fault-tolerant Torus: Provides fault-tolerant connectivity among peers. 2. Data Store: Stores actual data and provides methods for reliably exchanging data items between peers. 3. Replication Manager: Ensures data items are stored reliably even in the face of peer failures. 4. Content Router: Allows efficient location of data items.