To close the thread. With modified testcase [1] the Lucene index file
do not get updated.

> Is this switch from cfs format to storing in separate files is
> automatic and done by Lucene after index reaches certain size. Or this
> done something specifically in Oak?

This is done because as per default setup Lucene uses following merge policy

mergePolicy=[TieredMergePolicy: maxMergeAtOnce=10,
maxMergeAtOnceExplicit=30, maxMergedSegmentMB=5120.0,
floorSegmentMB=2.0, forceMergeDeletesPctAllowed=10.0,
segmentsPerTier=10.0, maxCFSSegmentSizeMB=8.796093022207999E12,
noCFSRatio=0.1
i

When noCFSRatio crosses 0.1 then CFS file would not be used.

Below is the IndexConfig state used to create the index

------------------------
dir=OakDirectory@79a302e9
lockFactory=org.apache.lucene.store.NoLockFactory@183ee75d
index=
version=4.7.1 1582953 - sarowe - 2014-03-29 00:33:55
matchVersion=LUCENE_47
analyzer=org.apache.jackrabbit.oak.plugins.index.lucene.OakAnalyzer
ramBufferSizeMB=16.0
maxBufferedDocs=-1
maxBufferedDeleteTerms=-1
mergedSegmentWarmer=null
readerTermsIndexDivisor=1
termIndexInterval=32
delPolicy=org.apache.lucene.index.KeepOnlyLastCommitDeletionPolicy
commit=null
openMode=CREATE_OR_APPEND
similarity=org.apache.lucene.search.similarities.DefaultSimilarity
mergeScheduler=org.apache.lucene.index.SerialMergeScheduler@7fe47c41
default WRITE_LOCK_TIMEOUT=1000
writeLockTimeout=1000
codec=Lucene46
infoStream=org.apache.lucene.util.PrintStreamInfoStream
mergePolicy=[TieredMergePolicy: maxMergeAtOnce=10,
maxMergeAtOnceExplicit=30, maxMergedSegmentMB=5120.0,
floorSegmentMB=2.0, forceMergeDeletesPctAllowed=10.0,
segmentsPerTier=10.0, maxCFSSegmentSizeMB=8.796093022207999E12,
noCFSRatio=0.1
indexerThreadPool=org.apache.lucene.index.ThreadAffinityDocumentsWriterThreadPool@7199d0ff
readerPooling=false
perThreadHardLimitMB=1945
useCompoundFile=true
------------------------------

Chetan Mehrotra
[1] http://svn.apache.org/r1634504

Reply via email to