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

Liya Fan updated ARROW-5264:
----------------------------
    Description: 
The flag BoundsChecking#BOUNDS_CHECKING_ENABLED determines if boundary checking 
is enabled/disabled in vector/arrow buffer APIs. 
It has significant performance implications, since boundary checking is a 
frequent operation.

This issue addresses 2 problems with the flag for boundary checking in Java API:

1. The flag can be determined by an environmental variable: 
ARROW_ENABLE_UNSAFE_MEMORY_ACCESS, in addition to the system properties. The 
system properties have higher priority than the environmental variable.

2. There is an old and a new system property for this flag. To disable boundary 
checking, both the old and new properties must be set to true, which is 
undesirable:

 !screenshot-1.png! 

  was:
The flag BoundsChecking#BOUNDS_CHECKING_ENABLED determines if boundary checking 
is enabled/disabled in vector/arrow buffer APIs. 
It has significant performance implications, since boundary checking is a 
frequent operation.

This issue address 2 problems with the flag for boundary checking in Java API:
1. This flag is final and initialized in a static block. That means, the only 
reliable way to override it is in the JVM command line, by providing some 
system properties. However, for some scenarios, it is difficult or even 
impossible to get access to the JVM command line. Therefore, it is desirable to 
provide a way to override it dynamically in the program code. 

2. There is an old and a new system property for this flag. To disable boundary 
checking, both the old and new properties must be set to true, which is 
undesirable:

 !screenshot-1.png! 


> [Java] Allow enabling/disabling boundary checking by environmental variable
> ---------------------------------------------------------------------------
>
>                 Key: ARROW-5264
>                 URL: https://issues.apache.org/jira/browse/ARROW-5264
>             Project: Apache Arrow
>          Issue Type: Improvement
>          Components: Java
>            Reporter: Liya Fan
>            Assignee: Liya Fan
>            Priority: Minor
>              Labels: pull-request-available
>         Attachments: screenshot-1.png
>
>          Time Spent: 1h
>  Remaining Estimate: 0h
>
> The flag BoundsChecking#BOUNDS_CHECKING_ENABLED determines if boundary 
> checking is enabled/disabled in vector/arrow buffer APIs. 
> It has significant performance implications, since boundary checking is a 
> frequent operation.
> This issue addresses 2 problems with the flag for boundary checking in Java 
> API:
> 1. The flag can be determined by an environmental variable: 
> ARROW_ENABLE_UNSAFE_MEMORY_ACCESS, in addition to the system properties. The 
> system properties have higher priority than the environmental variable.
> 2. There is an old and a new system property for this flag. To disable 
> boundary checking, both the old and new properties must be set to true, which 
> is undesirable:
>  !screenshot-1.png! 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to