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

Michael McCandless commented on LUCENE-5604:
--------------------------------------------

I ran performance tests on first 5M Wikipedia "medium" (1 KB sized)
docs and Geonames (sources for the benchmark are all in luceneutil):

{noformat}
Wiki first 5M docs, no merge policy, 64 MB RAM buffer, 4 indexing threads, 
default codec:
  trunk:    136.985 sec, 189729244 conflicts
  murmur:   134.156 sec, 164990724 conflicts

Geonames, no merge policy, 64 MB RAM buffer, 4 indexing threads, default codec:
  trunk:    167.354 sec, 236051203 conflicts
  murmur:   168.101 sec, 179747265 conflicts
{noformat}

Net/net the indexing time is the same (within noise of run-to-run).
The conflict count is how many times we had to probe in the open
addressed hash table inside BytesRefHash, and Murmur3 gives a nice
reduction (~ 13-24%).  I think we should switch.


> Should we switch BytesRefHash to MurmurHash3?
> ---------------------------------------------
>
>                 Key: LUCENE-5604
>                 URL: https://issues.apache.org/jira/browse/LUCENE-5604
>             Project: Lucene - Core
>          Issue Type: Improvement
>          Components: core/index
>            Reporter: Michael McCandless
>            Assignee: Michael McCandless
>             Fix For: 4.9, 5.0
>
>         Attachments: LUCENE-5604.patch
>
>
> MurmurHash3 has better hashing distribution than the current hash function we 
> use for BytesRefHash which is a simple multiplicative function with 31 
> multiplier (same as Java's String.hashCode, but applied to bytes not chars).  
> Maybe we should switch ...



--
This message was sent by Atlassian JIRA
(v6.2#6252)

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

Reply via email to