Skip to content

Commit e0eb85a

Browse files
gianmfjy
authored andcommitted
Add FileUtils.createTempDir() and enforce its usage. (apache#8932)
* Add FileUtils.createTempDir() and enforce its usage. The purpose of this is to improve error messages. Previously, the error message on a nonexistent or unwritable temp directory would be "Failed to create directory within 10,000 attempts". * Further updates. * Another update. * Remove commons-io from benchmark. * Fix tests.
1 parent 0514e56 commit e0eb85a

File tree

73 files changed

+300
-218
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

73 files changed

+300
-218
lines changed

benchmarks/pom.xml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -122,10 +122,6 @@
122122
<groupId>org.apache.commons</groupId>
123123
<artifactId>commons-math3</artifactId>
124124
</dependency>
125-
<dependency>
126-
<groupId>commons-io</groupId>
127-
<artifactId>commons-io</artifactId>
128-
</dependency>
129125
<dependency>
130126
<groupId>com.fasterxml.jackson.core</groupId>
131127
<artifactId>jackson-annotations</artifactId>

benchmarks/src/main/java/org/apache/druid/benchmark/FilterPartitionBenchmark.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,13 @@
2222
import com.fasterxml.jackson.databind.ObjectMapper;
2323
import com.google.common.base.Predicate;
2424
import com.google.common.collect.ImmutableList;
25-
import com.google.common.io.Files;
26-
import org.apache.commons.io.FileUtils;
2725
import org.apache.druid.benchmark.datagen.BenchmarkDataGenerator;
2826
import org.apache.druid.benchmark.datagen.BenchmarkSchemaInfo;
2927
import org.apache.druid.benchmark.datagen.BenchmarkSchemas;
3028
import org.apache.druid.common.config.NullHandling;
3129
import org.apache.druid.data.input.InputRow;
3230
import org.apache.druid.jackson.DefaultObjectMapper;
31+
import org.apache.druid.java.util.common.FileUtils;
3332
import org.apache.druid.java.util.common.granularity.Granularities;
3433
import org.apache.druid.java.util.common.guava.Sequence;
3534
import org.apache.druid.java.util.common.guava.Sequences;
@@ -173,7 +172,7 @@ public void setup() throws IOException
173172
incIndex.add(row);
174173
}
175174

176-
tmpDir = Files.createTempDir();
175+
tmpDir = FileUtils.createTempDir();
177176
log.info("Using temp dir: " + tmpDir.getAbsolutePath());
178177

179178
indexFile = INDEX_MERGER_V9.persist(

benchmarks/src/main/java/org/apache/druid/benchmark/FilteredAggregatorBenchmark.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,14 @@
2121

2222
import com.fasterxml.jackson.databind.ObjectMapper;
2323
import com.google.common.collect.ImmutableMap;
24-
import com.google.common.io.Files;
25-
import org.apache.commons.io.FileUtils;
2624
import org.apache.druid.benchmark.datagen.BenchmarkDataGenerator;
2725
import org.apache.druid.benchmark.datagen.BenchmarkSchemaInfo;
2826
import org.apache.druid.benchmark.datagen.BenchmarkSchemas;
2927
import org.apache.druid.benchmark.query.QueryBenchmarkUtil;
3028
import org.apache.druid.common.config.NullHandling;
3129
import org.apache.druid.data.input.InputRow;
3230
import org.apache.druid.jackson.DefaultObjectMapper;
31+
import org.apache.druid.java.util.common.FileUtils;
3332
import org.apache.druid.java.util.common.granularity.Granularities;
3433
import org.apache.druid.java.util.common.guava.Sequence;
3534
import org.apache.druid.java.util.common.logger.Logger;
@@ -186,7 +185,7 @@ public void setup() throws IOException
186185
inputRows.add(row);
187186
}
188187

189-
tmpDir = Files.createTempDir();
188+
tmpDir = FileUtils.createTempDir();
190189
log.info("Using temp dir: " + tmpDir.getAbsolutePath());
191190

192191
indexFile = INDEX_MERGER_V9.persist(

benchmarks/src/main/java/org/apache/druid/benchmark/GenericIndexedBenchmark.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@
1919

2020
package org.apache.druid.benchmark;
2121

22-
import com.google.common.io.Files;
2322
import com.google.common.primitives.Ints;
2423
import org.apache.druid.common.config.NullHandling;
24+
import org.apache.druid.java.util.common.FileUtils;
2525
import org.apache.druid.java.util.common.io.smoosh.FileSmoosher;
2626
import org.apache.druid.java.util.common.io.smoosh.SmooshedFileMapper;
2727
import org.apache.druid.segment.data.GenericIndexed;
@@ -126,7 +126,7 @@ public void createGenericIndexed() throws IOException
126126
element.putInt(0, i);
127127
genericIndexedWriter.write(element.array());
128128
}
129-
smooshDir = Files.createTempDir();
129+
smooshDir = FileUtils.createTempDir();
130130
file = File.createTempFile("genericIndexedBenchmark", "meta");
131131

