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

ryan rawson commented on HBASE-2248:
------------------------------------

could you please tell me where your 4k of memory quote is coming from?

the clone() is a deep/shallow clone.  The KeyValues arent being cloned, but in 
ever other way the clone is a deep clone - it copies all the nodes!  That could 
be literally a million nodes!  The number of nodes is dependent on your data 
size... 64MB memstore can accomodate 1.3m values if your KeyValue size is ~ 50 
bytes.  Or even larger if you start kicking in the memstore multiplier during a 
pending snapshot, you could have 4m+ nodes in a snapshot and a oversized kvset. 
 Clone is not really viable, it needs to be rolled back.  Furthermore it doesnt 
provide atomic protection anyways.

> New MemStoreScanner copies memstore for each scan, makes short scans slow
> -------------------------------------------------------------------------
>
>                 Key: HBASE-2248
>                 URL: https://issues.apache.org/jira/browse/HBASE-2248
>             Project: Hadoop HBase
>          Issue Type: Bug
>    Affects Versions: 0.20.3
>            Reporter: Dave Latham
>             Fix For: 0.20.4
>
>         Attachments: threads.txt
>
>
> HBASE-2037 introduced a new MemStoreScanner which triggers a 
> ConcurrentSkipListMap.buildFromSorted clone of the memstore and snapshot when 
> starting a scan.
> After upgrading to 0.20.3, we noticed a big slowdown in our use of short 
> scans.  Some of our data repesent a time series.   The data is stored in time 
> series order, MR jobs often insert/update new data at the end of the series, 
> and queries usually have to pick up some or all of the series.  These are 
> often scans of 0-100 rows at a time.  To load one page, we'll observe about 
> 20 such scans being triggered concurrently, and they take 2 seconds to 
> complete.  Doing a thread dump of a region server shows many threads in 
> ConcurrentSkipListMap.biuldFromSorted which traverses the entire map of key 
> values to copy it.  

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to