[
https://issues.apache.org/jira/browse/PHOENIX-4004?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16079725#comment-16079725
]
Lars Hofhansl commented on PHOENIX-4004:
----------------------------------------
Minor nits:
{code}
- Collection<Pair<Mutation, byte[]>> indexUpdates = new
ArrayList<Pair<Mutation, byte[]>>();
+ // Avoid multiple internal array resizings. Initial size of 64, unless we
have fewer cells in the edit
+ int initialSize = Math.min(edit.size(), 64);
{code}
Why not just set it to edit.size()? Looking at the code, we'll never add more
cells to {{indexUpdates}} than there are cells in the edit. Not need to have a
minimum of 64.
{code}
+ // Avoid the Object overhead of the executor when it's not actually
parallelizing anything.
+ ArrayList<Pair<Mutation, byte[]>> results = new
ArrayList<>(mutations.size());
+ for (Mutation m : mutations) {
+ results.addAll(delegate.getIndexUpdate(m, indexMetaData));
+ }
+ return results;
+ }
+ // Essentially unused due to the deadlock described in PHOENIX-2671. Leaving
for posterity..
+ public Collection<Pair<Mutation, byte[]>> getIndexUpdateWithPool(
{code}
Just remove it. Posterity/history is what git is for :)
Also can get rid of the {{pool}} member and remove the constructor now.
> Assorted improvements to reduce garbage in mutable index codepath
> -----------------------------------------------------------------
>
> Key: PHOENIX-4004
> URL: https://issues.apache.org/jira/browse/PHOENIX-4004
> Project: Phoenix
> Issue Type: Improvement
> Reporter: Josh Elser
> Assignee: Josh Elser
> Priority: Minor
> Fix For: 4.12.0
>
> Attachments: PHOENIX-4004.001.patch
>
>
> During some $dayjob testing, I found a couple of places where we were
> unnecessarily creating garbage in the RS. When "forward-porting" this change,
> most of the areas were already cleaned up but there are a few that still
> apply.
> * ArrayList initial sizing
> * Avoid indirection of the (single-threaded) ExecutorService in
> IndexBuildManager (just pure overhead)
> * Some unnecessary KeyValue copies and an array copy (an avoidance of
> deprecated HBase API)
> * Avoid extra {{System.arraycopy}} calls in CoveredColumnIndexCodec via the
> {{ArrayUtils.addAll}} call
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)