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

ASF GitHub Bot updated CALCITE-7632:
------------------------------------
    Labels: pull-request-available  (was: )

> Replace java.util.Stack with java.util.ArrayDeque in Pattern and 
> TopDownRuleDriver
> ----------------------------------------------------------------------------------
>
>                 Key: CALCITE-7632
>                 URL: https://issues.apache.org/jira/browse/CALCITE-7632
>             Project: Calcite
>          Issue Type: Improvement
>          Components: core
>            Reporter: Liu Zhengri
>            Priority: Major
>              Labels: pull-request-available
>
> Replace `java.util.Stack` (which extends `Vector` with unnecessary 
> synchronization overhead) with `java.util.ArrayDeque` in two locations:
> 1. `Pattern.java` - `PatternBuilder.stack` field (used for SQL 
> MATCH_RECOGNIZE NFA pattern matching)
> 2. `TopDownRuleDriver.java` - task queue (used for Volcano optimizer top-down 
> Cascades-style optimization)
> This eliminates the `@SuppressWarnings("JdkObsolete")` annotations and `// 
> TODO: replace with Deque` comments that have existed since CALCITE-4314 
> (2020).
> Benefits:
> - `Stack` extends `Vector` with synchronized methods (unnecessary lock 
> overhead in single-threaded contexts)
> - `ArrayDeque` is non-synchronized and officially recommended by Java 
> documentation as a replacement for `Stack`
> - Removes Error Prone `JdkObsolete` warnings
> - Better memory expansion strategy (ArrayDeque doubles capacity vs Vector 
> linear growth)



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

Reply via email to