hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "stack (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HBASE-13291) Lift the scan ceiling
Date Fri, 27 Mar 2015 04:31:53 GMT

     [ https://issues.apache.org/jira/browse/HBASE-13291?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

stack updated HBASE-13291:
--------------------------
    Attachment: nonBBposAndInineMvccVint.txt

This is the hack to bypass bb plus inlining of the vint of mvcc. No longer shows in perf top.
Here is what it looks like now:

{code}
Samples: 4M of event 'cycles', Event count (approx.): 422533226118
 21.09%  perf-13042.map      [.] Lorg/apache/hadoop/hbase/io/hfile/HFileReaderV2$ScannerV2;._next
in Lorg/apache/hadoop/hbase/io/hfile/HFileReaderV2$ScannerV2;.next
 12.76%  perf-13042.map      [.] Lorg/apache/hadoop/hbase/regionserver/ScanQueryMatcher;.match
 11.61%  perf-13042.map      [.] <A0>4=^D<F4>^?
  6.00%  perf-13042.map      [.] Lorg/apache/hadoop/hbase/regionserver/StoreScanner;.optimize
in Lorg/apache/hadoop/hbase/regionserver/StoreScanner;.next
  5.84%  perf-13042.map      [.] Lorg/apache/hadoop/hbase/regionserver/KeyValueHeap;.next
  4.75%  perf-13042.map      [.] Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;.release
in Lorg/apache/hadoop/hbase/regionserver/StoreScanner;.peek
  3.87%  perf-13042.map      [.] Ljava/util/PriorityQueue;.siftUpUsingComparator in Lorg/apache/hadoop/hbase/regionserver/KeyValueHeap;.next
  3.57%  perf-13042.map      [.] Lorg/apache/hadoop/hbase/regionserver/KeyValueHeap;.peek
in Lorg/apache/hadoop/hbase/regionserver/KeyValueHeap;.next
  3.09%  perf-13042.map      [.] Lorg/apache/hadoop/hbase/util/Bytes$LexicographicalComparerHolder$UnsafeComparer;.compareTo
in Lorg/apache/hadoop/hbase/regionserver/ScanQueryMatcher;.match
  2.00%  perf-13042.map      [.] Lorg/apache/hadoop/hbase/regionserver/ScanDeleteTracker;.reset
in Lorg/apache/hadoop/hbase/regionserver/StoreScanner;.next
  1.96%  libjvm.so           [.] BlockOffsetArrayNonContigSpace::block_start_unsafe(void const*)
const
  1.38%  perf-13042.map      [.] Lorg/apache/hadoop/hbase/regionserver/StoreFileScanner;.next
in Lorg/apache/hadoop/hbase/regionserver/KeyValueHeap;.next
  1.03%  libjvm.so           [.] ClearNoncleanCardWrapper::do_MemRegion(MemRegion)
  0.95%  perf-13042.map      [.] Ljava/util/concurrent/ConcurrentHashMap;.get in Lorg/apache/hadoop/hbase/io/hfile/LruBlockCache;.getBlock
  0.93%  perf-13042.map      [.] Ljava/util/concurrent/locks/LockSupport;.unpark in Lorg/apache/hadoop/hbase/regionserver/StoreScanner;.next
  0.91%  perf-13042.map      [.] Ljava/nio/HeapByteBuffer;.slice in Lorg/apache/hadoop/hbase/io/hfile/HFileReaderV2$ScannerV2;.updateCurrBlock
  0.77%  libjvm.so           [.] typeArrayKlass::allocate_common(int, bool, Thread*)
  0.72%  libjvm.so           [.] CompactibleFreeListSpace::block_size(HeapWord const*) const
  0.60%  perf-13042.map      [.] Lorg/apache/hadoop/hbase/util/Bytes$LexicographicalComparerHolder$UnsafeComparer;.compareTo
in Lorg/apache/hadoop/hbase/regionserver/HRegion$RegionScannerImpl;.nextInternal
  0.55%  perf-13042.map      [.] <D0>)=^D<F4>^?
  0.49%  libjvm.so           [.] SpinPause
  0.45%  perf-13042.map      [.] Lorg/apache/hadoop/hbase/util/Bytes$LexicographicalComparerHolder$UnsafeComparer;.compareTo
in Lorg/apache/hadoop/hbase/regionserver/HRegion$RegionScannerImpl;.populateResult
{code}

At about 8.5k/s. Up but not much.

> 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.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)

Mime
View raw message