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

Anoop Sam John commented on HBASE-15204:
----------------------------------------

Yes as Stack said.  More over, here we are considering the Cells passed via 
PayLoad cellblock but don't know abt the Cells in PB message. If the client is 
not having Codec, we might not get any number of Cells associated with 
Mutation.  So may be this is an overkill?  Passing number of Cells to Region 
API looks a bit odd IMO.
bq. private ArrayList<Cell> cells = new ArrayList<Cell>(1);
We can change this only in WALEdit ?  Initialize with size 1 seems too less.  
At least the usage from doMiniBatchMutate(). Pass some bigger value (Like 10)?
As it is initialized with size =1 , there will be many growing happening (Like 
to 2, 3, 4, 6, 9).  When it is init with size 10 will be lesser #grows any way.


> Try to estimate the cell count for adding into WALEdit
> ------------------------------------------------------
>
>                 Key: HBASE-15204
>                 URL: https://issues.apache.org/jira/browse/HBASE-15204
>             Project: HBase
>          Issue Type: Sub-task
>          Components: regionserver
>            Reporter: ramkrishna.s.vasudevan
>            Assignee: ramkrishna.s.vasudevan
>             Fix For: 2.0.0
>
>         Attachments: HBASE-15204.patch, WAlEdit_add_allocation.jpg, 
> WAlEdit_add_allocation_after_patch.jpg
>
>
> The write path profiling shows that when we try to add Cells to WALEdits we 
> try to do a lot of Array copy inorder to grow the Arraylist backing the 
> WALEdits. In a simple one min profiling of the write path with 50 YCSB 
> threads shows around 261MB of allocation done for the Array copy to happen. 
> We can try to avoid that. 



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

Reply via email to