[ 
https://issues.apache.org/jira/browse/HBASE-13291?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14394751#comment-14394751
 ] 

stack commented on HBASE-13291:
-------------------------------

Filed HBASE-13389 for regression.

On the mvcc parse cost, the hard part is skipping the mvcc... to see the 
difference it introduces; you can't if mvcc is present because the parse will 
run off the rails.

But 6 days have now elapsed so I can see what it is like when mvcc is 0. I see 
an uptick in scan rate from about 9k to about 9.4k... about 5% diff in 
throughput?

Profile looks like this in my modified 1.0 (it includes the attached patches):

{code}
Samples: 13M of event 'cycles', Event count (approx.): 439449675139
 15.46%  perf-14056.map      [.] 0x00007f38f13fa41f
 10.94%  perf-14056.map      [.] 
Lorg/apache/hadoop/hbase/util/Bytes;.toLongUnsafe in 
Lorg/apache/hadoop/hbase/regionserver/StoreFileScanner;.next
  3.53%  perf-14056.map      [.] 
Lorg/apache/hadoop/hbase/regionserver/KeyValueHeap;.next in 
Lorg/apache/hadoop/hbase/regionserver/HRegion$RegionScannerImpl;.populateResult
  3.33%  perf-14056.map      [.] 
Lorg/apache/hadoop/hbase/regionserver/StoreScanner;.peek in 
Lorg/apache/hadoop/hbase/regionserver/HRegion$RegionScannerImpl;.populateResult
  2.74%  perf-14056.map      [.] 
Lorg/apache/hadoop/hbase/util/Bytes;.toLongUnsafe in 
Lorg/apache/hadoop/hbase/regionserver/ScanQueryMatcher;.moreMatch
  2.50%  perf-14056.map      [.] 
Lorg/apache/hadoop/hbase/regionserver/StoreScanner;.getNextIndexedKey in 
Lorg/apache/hadoop/hbase/regionserver/StoreScanner;.next
  2.05%  perf-14056.map      [.] Ljava/util/PriorityQueue;.peek in 
Lorg/apache/hadoop/hbase/regionserver/KeyValueHeap;.next
  1.54%  perf-14056.map      [.] 
Lorg/apache/hadoop/hbase/regionserver/StoreFileScanner;.getNextIndexedKey in 
Lorg/apache/hadoop/hbase/regionserver/StoreScanner;.next
  1.43%  perf-14056.map      [.] 
Lorg/apache/hadoop/hbase/util/Bytes;.toShortUnsafe in 
Lorg/apache/hadoop/hbase/regionserver/ScanQueryMatcher;.match
  1.41%  perf-14056.map      [.] 
Lorg/apache/hadoop/hbase/regionserver/ScanDeleteTracker;.reset in 
Lorg/apache/hadoop/hbase/regionserver/StoreScanner;.next
  1.39%  perf-14056.map      [.] 
Lorg/apache/hadoop/hbase/KeyValue;.getDelimiter in 
Lorg/apache/hadoop/hbase/regionserver/ScanQueryMatcher;.match
  1.33%  perf-14056.map      [.] Ljava/nio/ByteBuffer;.arrayOffset in 
Lorg/apache/hadoop/hbase/regionserver/StoreFileScanner;.next
  1.10%  perf-14056.map      [.] 
Lorg/apache/hadoop/hbase/regionserver/StoreScanner;.next
  1.05%  perf-14056.map      [.] 
Lorg/apache/hadoop/hbase/io/hfile/AbstractHFileReader$Scanner;.isSeeked in 
Lorg/apache/hadoop/hbase/regionserver/StoreFileScanner;.next
  1.01%  perf-14056.map      [.] 
Lorg/apache/hadoop/hbase/KeyValue;.getRowLength in 
Lorg/apache/hadoop/hbase/regionserver/ScanQueryMatcher;.match
{code}

I can't really tell what the opaque 0x00007f38f13fa41f that is missing its 
symbol is. It could be Bytes... compareTo since this is what is in flight 
recorder output but is missing here (interesting how different the picture perf 
top and flight recorder present... same basic cast of characters but 
attribution is wildly different).

Before the mvcc went to zero, I saw decodeVIntSize taking 15% of CPU (both in 
flight recorder and in perf top).



> Lift the scan ceiling
> ---------------------
>
>                 Key: HBASE-13291
>                 URL: https://issues.apache.org/jira/browse/HBASE-13291
>             Project: HBase
>          Issue Type: Improvement
>          Components: Scanners
>    Affects Versions: 1.0.0
>            Reporter: stack
>            Assignee: stack
>         Attachments: 13291.hacks.txt, 13291.inlining.txt, Screen Shot 
> 2015-03-26 at 12.12.13 PM.png, Screen Shot 2015-03-26 at 3.39.33 PM.png, 
> hack_to_bypass_bb.txt, nonBBposAndInineMvccVint.txt, q (1).png, traces.7.svg, 
> traces.filterall.svg, traces.nofilter.svg, traces.small2.svg, 
> traces.smaller.svg
>
>
> Scanning medium sized rows with multiple concurrent scanners exhibits 
> interesting 'ceiling' properties. A server runs at about 6.7k ops a second 
> using 450% of possible 1600% of CPUs  when 4 clients each with 10 threads 
> doing scan 1000 rows.  If I add '--filterAll' argument (do not return 
> results), then we run at 1450% of possible 1600% possible but we do 8k ops a 
> second.
> Let me attach flame graphs for two cases. Unfortunately, there is some 
> frustrating dark art going on. Let me try figure it... Filing issue in 
> meantime to keep score in.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to