mirror of https://github.com/apache/druid.git
fix numShards = -1 not being handled correctly (#3937)
This commit is contained in:
parent
a459db68b6
commit
3c54fc912a
|
@ -609,7 +609,6 @@ public class IndexTask extends AbstractTask
|
||||||
@JsonTypeName("index")
|
@JsonTypeName("index")
|
||||||
public static class IndexTuningConfig implements TuningConfig, AppenderatorConfig
|
public static class IndexTuningConfig implements TuningConfig, AppenderatorConfig
|
||||||
{
|
{
|
||||||
private static final int DEFAULT_TARGET_PARTITION_SIZE = 5000000;
|
|
||||||
private static final int DEFAULT_MAX_ROWS_IN_MEMORY = 75000;
|
private static final int DEFAULT_MAX_ROWS_IN_MEMORY = 75000;
|
||||||
private static final IndexSpec DEFAULT_INDEX_SPEC = new IndexSpec();
|
private static final IndexSpec DEFAULT_INDEX_SPEC = new IndexSpec();
|
||||||
private static final int DEFAULT_MAX_PENDING_PERSISTS = 0;
|
private static final int DEFAULT_MAX_PENDING_PERSISTS = 0;
|
||||||
|
@ -617,6 +616,8 @@ public class IndexTask extends AbstractTask
|
||||||
private static final boolean DEFAULT_FORCE_EXTENDABLE_SHARD_SPECS = false;
|
private static final boolean DEFAULT_FORCE_EXTENDABLE_SHARD_SPECS = false;
|
||||||
private static final boolean DEFAULT_REPORT_PARSE_EXCEPTIONS = false;
|
private static final boolean DEFAULT_REPORT_PARSE_EXCEPTIONS = false;
|
||||||
|
|
||||||
|
static final int DEFAULT_TARGET_PARTITION_SIZE = 5000000;
|
||||||
|
|
||||||
private final Integer targetPartitionSize;
|
private final Integer targetPartitionSize;
|
||||||
private final int maxRowsInMemory;
|
private final int maxRowsInMemory;
|
||||||
private final Integer numShards;
|
private final Integer numShards;
|
||||||
|
@ -666,15 +667,17 @@ public class IndexTask extends AbstractTask
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
Preconditions.checkArgument(
|
Preconditions.checkArgument(
|
||||||
targetPartitionSize == null || targetPartitionSize == -1 || numShards == null,
|
targetPartitionSize == null || targetPartitionSize.equals(-1) || numShards == null || numShards.equals(-1),
|
||||||
"targetPartitionSize and numShards cannot both be set"
|
"targetPartitionSize and numShards cannot both be set"
|
||||||
);
|
);
|
||||||
|
|
||||||
this.targetPartitionSize = numShards != null
|
this.targetPartitionSize = numShards != null && !numShards.equals(-1)
|
||||||
? null
|
? null
|
||||||
: (targetPartitionSize == null ? DEFAULT_TARGET_PARTITION_SIZE : targetPartitionSize);
|
: (targetPartitionSize == null || targetPartitionSize.equals(-1)
|
||||||
|
? DEFAULT_TARGET_PARTITION_SIZE
|
||||||
|
: targetPartitionSize);
|
||||||
this.maxRowsInMemory = maxRowsInMemory == null ? DEFAULT_MAX_ROWS_IN_MEMORY : maxRowsInMemory;
|
this.maxRowsInMemory = maxRowsInMemory == null ? DEFAULT_MAX_ROWS_IN_MEMORY : maxRowsInMemory;
|
||||||
this.numShards = numShards;
|
this.numShards = numShards == null || numShards.equals(-1) ? null : numShards;
|
||||||
this.indexSpec = indexSpec == null ? DEFAULT_INDEX_SPEC : indexSpec;
|
this.indexSpec = indexSpec == null ? DEFAULT_INDEX_SPEC : indexSpec;
|
||||||
this.maxPendingPersists = maxPendingPersists == null ? DEFAULT_MAX_PENDING_PERSISTS : maxPendingPersists;
|
this.maxPendingPersists = maxPendingPersists == null ? DEFAULT_MAX_PENDING_PERSISTS : maxPendingPersists;
|
||||||
this.buildV9Directly = buildV9Directly == null ? DEFAULT_BUILD_V9_DIRECTLY : buildV9Directly;
|
this.buildV9Directly = buildV9Directly == null ? DEFAULT_BUILD_V9_DIRECTLY : buildV9Directly;
|
||||||
|
|
|
@ -137,6 +137,25 @@ public class TaskSerdeTest
|
||||||
|
|
||||||
Assert.assertEquals(null, tuningConfig.getTargetPartitionSize());
|
Assert.assertEquals(null, tuningConfig.getTargetPartitionSize());
|
||||||
Assert.assertEquals(10, (int) tuningConfig.getNumShards());
|
Assert.assertEquals(10, (int) tuningConfig.getNumShards());
|
||||||
|
|
||||||
|
tuningConfig = jsonMapper.readValue(
|
||||||
|
"{\"type\":\"index\", \"targetPartitionSize\":10, \"numShards\":-1}",
|
||||||
|
IndexTask.IndexTuningConfig.class
|
||||||
|
);
|
||||||
|
|
||||||
|
Assert.assertEquals(null, tuningConfig.getNumShards());
|
||||||
|
Assert.assertEquals(10, (int) tuningConfig.getTargetPartitionSize());
|
||||||
|
|
||||||
|
tuningConfig = jsonMapper.readValue(
|
||||||
|
"{\"type\":\"index\", \"targetPartitionSize\":-1, \"numShards\":-1}",
|
||||||
|
IndexTask.IndexTuningConfig.class
|
||||||
|
);
|
||||||
|
|
||||||
|
Assert.assertEquals(null, tuningConfig.getNumShards());
|
||||||
|
Assert.assertEquals(
|
||||||
|
IndexTask.IndexTuningConfig.DEFAULT_TARGET_PARTITION_SIZE,
|
||||||
|
(int) tuningConfig.getTargetPartitionSize()
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
Loading…
Reference in New Issue