[
https://issues.apache.org/jira/browse/HBASE-20483?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16451491#comment-16451491
]
stack commented on HBASE-20483:
-------------------------------
I assigned to you sir.
I'm working it currently. I'll attach rigs for comparing 1.2 and 2.0 flushes.
Doing the below gets rid of a load of compares done on reseek making it seem
like flushes take the same time in 1.2. and 2.0 locally but up on cluster, I
still lag badly in write throughput. Digging in more:
{code}
diff --git
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/SegmentScanner.java
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/SegmentScanner.java
index a8b0d3d501..417083f11b 100644
---
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/SegmentScanner.java
+++
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/SegmentScanner.java
@@ -162,9 +162,20 @@ public class SegmentScanner implements KeyValueScanner {
get it. So we remember the last keys we iterated to and restore
the reseeked set to at least that point.
*/
+ /*
iter = getIterator(getHighest(cell, last));
updateCurrent();
return (current != null);
+ */
+ while(iter.hasNext()){
+ Cell next = iter.next();
+ int ret = segment.compare(next, cell);
+ if(ret >= 0){
+ current = next;
+ return true;
+ }
+ }
+ return false;
}
{code}
> [PERFORMANCE] Flushing is 2x slower in hbase2.
> ----------------------------------------------
>
> Key: HBASE-20483
> URL: https://issues.apache.org/jira/browse/HBASE-20483
> Project: HBase
> Issue Type: Sub-task
> Components: Performance
> Reporter: stack
> Assignee: stack
> Priority: Major
>
> When flush is slow, memstores backup and go slower. See "1.2.7 vs. 2.0.0
> Flush History"
> https://docs.google.com/spreadsheets/d/1sihTxb4aCplR3Rr_GGXkPlwhMIm-CbB9j_5339AS0Zc/edit#gid=1016758826
> for compare. First noted by [~anoop.hbase]
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)