132132
try (FileChannel fileChannel =

benchmarks/src/main/java/org/apache/druid/benchmark/GroupByTypeInterfaceBenchmark.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,6 @@
2323
import com.fasterxml.jackson.dataformat.smile.SmileFactory;
2424
import com.google.common.base.Supplier;
2525
import com.google.common.base.Suppliers;
26-
import com.google.common.io.Files;
27-
import org.apache.commons.io.FileUtils;
2826
import org.apache.druid.benchmark.datagen.BenchmarkDataGenerator;
2927
import org.apache.druid.benchmark.datagen.BenchmarkSchemaInfo;
3028
import org.apache.druid.benchmark.datagen.BenchmarkSchemas;
@@ -36,6 +34,7 @@
3634
import org.apache.druid.common.config.NullHandling;
3735
import org.apache.druid.data.input.InputRow;
3836
import org.apache.druid.jackson.DefaultObjectMapper;
37+
import org.apache.druid.java.util.common.FileUtils;
3938
import org.apache.druid.java.util.common.granularity.Granularities;
4039
import org.apache.druid.java.util.common.granularity.Granularity;
4140
import org.apache.druid.java.util.common.guava.Sequence;
@@ -291,7 +290,7 @@ public void setup() throws IOException
291290
rowsPerSegment
292291
);
293292

294-
tmpDir = Files.createTempDir();
293+
tmpDir = FileUtils.createTempDir();
295294
log.info("Using temp dir: %s", tmpDir.getAbsolutePath());
296295

297296
// queryableIndexes -> numSegments worth of on-disk segments

benchmarks/src/main/java/org/apache/druid/benchmark/TopNTypeInterfaceBenchmark.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
package org.apache.druid.benchmark;
2121

2222
import com.fasterxml.jackson.databind.ObjectMapper;
23-
import com.google.common.io.Files;
2423
import org.apache.druid.benchmark.datagen.BenchmarkDataGenerator;
2524
import org.apache.druid.benchmark.datagen.BenchmarkSchemaInfo;
2625
import org.apache.druid.benchmark.datagen.BenchmarkSchemas;
@@ -29,6 +28,7 @@
2928
import org.apache.druid.common.config.NullHandling;
3029
import org.apache.druid.data.input.InputRow;
3130
import org.apache.druid.jackson.DefaultObjectMapper;
31+
import org.apache.druid.java.util.common.FileUtils;
3232
import org.apache.druid.java.util.common.granularity.Granularities;
3333
import org.apache.druid.java.util.common.guava.Sequence;
3434
import org.apache.druid.java.util.common.logger.Logger;
@@ -277,7 +277,7 @@ public void setup() throws IOException
277277
incIndexes.add(incIndex);
278278
}
279279

280-
File tmpFile = Files.createTempDir();
280+
File tmpFile = FileUtils.createTempDir();
281281
log.info("Using temp dir: " + tmpFile.getAbsolutePath());
282282
tmpFile.deleteOnExit();
283283

benchmarks/src/main/java/org/apache/druid/benchmark/datagen/SegmentGenerator.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,6 @@
2121

2222
import com.google.common.collect.ImmutableList;
2323
import com.google.common.hash.Hashing;
24-
import com.google.common.io.Files;
25-
import org.apache.commons.io.FileUtils;
2624
import org.apache.druid.common.config.NullHandling;
2725
import org.apache.druid.data.input.InputRow;
2826
import org.apache.druid.data.input.impl.DimensionSchema;
@@ -31,6 +29,7 @@
3129
import org.apache.druid.data.input.impl.FloatDimensionSchema;
3230
import org.apache.druid.data.input.impl.LongDimensionSchema;
3331
import org.apache.druid.data.input.impl.StringDimensionSchema;
32+
import org.apache.druid.java.util.common.FileUtils;
3433
import org.apache.druid.java.util.common.ISE;
3534
import org.apache.druid.java.util.common.StringUtils;
3635
import org.apache.druid.java.util.common.granularity.Granularity;
@@ -95,7 +94,7 @@ public SegmentGenerator(@Nullable final File cacheDir)
9594
log.warn("No cache directory provided; benchmark data caching is disabled. "
9695
+ "Set the 'druid.benchmark.cacheDir' property or 'DRUID_BENCHMARK_CACHE_DIR' environment variable "
9796
+ "to use caching.");
98-
this.cacheDir = Files.createTempDir();
97+
this.cacheDir = FileUtils.createTempDir();
9998
this.cleanupCacheDir = true;
10099
}
101100
}

