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

ASF GitHub Bot commented on PARQUET-2357:
-----------------------------------------

fengjiajie opened a new pull request, #1165:
URL: https://github.com/apache/parquet-mr/pull/1165

   Optimization for the CapacityByteArrayOutputStream class:
   
   1. The functionality of **currentSlabIndex** is the same as 
**currentSlab.position()**, so there is no need to maintain the 
**currentSlabIndex** variable.
   2. When writing an array of length equal to the remaining capacity of the 
buffer, there is no need to expand to a new buffer.
   3. If the **addSlab** operation has already implemented safeguards using 
**Math.addExact** to prevent overflow of **bytesAllocated** and **bytesUsed**, 
it is unnecessary to perform additional checks during the **write** operation.
   
   
   
   Make sure you have checked _all_ steps below.
   
   ### Jira
   
   - [x] My PR addresses the following [Parquet 
Jira](https://issues.apache.org/jira/browse/PARQUET/) issues and references 
them in the PR title. For example, "PARQUET-2357: Modest refactor of 
CapacityByteArrayOutputStream"
     - https://issues.apache.org/jira/browse/PARQUET-2357
     - In case you are adding a dependency, check if the license complies with 
the [ASF 3rd Party License 
Policy](https://www.apache.org/legal/resolved.html#category-x).
   
   ### Tests
   
   - [x] My PR adds the following unit tests __OR__ does not need testing for 
this extremely good reason:
   
   ### Commits
   
   - [x] My commits all reference Jira issues in their subject lines. In 
addition, my commits follow the guidelines from "[How to write a good git 
commit message](http://chris.beams.io/posts/git-commit/)":
     1. Subject is separated from body by a blank line
     1. Subject is limited to 50 characters (not including Jira issue reference)
     1. Subject does not end with a period
     1. Subject uses the imperative mood ("add", not "adding")
     1. Body wraps at 72 characters
     1. Body explains "what" and "why", not "how"
   
   ### Documentation
   
   - [x] In case of new functionality, my PR adds documentation that describes 
how to use it.
     - All the public functions and the classes in the PR contain Javadoc that 
explain what it does
   




> Modest refactor of CapacityByteArrayOutputStream
> ------------------------------------------------
>
>                 Key: PARQUET-2357
>                 URL: https://issues.apache.org/jira/browse/PARQUET-2357
>             Project: Parquet
>          Issue Type: Improvement
>          Components: parquet-mr
>            Reporter: Feng Jiajie
>            Priority: Minor
>             Fix For: 1.14.0
>
>
> Optimization for the CapacityByteArrayOutputStream class:
>  # The functionality of {{currentSlabIndex}} is the same as 
> {{{}currentSlab.position(){}}}, so there is no need to maintain the 
> {{currentSlabIndex}} variable.
>  # When writing an array of length equal to the remaining capacity of the 
> buffer, there is no need to expand to a new buffer.
>  # If the {{addSlab}} operation has already implemented safeguards using 
> {{Math.addExact}} to prevent overflow of {{bytesAllocated}} and 
> {{{}bytesUsed{}}}, it is unnecessary to perform additional checks during the 
> {{write}} operation.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to