Robert Muir created LUCENE-9189:
-----------------------------------

             Summary: TestIndexWriterDelete.testDeletesOnDiskFull can run for 
minutes
                 Key: LUCENE-9189
                 URL: https://issues.apache.org/jira/browse/LUCENE-9189
             Project: Lucene - Core
          Issue Type: Task
            Reporter: Robert Muir


I thought it was just the testUpdatesOnDiskFull, but looks like this one needs 
to be nightly too.

Should look more into the test, but I know something causes it to make such an 
insane amount of files, that sorting them becomes a bottleneck.

I guess also related is that it would be great if MockDirectoryWrapper's disk 
full check didn't trigger a sort of the files (via listAll): it does this check 
on like every i/o, would be nice for it to be less absurd. Maybe instead the 
test could check for disk full on not every i/o but some random sample of them?

Temporarily lets make it nightly...

{noformat}
PROFILE SUMMARY from 182501 samples
  tests.profile.count=10
  tests.profile.stacksize=1
  tests.profile.linenumbers=false
PERCENT SAMPLES STACK
15.89%  28995   java.lang.StringLatin1#compareTo()
6.61%   12069   java.util.TimSort#mergeHi()
5.96%   10878   java.util.TimSort#binarySort()
3.41%   6231    java.util.concurrent.ConcurrentHashMap#tabAt()
2.98%   5433    java.util.Comparators$NaturalOrderComparator#compare()
2.12%   3876    org.apache.lucene.store.DataOutput#copyBytes()
2.03%   3712    java.lang.String#compareTo()
1.84%   3350    java.util.concurrent.ConcurrentHashMap#get()
1.83%   3337    java.util.TimSort#mergeLo()
1.67%   3047    java.util.ArrayList#add()
{noformat}

All the file sorting is called from stacks like this, so its literally 
happening every writeByte() and so on

{noformat}
0.73%   1329    java.util.TimSort#binarySort()
                          at java.util.TimSort#sort()
                          at java.util.Arrays#sort()
                          at java.util.ArrayList#sort()
                          at java.util.stream.SortedOps$RefSortingSink#end()
                          at java.util.stream.AbstractPipeline#copyInto()
                          at java.util.stream.AbstractPipeline#wrapAndCopyInto()
                          at java.util.stream.AbstractPipeline#evaluate()
                          at 
java.util.stream.AbstractPipeline#evaluateToArrayNode()
                          at java.util.stream.ReferencePipeline#toArray()
                          at 
org.apache.lucene.store.ByteBuffersDirectory#listAll()
                          at 
org.apache.lucene.store.MockDirectoryWrapper#sizeInBytes()
                          at 
org.apache.lucene.store.MockIndexOutputWrapper#checkDiskFull()
                          at 
org.apache.lucene.store.MockIndexOutputWrapper#writeBytes()
                          at 
org.apache.lucene.store.MockIndexOutputWrapper#writeByte()
                          at org.apache.lucene.store.DataOutput#writeInt()
                          at org.apache.lucene.codecs.CodecUtil#writeFooter()
                          at 
org.apache.lucene.codecs.lucene50.Lucene50LiveDocsFormat#writeLiveDocs()
                          at 
org.apache.lucene.codecs.asserting.AssertingLiveDocsFormat#writeLiveDocs()
                          at 
org.apache.lucene.index.PendingDeletes#writeLiveDocs()
{noformat}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org

Reply via email to