FrankChen021 opened a new pull request, #20771:
URL: https://github.com/apache/druid/pull/20771

   ### Description
   
   Upgrades fastutil from 8.5.4 to 8.5.19, split out of #20765 because it needs 
code changes:
   
   - `fastutil` 8.5.19 is self-contained and no longer depends on 
`fastutil-core`, so modules declare `fastutil` instead.
   - `IntArrayList#grow(int)` is now public, so `DruidIntList` drops its 
private copy.
   - Tree maps and sets now reject null keys:
     - `array_overlap` with a constant array uses `java.util.TreeSet` instead 
of `ObjectAVLTreeSet`.
     - `SortedDimensionDictionary` and `ComparatorSortedDimensionDictionary` 
sort an `int[]` of ids instead of building an `Object2IntRBTreeMap`, so null 
needs no special handling.
   
   The new dictionary sort is also faster and allocates less (JMH, 1M values):
   
   | Class | Type | Tree map(original) | This PR | Allocation |
   | --- | --- | --- | --- | --- |
   | `ComparatorSortedDimensionDictionary` | STRING | 1210 ms | 512 ms | 74 MB 
→ 12 MB |
   | `SortedDimensionDictionary` | STRING | 1183 ms | 458 ms | 54 MB → 12 MB |
   | `SortedDimensionDictionary` | LONG | 964 ms | 270 ms | 54 MB → 12 MB |
   
   #### Release note
   
   Upgraded fastutil to 8.5.19. Druid now ships a single `fastutil` jar instead 
of `fastutil`, `fastutil-core` and `fastutil-extra`.
   
   <hr>
   
   This PR has:
   
   - [x] been self-reviewed.
   - [x] added or updated version, license, or notice information in 
[licenses.yaml](https://github.com/apache/druid/blob/master/dev/license.md)
   - [x] added unit tests or modified existing tests to cover new code paths, 
ensuring the threshold for [code 
coverage](https://github.com/apache/druid/blob/master/dev/code-review/code-coverage.md)
 is met.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to