[ https://issues.apache.org/jira/browse/LUCENE-5152?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13733454#comment-13733454 ]
Michael McCandless commented on LUCENE-5152: -------------------------------------------- bq. can you elaborate what you are concerned about? I'm worried about the O(N^2) cost of the assert: for every arc (single byte of each term in a seekExact) we are iterating over all root arcs (up to 256 arcs) in this assert. bq. findTargetArc is the only place where we actually use this cache? Ahh that's true, I hadn't realized that. Maybe, instead, we can move the assert just inside the if that actually uses the cached arcs? Ie, put it here: {code} if (follow.target == startNode && labelToMatch < cachedRootArcs.length) { assert assertRootArcs(); ... } {code} This would address my concern: the cost becomes O(N) not O(N^2). And the coverage is the same? > Lucene FST is not immutable > --------------------------- > > Key: LUCENE-5152 > URL: https://issues.apache.org/jira/browse/LUCENE-5152 > Project: Lucene - Core > Issue Type: Bug > Components: core/FSTs > Affects Versions: 4.4 > Reporter: Simon Willnauer > Priority: Blocker > Fix For: 5.0, 4.5 > > Attachments: LUCENE-5152.patch, LUCENE-5152.patch, LUCENE-5152.patch > > > a spinnoff from LUCENE-5120 where the analyzing suggester modified a returned > output from and FST (BytesRef) which caused sideffects in later execution. > I added an assertion into the FST that checks if a cached root arc is > modified and in-fact this happens for instance in our MemoryPostingsFormat > and I bet we find more places. We need to think about how to make this less > trappy since it can cause bugs that are super hard to find. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org