[ https://issues.apache.org/jira/browse/HBASE-9000?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13807651#comment-13807651 ]
Liang Xie commented on HBASE-9000: ---------------------------------- Just my understanding: our current impl in trunk or the old 0.89-fb impl seems not optimized against all cases, one type of case probably is friendly with current logarithmic seek imple(tailSet), e.g. lots of kv needs to be skipped; another type of case is friendly with linear reseek, e.g. the target kv is near with the previous position, like 0.89-fb's old impl like : {code} public boolean reseek(KeyValue key) { while (kvsetNextRow != null && comparator.compare(kvsetNextRow, key) < 0) { kvsetNextRow = getNext(kvsetIt); } ... {code} to me, it's reasonable to have a setting value to : let the cheaper linear reseek go first, then fallback to more expensive seek() ops after reaching a config value. > Linear reseek in Memstore > ------------------------- > > Key: HBASE-9000 > URL: https://issues.apache.org/jira/browse/HBASE-9000 > Project: HBase > Issue Type: Improvement > Affects Versions: 0.89-fb > Reporter: Shane Hogan > Priority: Minor > Fix For: 0.89-fb > > > This is to address the linear reseek in MemStoreScanner. Currently reseek > iterates over the kvset and the snapshot linearly by just calling next > repeatedly. The new solution is to do this linear seek up to a configurable > maximum amount of times then if the seek is not yet complete fall back to > logarithmic seek. -- This message was sent by Atlassian JIRA (v6.1#6144)