Search in sources :

Example 6 with RetrievalResult

use of com.ms.silverking.cloud.dht.daemon.storage.protocol.RetrievalResult in project SilverKing by Morgan-Stanley.

the class ActiveProxyRetrieval method handleRetrievalResponse.

// ///////////////////
// Handle responses
public OpResult handleRetrievalResponse(MessageGroup message, MessageGroupConnectionProxy connection) {
    RetrievalCommunicator rComm;
    Map<IPAndPort, List<DHTKey>> destEntryMap;
    OpResult opResult;
    rComm = new RetrievalCommunicator();
    if (debug) {
        System.out.println("handleRetrievalResponse");
    }
    for (MessageGroupRetrievalResponseEntry entry : message.getRetrievalResponseValueKeyIterator()) {
        IPAndPort replica;
        replica = new IPAndPort(message.getOriginator(), DHTNode.getServerPort());
        if (debug) {
            System.out.println("replica: " + replica);
        }
        retrievalOperation.update(entry, replica, new RetrievalResult(entry, entry.getOpResult(), entry.getValue()), rComm);
    }
    sendResults(rComm);
    destEntryMap = rComm.takeReplicaMessageLists();
    if (destEntryMap != null) {
        forwardGroupedEntries(destEntryMap, optionsByteBuffer, new RetrievalForwardCreator(), rComm);
    }
    if (retrievalOptions.getRetrievalOptions().getUpdateSecondariesOnMiss()) {
        if (debug) {
            Log.warning("ActiveProxyRetrieval calling sendSecondaryReplicasUpdates");
        }
        sendSecondaryReplicasUpdates(rComm);
    } else {
        if (debug) {
            Log.warning("ActiveProxyRetrieval *no* sendSecondaryReplicasUpdates");
        }
    }
    return retrievalOperation.getOpResult();
}
Also used : IPAndPort(com.ms.silverking.net.IPAndPort) OpResult(com.ms.silverking.cloud.dht.common.OpResult) RetrievalCommunicator(com.ms.silverking.cloud.dht.daemon.storage.protocol.RetrievalCommunicator) ArrayList(java.util.ArrayList) ImmutableList(com.google.common.collect.ImmutableList) List(java.util.List) MessageGroupRetrievalResponseEntry(com.ms.silverking.cloud.dht.net.MessageGroupRetrievalResponseEntry) RetrievalResult(com.ms.silverking.cloud.dht.daemon.storage.protocol.RetrievalResult)

Aggregations

RetrievalResult (com.ms.silverking.cloud.dht.daemon.storage.protocol.RetrievalResult)6 ImmutableList (com.google.common.collect.ImmutableList)3 ArrayList (java.util.ArrayList)3 List (java.util.List)3 DHTKey (com.ms.silverking.cloud.dht.common.DHTKey)2 ProtoMessageGroup (com.ms.silverking.cloud.dht.net.ProtoMessageGroup)2 IPAndPort (com.ms.silverking.net.IPAndPort)2 ByteBuffer (java.nio.ByteBuffer)2 OpResult (com.ms.silverking.cloud.dht.common.OpResult)1 RetrievalCommunicator (com.ms.silverking.cloud.dht.daemon.storage.protocol.RetrievalCommunicator)1 MessageGroup (com.ms.silverking.cloud.dht.net.MessageGroup)1 MessageGroupRetrievalResponseEntry (com.ms.silverking.cloud.dht.net.MessageGroupRetrievalResponseEntry)1 ProtoKeyedMessageGroup (com.ms.silverking.cloud.dht.net.ProtoKeyedMessageGroup)1 ProtoRetrievalMessageGroup (com.ms.silverking.cloud.dht.net.ProtoRetrievalMessageGroup)1 ProtoValueMessageGroup (com.ms.silverking.cloud.dht.net.ProtoValueMessageGroup)1 IOException (java.io.IOException)1