incubator-blur-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From amccu...@apache.org
Subject git commit: Adding some javadoc to hopefully prevent future issues.
Date Sat, 15 Jun 2013 00:44:27 GMT
Updated Branches:
  refs/heads/master 9daa5dc27 -> e3202c480


Adding some javadoc to hopefully prevent future issues.


Project: http://git-wip-us.apache.org/repos/asf/incubator-blur/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-blur/commit/e3202c48
Tree: http://git-wip-us.apache.org/repos/asf/incubator-blur/tree/e3202c48
Diff: http://git-wip-us.apache.org/repos/asf/incubator-blur/diff/e3202c48

Branch: refs/heads/master
Commit: e3202c480580fdfd1d8bdd5e9bcee0b0d758222c
Parents: 9daa5dc
Author: Aaron McCurry <amccurry@gmail.com>
Authored: Fri Jun 14 20:13:45 2013 -0400
Committer: Aaron McCurry <amccurry@gmail.com>
Committed: Fri Jun 14 20:13:45 2013 -0400

----------------------------------------------------------------------
 .../blur/lucene/warmup/TraceableDirectory.java  | 21 ++++++++++++++++++++
 1 file changed, 21 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/e3202c48/blur-store/src/main/java/org/apache/blur/lucene/warmup/TraceableDirectory.java
----------------------------------------------------------------------
diff --git a/blur-store/src/main/java/org/apache/blur/lucene/warmup/TraceableDirectory.java
b/blur-store/src/main/java/org/apache/blur/lucene/warmup/TraceableDirectory.java
index 638d61d..bbd99dc 100644
--- a/blur-store/src/main/java/org/apache/blur/lucene/warmup/TraceableDirectory.java
+++ b/blur-store/src/main/java/org/apache/blur/lucene/warmup/TraceableDirectory.java
@@ -30,6 +30,27 @@ import org.apache.lucene.store.LockFactory;
 public class TraceableDirectory extends Directory implements DirectoryDecorator {
 
   private final Directory _dir;
+  /**
+   * One might feel compelled to make this field volatile because of the
+   * massively parallel environment that Blur operates. Please do NOT! This
+   * field cannot be volatile for performance reasons. For every query in Lucene
+   * there are a number of clones made of each file handle in each segment in
+   * each index. If this were volatile every thread would have to check this
+   * field every time a clone was called (see {@link TraceableIndexInput}). In
+   * fact I want this field to the remain false in all cases except for when a
+   * warm up trace is needed. If that occurs the Thread running the actually the
+   * trace will set this field to true for a brief moment while all the clones
+   * are made and the trace is performed (the clones are also made with this
+   * this trace thread). After the trace is complete is will return the false.
+   * During the time when the field is true, if any other field actually reads
+   * the value as true there is a second {@link ThreadLocal} field in
+   * {@link IndexWarmup} that prevents any other threads from running a trace.
+   * However there will be a small performance penalty while that situation
+   * occurs, because accessing a {@link ThreadLocal} field is fairly expensive.
+   * 
+   * In short please leave this the way it is, if you really want to change it
+   * please post a question on the mail list first.
+   */
   private boolean _trace = false;
   private IndexTracer _indexTracer;
 


Mime
View raw message