Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ability to skip Incremental Index during query using query context #1957

Merged
merged 1 commit into from Nov 24, 2015
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Expand Up @@ -49,6 +49,7 @@
import io.druid.data.input.Committer;
import io.druid.data.input.InputRow;
import io.druid.query.MetricsEmittingQueryRunner;
import io.druid.query.NoopQueryRunner;
import io.druid.query.Query;
import io.druid.query.QueryRunner;
import io.druid.query.QueryRunnerFactory;
Expand Down Expand Up @@ -132,6 +133,8 @@ public class RealtimePlumber implements Plumber

private static final String COMMIT_METADATA_KEY = "%commitMetadata%";
private static final String COMMIT_METADATA_TIMESTAMP_KEY = "%commitMetadataTimestamp%";
private static final String SKIP_INCREMENTAL_SEGMENT = "skipIncrementalSegment";


public RealtimePlumber(
DataSchema schema,
Expand Down Expand Up @@ -255,6 +258,7 @@ private Sink getSink(long timestamp)
@Override
public <T> QueryRunner<T> getQueryRunner(final Query<T> query)
{
final boolean skipIncrementalSegment = query.getContextValue(SKIP_INCREMENTAL_SEGMENT, false);
final QueryRunnerFactory<T, Query<T>> factory = conglomerate.findFactory(query);
final QueryToolChest<T, Query<T>> toolchest = factory.getToolchest();

Expand Down Expand Up @@ -322,6 +326,10 @@ public QueryRunner<T> apply(FireHydrant input)
return new ReportTimelineMissingSegmentQueryRunner<T>(descriptor);
}

if (skipIncrementalSegment && !input.hasSwapped()) {
return new NoopQueryRunner<T>();
}

// Prevent the underlying segment from closing when its being iterated
final Closeable closeable = input.getSegment().increment();
try {
Expand Down