You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by su...@apache.org on 2013/07/26 21:59:06 UTC
svn commit: r1507414 - in
/hadoop/common/trunk/hadoop-common-project/hadoop-common: CHANGES.txt
src/main/java/org/apache/hadoop/ipc/RetryCache.java
Author: suresh
Date: Fri Jul 26 19:59:06 2013
New Revision: 1507414
URL: http://svn.apache.org/r1507414
Log:
HADOOP-9770. Make RetryCache#state non volatile. Contributed by Suresh Srinivas.
Modified:
hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt
hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/RetryCache.java
Modified: hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt?rev=1507414&r1=1507413&r2=1507414&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt (original)
+++ hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt Fri Jul 26 19:59:06 2013
@@ -496,6 +496,8 @@ Release 2.1.0-beta - 2013-07-02
HADOOP-9756. Remove the deprecated getServer(..) methods from RPC.
(Junping Du via szetszwo)
+ HADOOP-9770. Make RetryCache#state non volatile. (suresh)
+
OPTIMIZATIONS
HADOOP-9150. Avoid unnecessary DNS resolution attempts for logical URIs
Modified: hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/RetryCache.java
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/RetryCache.java?rev=1507414&r1=1507413&r2=1507414&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/RetryCache.java (original)
+++ hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/RetryCache.java Fri Jul 26 19:59:06 2013
@@ -52,7 +52,7 @@ public class RetryCache {
private static byte SUCCESS = 1;
private static byte FAILED = 2;
- private volatile byte state = INPROGRESS;
+ private byte state = INPROGRESS;
// Store uuid as two long for better memory utilization
private final long clientIdMsb; // Most signficant bytes
@@ -63,8 +63,10 @@ public class RetryCache {
private LightWeightGSet.LinkedElement next;
CacheEntry(byte[] clientId, int callId, long expirationTime) {
- Preconditions.checkArgument(clientId.length == 16, "Invalid clientId");
- // Conver UUID bytes to two longs
+ // ClientId must be a UUID - that is 16 octets.
+ Preconditions.checkArgument(clientId.length == 16,
+ "Invalid clientId - must be UUID of size 16 octets");
+ // Convert UUID bytes to two longs
long tmp = 0;
for (int i=0; i<8; i++) {
tmp = (tmp << 8) | (clientId[i] & 0xff);
@@ -116,7 +118,7 @@ public class RetryCache {
this.notifyAll();
}
- public boolean isSuccess() {
+ public synchronized boolean isSuccess() {
return state == SUCCESS;
}
@@ -241,13 +243,13 @@ public class RetryCache {
private static CacheEntry newEntry(long expirationTime) {
return new CacheEntry(Server.getClientId(), Server.getCallId(),
- expirationTime);
+ System.nanoTime() + expirationTime);
}
private static CacheEntryWithPayload newEntry(Object payload,
long expirationTime) {
return new CacheEntryWithPayload(Server.getClientId(), Server.getCallId(),
- payload, expirationTime);
+ payload, System.nanoTime() + expirationTime);
}
/** Static method that provides null check for retryCache */