Updated Branches: refs/heads/master e3202c480 -> 65b601c59
Fixed some javadoc. Project: http://git-wip-us.apache.org/repos/asf/incubator-blur/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-blur/commit/65b601c5 Tree: http://git-wip-us.apache.org/repos/asf/incubator-blur/tree/65b601c5 Diff: http://git-wip-us.apache.org/repos/asf/incubator-blur/diff/65b601c5 Branch: refs/heads/master Commit: 65b601c59067e603bc923c0e88a75e00aff83300 Parents: e3202c4 Author: Aaron McCurry <[email protected]> Authored: Fri Jun 14 21:08:14 2013 -0400 Committer: Aaron McCurry <[email protected]> Committed: Fri Jun 14 21:08:14 2013 -0400 ---------------------------------------------------------------------- .../blur/lucene/warmup/TraceableDirectory.java | 26 +++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/65b601c5/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 bbd99dc..2599755 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 @@ -35,18 +35,20 @@ public class TraceableDirectory extends Directory implements DirectoryDecorator * 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. + * each index. If this were volatile every thread would have to check main + * memory for 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 actual 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), this will likely just alter the + * value for that thread and not commit it back to main memory (heap). After + * the trace is complete is will return the field to 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.