benchmarks/src/main/java/org/apache/druid/benchmark/indexing/IndexMergeBenchmark.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,13 @@
2121

2222
import com.fasterxml.jackson.databind.InjectableValues;
2323
import com.fasterxml.jackson.databind.ObjectMapper;
24-
import com.google.common.io.Files;
25-
import org.apache.commons.io.FileUtils;
2624
import org.apache.druid.benchmark.datagen.BenchmarkDataGenerator;
2725
import org.apache.druid.benchmark.datagen.BenchmarkSchemaInfo;
2826
import org.apache.druid.benchmark.datagen.BenchmarkSchemas;
2927
import org.apache.druid.common.config.NullHandling;
3028
import org.apache.druid.data.input.InputRow;
3129
import org.apache.druid.jackson.DefaultObjectMapper;
30+
import org.apache.druid.java.util.common.FileUtils;
3231
import org.apache.druid.java.util.common.logger.Logger;
3332
import org.apache.druid.math.expr.ExprMacroTable;
3433
import org.apache.druid.query.aggregation.hyperloglog.HyperUniquesSerde;
@@ -141,7 +140,7 @@ public void setup() throws IOException
141140
incIndex.add(row);
142141
}
143142

144-
tmpDir = Files.createTempDir();
143+
tmpDir = FileUtils.createTempDir();
145144
log.info("Using temp dir: " + tmpDir.getAbsolutePath());
146145

147146
File indexFile = INDEX_MERGER_V9.persist(

benchmarks/src/main/java/org/apache/druid/benchmark/indexing/IndexPersistBenchmark.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,13 @@
2020
package org.apache.druid.benchmark.indexing;
2121

2222
import com.fasterxml.jackson.databind.ObjectMapper;
23-
import com.google.common.io.Files;
24-
import org.apache.commons.io.FileUtils;
2523
import org.apache.druid.benchmark.datagen.BenchmarkDataGenerator;
2624
import org.apache.druid.benchmark.datagen.BenchmarkSchemaInfo;
2725
import org.apache.druid.benchmark.datagen.BenchmarkSchemas;
2826
import org.apache.druid.common.config.NullHandling;
2927
import org.apache.druid.data.input.InputRow;
3028
import org.apache.druid.jackson.DefaultObjectMapper;
29+
import org.apache.druid.java.util.common.FileUtils;
3130
import org.apache.druid.java.util.common.logger.Logger;
3231
import org.apache.druid.query.aggregation.hyperloglog.HyperUniquesSerde;
3332
import org.apache.druid.segment.IndexIO;
@@ -169,7 +168,7 @@ private IncrementalIndex makeIncIndex()
169168
@OutputTimeUnit(TimeUnit.MICROSECONDS)
170169
public void persistV9(Blackhole blackhole) throws Exception
171170
{
172-
File tmpDir = Files.createTempDir();
171+
File tmpDir = FileUtils.createTempDir();
173172
log.info("Using temp dir: " + tmpDir.getAbsolutePath());
174173
try {
175174
File indexFile = INDEX_MERGER_V9.persist(

benchmarks/src/main/java/org/apache/druid/benchmark/query/GroupByBenchmark.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,6 @@
2525
import com.google.common.base.Suppliers;
2626
import com.google.common.collect.ImmutableList;
2727
import com.google.common.collect.ImmutableMap;
28-
import com.google.common.io.Files;
29-
import org.apache.commons.io.FileUtils;
3028
import org.apache.druid.benchmark.datagen.BenchmarkDataGenerator;
3129
import org.apache.druid.benchmark.datagen.BenchmarkSchemaInfo;
3230
import org.apache.druid.benchmark.datagen.BenchmarkSchemas;
@@ -37,6 +35,7 @@
3735
import org.apache.druid.common.config.NullHandling;
3836
import org.apache.druid.data.input.InputRow;
3937
import org.apache.druid.jackson.DefaultObjectMapper;
38+
import org.apache.druid.java.util.common.FileUtils;
4039
import org.apache.druid.java.util.common.concurrent.Execs;
4140
import org.apache.druid.java.util.common.granularity.Granularities;
4241
import org.apache.druid.java.util.common.granularity.Granularity;
@@ -419,7 +418,7 @@ public void setup() throws IOException
419418
rowsPerSegment
420419
);
421420

422-
tmpDir = Files.createTempDir();
421+
tmpDir = FileUtils.createTempDir();
423422
log.info("Using temp dir: %s", tmpDir.getAbsolutePath());
424423

425424
// queryableIndexes -> numSegments worth of on-disk segments

0 commit comments

Comments
 (0)