You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by la...@apache.org on 2013/01/24 07:23:33 UTC
svn commit: r1437865 - in /hbase/branches/0.94/src:
main/java/org/apache/hadoop/hbase/client/HConnectionManager.java
test/java/org/apache/hadoop/hbase/client/TestHCM.java
Author: larsh
Date: Thu Jan 24 06:23:33 2013
New Revision: 1437865
URL: http://svn.apache.org/viewvc?rev=1437865&view=rev
Log:
HBASE-7638 Revert, due to concerns of failing tests.
Modified:
hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java
hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/client/TestHCM.java
Modified: hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java?rev=1437865&r1=1437864&r2=1437865&view=diff
==============================================================================
--- hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java (original)
+++ hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java Thu Jan 24 06:23:33 2013
@@ -987,7 +987,7 @@ public class HConnectionManager {
return location;
}
} else {
- deleteCachedLocation(tableName, row, null);
+ deleteCachedLocation(tableName, row);
}
// Query the root or meta region for the location of the meta region
@@ -1134,35 +1134,25 @@ public class HConnectionManager {
* @param tableName tableName
* @param row
*/
- void deleteCachedLocation(final byte[] tableName, final byte[] row, HRegionLocation source) {
- boolean isStaleDelete = false;
- HRegionLocation oldLocation = null;
+ void deleteCachedLocation(final byte [] tableName, final byte [] row) {
synchronized (this.cachedRegionLocations) {
Map<byte[], HRegionLocation> tableLocations =
getTableLocations(tableName);
// start to examine the cache. we can only do cache actions
// if there's something in the cache for this table.
if (!tableLocations.isEmpty()) {
- oldLocation = getCachedLocation(tableName, row);
- if (oldLocation != null) {
- isStaleDelete = (source != null) && !oldLocation.equals(source);
- if (!isStaleDelete) {
- tableLocations.remove(oldLocation.getRegionInfo().getStartKey());
+ HRegionLocation rl = getCachedLocation(tableName, row);
+ if (rl != null) {
+ tableLocations.remove(rl.getRegionInfo().getStartKey());
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Removed " +
+ rl.getRegionInfo().getRegionNameAsString() +
+ " for tableName=" + Bytes.toString(tableName) +
+ " from cache " + "because of " + Bytes.toStringBinary(row));
}
}
}
}
- if (LOG.isDebugEnabled()) {
- if (isStaleDelete) {
- LOG.debug("Received an error from " + source.getHostnamePort() + " for ["
- + oldLocation.getRegionInfo().getRegionNameAsString() + "]; not removing "
- + oldLocation.getHostnamePort() + " from cache.");
- } else if (oldLocation != null) {
- LOG.debug("Removed [" + oldLocation.getRegionInfo().getRegionNameAsString()
- + "] for tableName=" + Bytes.toString(tableName) + " from cache because of ["
- + Bytes.toStringBinary(row) + "]");
- }
- }
}
@Override
@@ -1603,7 +1593,7 @@ public class HConnectionManager {
actionCount++;
Row row = list.get(i);
workingList.add(row);
- deleteCachedLocation(tableName, row.getRow(), lastServers[i]);
+ deleteCachedLocation(tableName, row.getRow());
} else {
if (results[i] != null && results[i] instanceof Throwable) {
actionCount++;
Modified: hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/client/TestHCM.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/client/TestHCM.java?rev=1437865&r1=1437864&r2=1437865&view=diff
==============================================================================
--- hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/client/TestHCM.java (original)
+++ hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/client/TestHCM.java Thu Jan 24 06:23:33 2013
@@ -61,7 +61,6 @@ public class TestHCM {
private final static HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();
private static final byte[] TABLE_NAME = Bytes.toBytes("test");
private static final byte[] TABLE_NAME1 = Bytes.toBytes("test1");
- private static final byte[] TABLE_NAME2 = Bytes.toBytes("test2");
private static final byte[] FAM_NAM = Bytes.toBytes("f");
private static final byte[] ROW = Bytes.toBytes("bbb");
@@ -163,7 +162,7 @@ public class TestHCM {
HConnectionManager.HConnectionImplementation conn =
(HConnectionManager.HConnectionImplementation)table.getConnection();
assertNotNull(conn.getCachedLocation(TABLE_NAME, ROW));
- conn.deleteCachedLocation(TABLE_NAME, ROW, null);
+ conn.deleteCachedLocation(TABLE_NAME, ROW);
HRegionLocation rl = conn.getCachedLocation(TABLE_NAME, ROW);
assertNull("What is this location?? " + rl, rl);
table.close();
@@ -327,31 +326,6 @@ public class TestHCM {
assertTrue(c2 != c3);
}
- @Test(timeout = 60000)
- public void testDeleteFromCacheOnlyWorksFromTheSameSource() throws Exception{
- HTable table = TEST_UTIL.createTable(TABLE_NAME2, FAM_NAM);
- TEST_UTIL.createMultiRegions(table, FAM_NAM);
- Put put = new Put(ROW);
- put.add(FAM_NAM, ROW, ROW);
- table.put(put);
- HConnectionManager.HConnectionImplementation conn =
- (HConnectionManager.HConnectionImplementation)table.getConnection();
-
- HRegionLocation location = conn.getCachedLocation(TABLE_NAME2, ROW);
- assertNotNull(location);
- HRegionLocation anySource = new HRegionLocation(location.getRegionInfo(),
- location.getHostname(), location.getPort() - 1);
- conn.deleteCachedLocation(TABLE_NAME2, ROW, anySource);
- location = conn.getCachedLocation(TABLE_NAME2, ROW);
- assertNotNull(location); // different server, no delete.
-
- conn.deleteCachedLocation(TABLE_NAME2, ROW, location);
- location = conn.getCachedLocation(TABLE_NAME2, ROW);
- assertNull(location); // same server, delete.
-
- TEST_UTIL.deleteTable(TABLE_NAME2);
- }
-
@org.junit.Rule
public org.apache.hadoop.hbase.ResourceCheckerJUnitRule cu =
new org.apache.hadoop.hbase.ResourceCheckerJUnitRule();