TreeMap isn't concurrent and it seems it was used that way? I know you guys are testing a bunch of different things at the same time so which HBase version and which patches were you using when you got that?
Thx, J-D On Mon, May 9, 2011 at 5:22 AM, Gaojinchao <gaojinc...@huawei.com> wrote: > I used ycsb to put data and threw exception. > Who can give me some suggestion? > > Hbase Code: > // Cut the cache so that we only get the part that could contain > // regions that match our key > SoftValueSortedMap<byte[], HRegionLocation> matchingRegions = > tableLocations.headMap(row); > > // if that portion of the map is empty, then we're done. otherwise, > // we need to examine the cached location to verify that it is > // a match by end key as well. > if (!matchingRegions.isEmpty()) { > HRegionLocation possibleRegion = > matchingRegions.get(matchingRegions.lastKey()); > > ycsb client log: > > [java] begin StatusThread run > [java] java.util.NoSuchElementException > [java] at java.util.TreeMap.key(TreeMap.java:1206) > [java] at java.util.TreeMap$NavigableSubMap.lastKey(TreeMap.java:1435) > [java] at > org.apache.hadoop.hbase.util.SoftValueSortedMap.lastKey(SoftValueSortedMap.java:131) > [java] at > org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getCachedLocation(HConnectionManager.java:841) > [java] at > org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegionInMeta(HConnectionManager.java:664) > [java] at > org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:590) > [java] at > org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.processBatch(HConnectionManager.java:1114) > [java] at > org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.processBatchOfPuts(HConnectionManager.java:1234) > [java] at > org.apache.hadoop.hbase.client.HTable.flushCommits(HTable.java:819) > [java] at org.apache.hadoop.hbase.client.HTable.doPut(HTable.java:675) > [java] at org.apache.hadoop.hbase.client.HTable.put(HTable.java:665) > [java] at com.yahoo.ycsb.db.HBaseClient.update(Unknown Source) > [java] at com.yahoo.ycsb.db.HBaseClient.insert(Unknown Source) > [java] at com.yahoo.ycsb.DBWrapper.insert(Unknown Source) > [java] at com.yahoo.ycsb.workloads.MyWorkload.doInsert(Unknown Source) > [java] at com.yahoo.ycsb.ClientThread.run(Unknown Source) >