[SYSTEMML-1518] Fix corrupted input file names in old/new mlcontext Project: http://git-wip-us.apache.org/repos/asf/incubator-systemml/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-systemml/commit/55e46e7c Tree: http://git-wip-us.apache.org/repos/asf/incubator-systemml/tree/55e46e7c Diff: http://git-wip-us.apache.org/repos/asf/incubator-systemml/diff/55e46e7c
Branch: refs/heads/master Commit: 55e46e7cbeb46073d5d2f19fc4c3b59bdc01c7cb Parents: b70ee45 Author: Matthias Boehm <[email protected]> Authored: Fri Apr 14 01:04:22 2017 -0700 Committer: Matthias Boehm <[email protected]> Committed: Fri Apr 14 12:46:39 2017 -0700 ---------------------------------------------------------------------- src/main/java/org/apache/sysml/api/MLContext.java | 6 +++--- src/main/java/org/apache/sysml/hops/OptimizerUtils.java | 6 +++++- src/main/java/org/apache/sysml/lops/compile/Dag.java | 6 +++++- 3 files changed, 13 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/55e46e7c/src/main/java/org/apache/sysml/api/MLContext.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/api/MLContext.java b/src/main/java/org/apache/sysml/api/MLContext.java index 85827da..809776a 100644 --- a/src/main/java/org/apache/sysml/api/MLContext.java +++ b/src/main/java/org/apache/sysml/api/MLContext.java @@ -518,7 +518,7 @@ public class MLContext { if( format.equals("csv") ) { int blksz = ConfigurationManager.getBlocksize(); MatrixCharacteristics mc = new MatrixCharacteristics(rlen, clen, blksz, blksz, nnz); - mo = new MatrixObject(ValueType.DOUBLE, null, new MatrixFormatMetaData(mc, OutputInfo.CSVOutputInfo, InputInfo.CSVInputInfo)); + mo = new MatrixObject(ValueType.DOUBLE, OptimizerUtils.getUniqueTempFileName(), new MatrixFormatMetaData(mc, OutputInfo.CSVOutputInfo, InputInfo.CSVInputInfo)); } else if( format.equals("text") ) { if(rlen == -1 || clen == -1) { @@ -526,7 +526,7 @@ public class MLContext { } int blksz = ConfigurationManager.getBlocksize(); MatrixCharacteristics mc = new MatrixCharacteristics(rlen, clen, blksz, blksz, nnz); - mo = new MatrixObject(ValueType.DOUBLE, null, new MatrixFormatMetaData(mc, OutputInfo.TextCellOutputInfo, InputInfo.TextCellInputInfo)); + mo = new MatrixObject(ValueType.DOUBLE, OptimizerUtils.getUniqueTempFileName(), new MatrixFormatMetaData(mc, OutputInfo.TextCellOutputInfo, InputInfo.TextCellInputInfo)); } else if( format.equals("mm") ) { // TODO: Handle matrix market @@ -588,7 +588,7 @@ public class MLContext { if(rlen == -1 || clen == -1) { throw new DMLRuntimeException("The metadata is required in registerInput for format:" + format); } - fo = new FrameObject(null, new MatrixFormatMetaData(mc, OutputInfo.TextCellOutputInfo, InputInfo.TextCellInputInfo)); + fo = new FrameObject(OptimizerUtils.getUniqueTempFileName(), new MatrixFormatMetaData(mc, OutputInfo.TextCellOutputInfo, InputInfo.TextCellInputInfo)); } else { http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/55e46e7c/src/main/java/org/apache/sysml/hops/OptimizerUtils.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/hops/OptimizerUtils.java b/src/main/java/org/apache/sysml/hops/OptimizerUtils.java index 1a959b6..3691897 100644 --- a/src/main/java/org/apache/sysml/hops/OptimizerUtils.java +++ b/src/main/java/org/apache/sysml/hops/OptimizerUtils.java @@ -41,6 +41,7 @@ import org.apache.sysml.parser.Expression.ValueType; import org.apache.sysml.runtime.DMLRuntimeException; import org.apache.sysml.runtime.controlprogram.LocalVariableMap; import org.apache.sysml.runtime.controlprogram.context.SparkExecutionContext; +import org.apache.sysml.runtime.controlprogram.parfor.ProgramConverter; import org.apache.sysml.runtime.controlprogram.parfor.stat.InfrastructureAnalyzer; import org.apache.sysml.runtime.functionobjects.IntegerDivide; import org.apache.sysml.runtime.functionobjects.Modulus; @@ -885,7 +886,10 @@ public class OptimizerUtils * @return unique temp file name */ public static String getUniqueTempFileName() { - return new Dag<Lop>().getNextUniqueFilename(); + return ConfigurationManager.getScratchSpace() + + Lop.FILE_SEPARATOR + Lop.PROCESS_PREFIX + DMLScript.getUUID() + + Lop.FILE_SEPARATOR + ProgramConverter.CP_ROOT_THREAD_ID + Lop.FILE_SEPARATOR + + Dag.getNextUniqueFilenameSuffix(); } public static boolean allowsToFilterEmptyBlockOutputs( Hop hop ) http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/55e46e7c/src/main/java/org/apache/sysml/lops/compile/Dag.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/lops/compile/Dag.java b/src/main/java/org/apache/sysml/lops/compile/Dag.java index 71171d0..5816f3f 100644 --- a/src/main/java/org/apache/sysml/lops/compile/Dag.java +++ b/src/main/java/org/apache/sysml/lops/compile/Dag.java @@ -205,8 +205,12 @@ public class Dag<N extends Lop> return scratchFilePath; } + public static String getNextUniqueFilenameSuffix() { + return "temp" + job_id.getNextID(); + } + public String getNextUniqueFilename() { - return getFilePath() + "temp" + job_id.getNextID(); + return getFilePath() + getNextUniqueFilenameSuffix(); } public static String getNextUniqueVarname(DataType dt) {
