Skip to content

Commit

Permalink
additional logging
Browse files Browse the repository at this point in the history
  • Loading branch information
zhongjiewu committed May 16, 2013
1 parent a1ac2dd commit 7ef135d
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 9 deletions.
Expand Up @@ -145,7 +145,8 @@ public StreamRequestHandlerState handleRequest(DataInputStream inputStream,
streamStats.reportStorageTime(Operation.SLOP_UPDATE, System.nanoTime()
- startNs);
if(logger.isTraceEnabled())
logger.trace("updateSlopEntries (Streaming put) successful");
logger.trace("updateSlopEntries (Streaming put) successful on key:" + key
+ " of store: " + request.getStore());
} catch(ObsoleteVersionException e) {
// log and ignore
if(logger.isDebugEnabled())
Expand Down
Expand Up @@ -196,7 +196,8 @@ public void run() {

if(logger.isTraceEnabled())
logger.trace("Pushing slop for " + versioned.getValue().getNodeId()
+ " and store " + versioned.getValue().getStoreName());
+ " and store " + versioned.getValue().getStoreName()
+ " of key: " + versioned.getValue().getKey());

if(failureDetector.isAvailable(node)) {
SynchronousQueue<Versioned<Slop>> slopQueue = slopQueues.get(nodeId);
Expand Down
Expand Up @@ -174,6 +174,18 @@ public void requestComplete(Object result, long requestTime) {
+ ")");
}
}
} else {
if(logger.isDebugEnabled()) {
if(result instanceof Exception) {
logger.debug("PUT {key:"
+ key
+ "} will not send hint. Response is ignorable exception: "
+ result.getClass().toString());
} else {
logger.debug("PUT {key:" + key
+ "} will not send hint. Response is normal");
}
}
}

if(result instanceof Exception
Expand Down
34 changes: 27 additions & 7 deletions src/java/voldemort/store/slop/HintedHandoff.java
Expand Up @@ -16,6 +16,7 @@

package voldemort.store.slop;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

Expand Down Expand Up @@ -99,17 +100,24 @@ public HintedHandoff(FailureDetector failureDetector,
* voldemort.versioning.Version, Slop)
*/
public void sendHintParallel(final Node failedNode, final Version version, final Slop slop) {
boolean slopAsyncSent = false;
final ByteArray slopKey = slop.makeKey();
Versioned<byte[]> slopVersioned = new Versioned<byte[]>(slopSerializer.toBytes(slop),
version);

for(final Node node: handoffStrategy.routeHint(failedNode)) {
List<Node> nodes = handoffStrategy.routeHint(failedNode);
if(logger.isTraceEnabled()) {
List<Integer> nodeIds = new ArrayList<Integer>();
for(Node node: nodes) {
nodeIds.add(node.getId());
}
logger.debug("Hint preference list: " + nodeIds.toString());
}
for(final Node node: nodes) {
int nodeId = node.getId();

if(logger.isDebugEnabled())
logger.debug("Sending an async hint to " + nodeId);

if(!failedNodes.contains(node) && failureDetector.isAvailable(node)) {
if(logger.isDebugEnabled())
logger.debug("Sending an async hint to " + nodeId);
NonblockingStore nonblockingStore = nonblockingSlopStores.get(nodeId);
Utils.notNull(nonblockingStore);
final long startNs = System.nanoTime();
Expand Down Expand Up @@ -170,9 +178,17 @@ public void requestComplete(Object result, long requestTime) {
};

nonblockingStore.submitPutRequest(slopKey, slopVersioned, null, callback, timeoutMs);
slopAsyncSent = true;
break;
} else {
if(logger.isDebugEnabled()) {
logger.debug("Skipping node " + nodeId);
}
}
}
if(logger.isDebugEnabled() && !slopAsyncSent) {
logger.warn("Skipped all nodes. Did not send hint for key: " + slop.getKey());
}
}

/**
Expand All @@ -189,10 +205,10 @@ public boolean sendHintSerial(Node failedNode, Version version, Slop slop) {
boolean persisted = false;
for(Node node: handoffStrategy.routeHint(failedNode)) {
int nodeId = node.getId();
if(logger.isDebugEnabled())
logger.debug("Trying to send hint to " + nodeId + " for key " + slop.getKey());

if(!failedNodes.contains(node) && failureDetector.isAvailable(node)) {
if(logger.isDebugEnabled())
logger.debug("Trying to send hint to " + nodeId + " for key " + slop.getKey());
Store<ByteArray, Slop, byte[]> slopStore = slopStores.get(nodeId);
Utils.notNull(slopStore);
long startNs = System.nanoTime();
Expand Down Expand Up @@ -230,6 +246,10 @@ public boolean sendHintSerial(Node failedNode, Version version, Slop slop) {
+ System.identityHashCode(slop.getKey()) + ") for " + failedNode
+ " to node " + node + (persisted ? " succeeded" : " failed")
+ " in " + (System.nanoTime() - startNs) + " ns");
} else {
if(logger.isDebugEnabled()) {
logger.debug("Skipping node " + nodeId);
}
}
}

Expand Down

0 comments on commit 7ef135d

Please sign in to comment.