You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by rm...@apache.org on 2012/01/20 02:46:07 UTC
svn commit: r1233709 - in
/lucene/dev/branches/lucene3661/lucene/src/java/org/apache/lucene:
codecs/lucene40/Lucene40LiveDocsFormat.java index/CheckIndex.java
index/IndexWriter.java index/SegmentInfo.java
Author: rmuir
Date: Fri Jan 20 01:46:07 2012
New Revision: 1233709
URL: http://svn.apache.org/viewvc?rev=1233709&view=rev
Log:
LUCENE-3661: remove SI.getDelFileName
Modified:
lucene/dev/branches/lucene3661/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40LiveDocsFormat.java
lucene/dev/branches/lucene3661/lucene/src/java/org/apache/lucene/index/CheckIndex.java
lucene/dev/branches/lucene3661/lucene/src/java/org/apache/lucene/index/IndexWriter.java
lucene/dev/branches/lucene3661/lucene/src/java/org/apache/lucene/index/SegmentInfo.java
Modified: lucene/dev/branches/lucene3661/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40LiveDocsFormat.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3661/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40LiveDocsFormat.java?rev=1233709&r1=1233708&r2=1233709&view=diff
==============================================================================
--- lucene/dev/branches/lucene3661/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40LiveDocsFormat.java (original)
+++ lucene/dev/branches/lucene3661/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40LiveDocsFormat.java Fri Jan 20 01:46:07 2012
@@ -4,6 +4,7 @@ import java.io.IOException;
import java.util.Set;
import org.apache.lucene.codecs.LiveDocsFormat;
+import org.apache.lucene.index.IndexFileNames;
import org.apache.lucene.index.SegmentInfo;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.IOContext;
@@ -21,22 +22,36 @@ public class Lucene40LiveDocsFormat exte
@Override
public Bits readLiveDocs(Directory dir, SegmentInfo info, IOContext context) throws IOException {
- // nocommit: compute filename here
- return new BitVector(dir, info.getDelFileName(), context);
+ String filename = IndexFileNames.fileNameFromGeneration(info.name, IndexFileNames.DELETES_EXTENSION, info.getDelGen());
+ return new BitVector(dir, filename, context);
}
@Override
public void writeLiveDocs(MutableBits bits, Directory dir, SegmentInfo info, IOContext context) throws IOException {
- // nocommit: compute filename here
// nocommit: this api is ugly...
- ((BitVector)bits).write(dir, info.getDelFileName(), context);
+ String filename = IndexFileNames.fileNameFromGeneration(info.name, IndexFileNames.DELETES_EXTENSION, info.getDelGen());
+
+ // nocommit: is it somehow cleaner to still have IW do this try/finally/delete stuff and add abort() instead?
+ boolean success = false;
+ try {
+ ((BitVector)bits).write(dir, filename, context);
+ success = true;
+ } finally {
+ if (!success) {
+ try {
+ dir.deleteFile(filename);
+ } catch (Throwable t) {
+ // suppress this so we keep throwing the
+ // original exception
+ }
+ }
+ }
}
@Override
public void files(Directory dir, SegmentInfo info, Set<String> files) throws IOException {
- // nocommit: compute filename here
if (info.hasDeletions()) {
- files.add(info.getDelFileName());
+ files.add(IndexFileNames.fileNameFromGeneration(info.name, IndexFileNames.DELETES_EXTENSION, info.getDelGen()));
}
}
}
Modified: lucene/dev/branches/lucene3661/lucene/src/java/org/apache/lucene/index/CheckIndex.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3661/lucene/src/java/org/apache/lucene/index/CheckIndex.java?rev=1233709&r1=1233708&r2=1233709&view=diff
==============================================================================
--- lucene/dev/branches/lucene3661/lucene/src/java/org/apache/lucene/index/CheckIndex.java (original)
+++ lucene/dev/branches/lucene3661/lucene/src/java/org/apache/lucene/index/CheckIndex.java Fri Jan 20 01:46:07 2012
@@ -174,8 +174,8 @@ public class CheckIndex {
/** True if this segment has pending deletions. */
public boolean hasDeletions;
- /** Name of the current deletions file name. */
- public String deletionsFileName;
+ /** Current deletions generation. */
+ public long deletionsGen;
/** Number of deleted documents. */
public int numDeleted;
@@ -526,15 +526,14 @@ public class CheckIndex {
segInfoStat.docStoreCompoundFile = info.getDocStoreIsCompoundFile();
}
- final String delFileName = info.getDelFileName();
- if (delFileName == null){
+ if (info.hasDeletions()) {
msg(" no deletions");
segInfoStat.hasDeletions = false;
}
else{
- msg(" has deletions [delFileName=" + delFileName + "]");
+ msg(" has deletions [delGen=" + info.getDelGen() + "]");
segInfoStat.hasDeletions = true;
- segInfoStat.deletionsFileName = delFileName;
+ segInfoStat.deletionsGen = info.getDelGen();
}
if (infoStream != null)
infoStream.print(" test: open reader.........");
Modified: lucene/dev/branches/lucene3661/lucene/src/java/org/apache/lucene/index/IndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3661/lucene/src/java/org/apache/lucene/index/IndexWriter.java?rev=1233709&r1=1233708&r2=1233709&view=diff
==============================================================================
--- lucene/dev/branches/lucene3661/lucene/src/java/org/apache/lucene/index/IndexWriter.java (original)
+++ lucene/dev/branches/lucene3661/lucene/src/java/org/apache/lucene/index/IndexWriter.java Fri Jan 20 01:46:07 2012
@@ -616,7 +616,6 @@ public class IndexWriter implements Clos
// We can write directly to the actual name (vs to a
// .tmp & renaming it) because the file is not live
// until segments file is written:
- final String delFileName = info.getDelFileName();
boolean success = false;
try {
info.getCodec().liveDocsFormat().writeLiveDocs(liveDocs, dir, info, IOContext.DEFAULT);
@@ -624,12 +623,6 @@ public class IndexWriter implements Clos
} finally {
if (!success) {
info.reset(sav);
- try {
- dir.deleteFile(delFileName);
- } catch (Throwable t) {
- // Suppress this so we keep throwing the
- // original exception
- }
}
}
assert (info.docCount - liveDocs.count()) == info.getDelCount() + pendingDeleteCount:
@@ -2257,32 +2250,19 @@ public class IndexWriter implements Clos
assert delCount > 0;
newSegment.setDelCount(delCount);
newSegment.advanceDelGen();
- final String delFileName = newSegment.getDelFileName();
if (infoStream.isEnabled("IW")) {
- infoStream.message("IW", "flush: write " + delCount + " deletes to " + delFileName);
+ infoStream.message("IW", "flush: write " + delCount + " deletes gen=" + flushedSegment.segmentInfo.getDelGen());
}
- boolean success2 = false;
- try {
- // TODO: in the NRT case it'd be better to hand
- // this del vector over to the
- // shortly-to-be-opened SegmentReader and let it
- // carry the changes; there's no reason to use
- // filesystem as intermediary here.
+
+ // TODO: in the NRT case it'd be better to hand
+ // this del vector over to the
+ // shortly-to-be-opened SegmentReader and let it
+ // carry the changes; there's no reason to use
+ // filesystem as intermediary here.
- SegmentInfo info = flushedSegment.segmentInfo;
- Codec codec = info.getCodec();
- codec.liveDocsFormat().writeLiveDocs(flushedSegment.liveDocs, directory, info, context);
- success2 = true;
- } finally {
- if (!success2) {
- try {
- directory.deleteFile(delFileName);
- } catch (Throwable t) {
- // suppress this so we keep throwing the
- // original exception
- }
- }
- }
+ SegmentInfo info = flushedSegment.segmentInfo;
+ Codec codec = info.getCodec();
+ codec.liveDocsFormat().writeLiveDocs(flushedSegment.liveDocs, directory, info, context);
}
success = true;
Modified: lucene/dev/branches/lucene3661/lucene/src/java/org/apache/lucene/index/SegmentInfo.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3661/lucene/src/java/org/apache/lucene/index/SegmentInfo.java?rev=1233709&r1=1233708&r2=1233709&view=diff
==============================================================================
--- lucene/dev/branches/lucene3661/lucene/src/java/org/apache/lucene/index/SegmentInfo.java (original)
+++ lucene/dev/branches/lucene3661/lucene/src/java/org/apache/lucene/index/SegmentInfo.java Fri Jan 20 01:46:07 2012
@@ -326,16 +326,6 @@ public final class SegmentInfo implement
return si;
}
- public String getDelFileName() {
- if (delGen == NO) {
- // In this case we know there is no deletion filename
- // against this segment
- return null;
- } else {
- return IndexFileNames.fileNameFromGeneration(name, IndexFileNames.DELETES_EXTENSION, delGen);
- }
- }
-
/**
* @deprecated separate norms are not supported in >= 4.0
*/