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

Michael Gibney commented on SOLR-17190:
---------------------------------------

Another improvement: the size arg to {{org.apache.solr.util.LongSet}} ctor, 
like that of {{HashMap}}, configures the size of the backing element array; but 
as invoked in code it is used with the intention of sizing to accommodate a 
specific number of expected elements. This is fixed by replacing with hppc 
LongHashSet, whose ctor takes load factor into account and sizes the backing 
array appropriately.

> 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: issues-unsubscr...@solr.apache.org
For additional commands, e-mail: issues-h...@solr.apache.org

Reply via email to