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

Michael Gibney updated SOLR-17190:
----------------------------------
    Description: 
The functionality provided by {{org.apache.solr.util.LongSet}} is redundant to 
that provided by {{com.carrotsearch.hppc.LongHashSet}}. Since hppc is already a 
dependency of solr-core, we should replace usages of 
{{org.apache.solr.util.LongSet}} and remove/deprecate it.

The motivation for this is practical as well: the [hash function used by 
org.apache.solr.util.LongSet|https://github.com/apache/solr/blob/148abec1a37b89f9bbd1835c239746773b374125/solr/core/src/java/org/apache/solr/util/LongSet.java#L78]
 is quite suboptimal for certain common usage patterns (specifically, if the 
values stored vary by powers of two (the larger the worse), values end up 
disproportionately hashing to the same bucket and you basically have an array 
scan for get and put).

This issue proposes to replace usages on {{main}} and {{branch_9x}}, remove 
{{org.apache.solr.util.LongSet}} on main, and either remove it or deprecate it 
on {{branch_9x}}.

  was:
The functionality provided by {{org.apache.solr.util.LongSet}} is redundant to 
that provided by {{com.carrotsearch.hppc.LongHashSet}}. Since hppc is already a 
dependency of solr-core, we should replace usages of 
{{org.apache.solr.util.LongSet}} and remove/deprecate it.

This motivation for this is practical as well: the [hash function used by 
org.apache.solr.util.LongSet|https://github.com/apache/solr/blob/148abec1a37b89f9bbd1835c239746773b374125/solr/core/src/java/org/apache/solr/util/LongSet.java#L78]
 is quite suboptimal for certain common usage patterns (specifically, if the 
values stored vary by powers of two (the larger the worse), values end up 
disproportionately hashing to the same bucket and you basically have an array 
scan for get and put).

This issue proposes to replace usages on {{main}} and {{branch_9x}}, remove 
{{org.apache.solr.util.LongSet}} on main, and either remove it or deprecate it 
on {{branch_9x}}.


> Replace org.apache.solr.util.LongSet with hppc LongHashSet
> ----------------------------------------------------------
>
>                 Key: SOLR-17190
>                 URL: https://issues.apache.org/jira/browse/SOLR-17190
>             Project: Solr
>          Issue Type: Improvement
>      Security Level: Public(Default Security Level. Issues are Public) 
>    Affects Versions: main (10.0), 9.5.0
>            Reporter: Michael Gibney
>            Assignee: Michael Gibney
>            Priority: Minor
>
> The functionality provided by {{org.apache.solr.util.LongSet}} is redundant 
> to that provided by {{com.carrotsearch.hppc.LongHashSet}}. Since hppc is 
> already a dependency of solr-core, we should replace usages of 
> {{org.apache.solr.util.LongSet}} and remove/deprecate it.
> The motivation for this is practical as well: the [hash function used by 
> org.apache.solr.util.LongSet|https://github.com/apache/solr/blob/148abec1a37b89f9bbd1835c239746773b374125/solr/core/src/java/org/apache/solr/util/LongSet.java#L78]
>  is quite suboptimal for certain common usage patterns (specifically, if the 
> values stored vary by powers of two (the larger the worse), values end up 
> disproportionately hashing to the same bucket and you basically have an array 
> scan for get and put).
> This issue proposes to replace usages on {{main}} and {{branch_9x}}, remove 
> {{org.apache.solr.util.LongSet}} on main, and either remove it or deprecate 
> it on {{branch_9x}}.



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

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

Reply via email to