HBASE-682 unnecessary iteration in HMemcache.internalGet? got much better reading performance after break it.
git-svn-id: https://svn.apache.org/repos/asf/hadoop/hbase/trunk@667631 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
82639a32fd
commit
1bc0a2a0a3
|
@ -47,8 +47,11 @@ Hbase Change Log
|
|||
HBASE-662 UI in table.jsp gives META locations, not the table's regions
|
||||
location (Jean-Daniel Cryans via Stack)
|
||||
HBASE-676 Bytes.getInt returns a long (Clint Morgan via Stack)
|
||||
HBASE-680 config parameter hbase.io.index.interval should be
|
||||
HBASE-680 Config parameter hbase.io.index.interval should be
|
||||
hbase.index.interval, according to HBaseMapFile.HbaseWriter
|
||||
(LN via Stack)
|
||||
HBASE-682 Unnecessary iteration in HMemcache.internalGet? got much better
|
||||
reading performance after break it (LN via Stack)
|
||||
|
||||
IMPROVEMENTS
|
||||
HBASE-559 MR example job to count table rows
|
||||
|
|
|
@ -514,6 +514,9 @@ class Memcache {
|
|||
if (ttl == HConstants.FOREVER ||
|
||||
now < itKey.getTimestamp() + ttl) {
|
||||
result.add(new Cell(tailMap.get(itKey), itKey.getTimestamp()));
|
||||
if (numVersions > 0 && result.size() >= numVersions) {
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
victims.add(itKey);
|
||||
if (LOG.isDebugEnabled()) {
|
||||
|
@ -521,15 +524,15 @@ class Memcache {
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (numVersions > 0 && result.size() >= numVersions) {
|
||||
} else {
|
||||
// By L.N. HBASE-684, map is sorted, so we can't find match any more.
|
||||
break;
|
||||
}
|
||||
}
|
||||
// Remove expired victims from the map.
|
||||
for (HStoreKey v: victims)
|
||||
for (HStoreKey v: victims) {
|
||||
map.remove(v);
|
||||
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue