lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michael McCandless (JIRA)" <>
Subject [jira] Commented: (LUCENE-1604) Stop creating huge arrays to represent the absense of field norms
Date Tue, 14 Apr 2009 17:41:14 GMT


Michael McCandless commented on LUCENE-1604:

I completely agree it's silly to make huge arrays instead of accepting null.  One turns off
norms to avoid huge arrays getting allocated, in the first place.

Unfortunately, this is a break in back compatibility, though I think in 3.0 this change would
be OK.  Perhaps, we could commit it today, w/ a deprecated method exposed in IndexReader to
"allow null to be returned by getNorms()", which defaults to off (ie the current trunk behavior).
 Then, in 3.0, we remove that method and hardwire to true.

There is also a [presumably smallish] performance hit by adding the "norms != null" check
inside TermScorer, for every hit, but I think that's an OK tradeoff.

> Stop creating huge arrays to represent the absense of field norms
> -----------------------------------------------------------------
>                 Key: LUCENE-1604
>                 URL:
>             Project: Lucene - Java
>          Issue Type: Improvement
>          Components: Index
>    Affects Versions: 2.9
>            Reporter: Shon Vella
>            Priority: Minor
>             Fix For: 2.9
>         Attachments: LUCENE-1604.patch
> Creating and keeping around huge arrays that hold a constant value is very inefficient
both from a heap usage standpoint and from a localility of reference standpoint. It would
be much more efficient to use null to represent a missing norms table.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message