net.tomp2p.p2p
Class DistributedHashTable

java.lang.Object
  extended by net.tomp2p.p2p.DistributedHashTable

public class DistributedHashTable
extends Object


Nested Class Summary
static interface DistributedHashTable.Operation
           
 
Constructor Summary
DistributedHashTable(DistributedRouting routing, StorageRPC storeRCP, DirectDataRPC directDataRPC)
           
 
Method Summary
 FutureDHT add(Number160 locationKey, Number160 domainKey, Collection<Data> dataSet, RoutingConfiguration routingConfiguration, RequestP2PConfiguration p2pConfiguration, boolean protectDomain, boolean signMessage, boolean isManualCleanup, boolean list, FutureCreate<FutureDHT> futureCreate, FutureChannelCreator futureChannelCreator, ConnectionReservation connectionReservation)
           
static RequestP2PConfiguration adjustConfiguration(RequestP2PConfiguration p2pConfiguration, SortedMap<PeerAddress,DigestInfo> directHitsDigest)
          Adjusts the number of minimum requests in the P2P configuration.
 FutureDHT direct(Number160 locationKey, org.jboss.netty.buffer.ChannelBuffer buffer, boolean raw, RoutingConfiguration routingConfiguration, RequestP2PConfiguration p2pConfiguration, FutureCreate<FutureDHT> futureCreate, boolean cancelOnFinish, boolean manualCleanup, FutureChannelCreator futureChannelCreator, ConnectionReservation connectionReservation)
           
 FutureDHT get(Number160 locationKey, Number160 domainKey, Collection<Number160> contentKeys, SimpleBloomFilter<Number160> keyBloomFilter, SimpleBloomFilter<Number160> contentBloomFilter, RoutingConfiguration routingConfiguration, RequestP2PConfiguration p2pConfiguration, EvaluatingSchemeDHT evaluationScheme, boolean signMessage, boolean digest, boolean returnBloomFilter, boolean range, boolean isManualCleanup, FutureChannelCreator futureChannelCreator, ConnectionReservation connectionReservation)
           
 FutureDHT parallelRequests(RequestP2PConfiguration p2pConfiguration, NavigableSet<PeerAddress> queue, boolean cancleOnFinish, FutureChannelCreator futureChannelCreator, ConnectionReservation connectionReservation, boolean manualCleanup, DistributedHashTable.Operation operation)
          Creates RPCs and executes them parallel.
 FutureDHT put(Number160 locationKey, Number160 domainKey, Map<Number160,Data> dataMap, RoutingConfiguration routingConfiguration, RequestP2PConfiguration p2pConfiguration, boolean putIfAbsent, boolean protectDomain, boolean signMessage, boolean isManualCleanup, FutureCreate<FutureDHT> futureCreate, FutureChannelCreator futureChannelCreator, ConnectionReservation connectionReservation)
           
 FutureDHT remove(Number160 locationKey, Number160 domainKey, Collection<Number160> contentKeys, RoutingConfiguration routingConfiguration, RequestP2PConfiguration p2pConfiguration, boolean returnResults, boolean signMessage, boolean isManualCleanup, FutureCreate<FutureDHT> futureCreate, FutureChannelCreator futureChannelCreator, ConnectionReservation connectionReservation)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DistributedHashTable

public DistributedHashTable(DistributedRouting routing,
                            StorageRPC storeRCP,
                            DirectDataRPC directDataRPC)
Method Detail

add

public FutureDHT add(Number160 locationKey,
                     Number160 domainKey,
                     Collection<Data> dataSet,
                     RoutingConfiguration routingConfiguration,
                     RequestP2PConfiguration p2pConfiguration,
                     boolean protectDomain,
                     boolean signMessage,
                     boolean isManualCleanup,
                     boolean list,
                     FutureCreate<FutureDHT> futureCreate,
                     FutureChannelCreator futureChannelCreator,
                     ConnectionReservation connectionReservation)

direct

public FutureDHT direct(Number160 locationKey,
                        org.jboss.netty.buffer.ChannelBuffer buffer,
                        boolean raw,
                        RoutingConfiguration routingConfiguration,
                        RequestP2PConfiguration p2pConfiguration,
                        FutureCreate<FutureDHT> futureCreate,
                        boolean cancelOnFinish,
                        boolean manualCleanup,
                        FutureChannelCreator futureChannelCreator,
                        ConnectionReservation connectionReservation)

put

public FutureDHT put(Number160 locationKey,
                     Number160 domainKey,
                     Map<Number160,Data> dataMap,
                     RoutingConfiguration routingConfiguration,
                     RequestP2PConfiguration p2pConfiguration,
                     boolean putIfAbsent,
                     boolean protectDomain,
                     boolean signMessage,
                     boolean isManualCleanup,
                     FutureCreate<FutureDHT> futureCreate,
                     FutureChannelCreator futureChannelCreator,
                     ConnectionReservation connectionReservation)

get

public FutureDHT get(Number160 locationKey,
                     Number160 domainKey,
                     Collection<Number160> contentKeys,
                     SimpleBloomFilter<Number160> keyBloomFilter,
                     SimpleBloomFilter<Number160> contentBloomFilter,
                     RoutingConfiguration routingConfiguration,
                     RequestP2PConfiguration p2pConfiguration,
                     EvaluatingSchemeDHT evaluationScheme,
                     boolean signMessage,
                     boolean digest,
                     boolean returnBloomFilter,
                     boolean range,
                     boolean isManualCleanup,
                     FutureChannelCreator futureChannelCreator,
                     ConnectionReservation connectionReservation)

remove

public FutureDHT remove(Number160 locationKey,
                        Number160 domainKey,
                        Collection<Number160> contentKeys,
                        RoutingConfiguration routingConfiguration,
                        RequestP2PConfiguration p2pConfiguration,
                        boolean returnResults,
                        boolean signMessage,
                        boolean isManualCleanup,
                        FutureCreate<FutureDHT> futureCreate,
                        FutureChannelCreator futureChannelCreator,
                        ConnectionReservation connectionReservation)

parallelRequests

public FutureDHT parallelRequests(RequestP2PConfiguration p2pConfiguration,
                                  NavigableSet<PeerAddress> queue,
                                  boolean cancleOnFinish,
                                  FutureChannelCreator futureChannelCreator,
                                  ConnectionReservation connectionReservation,
                                  boolean manualCleanup,
                                  DistributedHashTable.Operation operation)
Creates RPCs and executes them parallel.

Parameters:
p2pConfiguration - The configuration that specifies e.g. how many parallel requests there are.
queue - The sorted set that will be queries. The first RPC takes the first in the queue.
futureDHT - The future object that tracks the progress
cancleOnFinish - Set to true if the operation should be canceled (e.g. file transfer) if the future has finished.
operation - The operation that creates the request

adjustConfiguration

public static RequestP2PConfiguration adjustConfiguration(RequestP2PConfiguration p2pConfiguration,
                                                          SortedMap<PeerAddress,DigestInfo> directHitsDigest)
Adjusts the number of minimum requests in the P2P configuration. When we query x peers for the get() operation and they have y different data stored (y <= x), then set the minimum to y or to the value the user set if its smaller. If no data is found, then return 0, so we don't start P2P RPCs.

Parameters:
p2pConfiguration - The old P2P configuration with the user specified minimum result
directHitsDigest - The digest information from the routing process
Returns:
The new RequestP2PConfiguration with the new minimum result


Copyright © 2013. All Rights Reserved.