Skip to content
This repository was archived by the owner on Apr 22, 2020. It is now read-only.

Commit 2d132a4

Browse files
mknblchMark Needham
authored andcommitted
Issue 542 translators (#544)
* adapt trianglecount to work with >2bn nodes * adapt testcases * adapt writeback methods * set writemillis * issue 542 * mv specialized translators into their datatype classes
1 parent bb454d2 commit 2d132a4

25 files changed

+90
-314
lines changed

algo/src/main/java/org/neo4j/graphalgo/BetweennessCentralityProc.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,8 @@
2222
import org.neo4j.graphalgo.core.GraphLoader;
2323
import org.neo4j.graphalgo.core.ProcedureConfiguration;
2424
import org.neo4j.graphalgo.core.utils.*;
25-
import org.neo4j.graphalgo.core.write.AtomicDoubleArrayTranslator;
26-
import org.neo4j.graphalgo.core.write.DoubleArrayTranslator;
2725
import org.neo4j.graphalgo.core.write.Exporter;
26+
import org.neo4j.graphalgo.core.write.Translators;
2827
import org.neo4j.graphalgo.impl.betweenness.*;
2928
import org.neo4j.graphalgo.results.BetweennessCentralityProcResult;
3029
import org.neo4j.graphdb.Direction;
@@ -210,7 +209,7 @@ public Stream<BetweennessCentralityProcResult> betweennessRABrandesWrite(
210209
.withLog(log)
211210
.parallel(Pools.DEFAULT, configuration.getConcurrency(), terminationFlag)
212211
.build()
213-
.write(writeProperty, centrality, AtomicDoubleArrayTranslator.INSTANCE);
212+
.write(writeProperty, centrality, Translators.ATOMIC_DOUBLE_ARRAY_TRANSLATOR);
214213
});
215214
}
216215
bc.release();
@@ -262,7 +261,7 @@ public Stream<BetweennessCentralityProcResult> computeBetweenness(
262261
.write(
263262
writeProperty,
264263
centrality,
265-
DoubleArrayTranslator.INSTANCE
264+
Translators.DOUBLE_ARRAY_TRANSLATOR
266265
)
267266
);
268267
}
@@ -314,7 +313,7 @@ public Stream<BetweennessCentralityProcResult> computeBetweennessParallel(
314313
.withLog(log)
315314
.parallel(Pools.DEFAULT, configuration.getConcurrency(), terminationFlag)
316315
.build()
317-
.write(writeProperty, centrality, AtomicDoubleArrayTranslator.INSTANCE);
316+
.write(writeProperty, centrality, Translators.ATOMIC_DOUBLE_ARRAY_TRANSLATOR);
318317
});
319318
}
320319
bc.release();

algo/src/main/java/org/neo4j/graphalgo/LabelPropagationProc.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
import org.neo4j.graphalgo.core.utils.ProgressTimer;
3030
import org.neo4j.graphalgo.core.utils.TerminationFlag;
3131
import org.neo4j.graphalgo.core.write.Exporter;
32-
import org.neo4j.graphalgo.core.write.IntArrayTranslator;
32+
import org.neo4j.graphalgo.core.write.Translators;
3333
import org.neo4j.graphalgo.impl.LabelPropagation;
3434
import org.neo4j.graphalgo.results.LabelPropagationStats;
3535
import org.neo4j.graphdb.Direction;
@@ -180,7 +180,7 @@ private void write(
180180
.write(
181181
partitionKey,
182182
labels,
183-
IntArrayTranslator.INSTANCE
183+
Translators.INT_ARRAY_TRANSLATOR
184184
);
185185
}
186186
}

algo/src/main/java/org/neo4j/graphalgo/LouvainProc.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
import org.neo4j.graphalgo.core.utils.TerminationFlag;
3030
import org.neo4j.graphalgo.core.utils.paged.LongArray;
3131
import org.neo4j.graphalgo.core.write.Exporter;
32-
import org.neo4j.graphalgo.core.write.IntArrayTranslator;
32+
import org.neo4j.graphalgo.core.write.Translators;
3333
import org.neo4j.graphalgo.impl.louvain.*;
3434
import org.neo4j.graphalgo.results.LouvainResult;
3535
import org.neo4j.kernel.api.KernelTransaction;
@@ -159,7 +159,7 @@ private void write(Graph graph, Object communities, ProcedureConfiguration confi
159159
exporter.write(
160160
configuration.get(CONFIG_CLUSTER_PROPERTY, DEFAULT_CLUSTER_PROPERTY),
161161
(int[]) communities,
162-
IntArrayTranslator.INSTANCE);
162+
Translators.INT_ARRAY_TRANSLATOR);
163163
} else if (communities instanceof LongArray) {
164164
exporter.write(
165165
configuration.get(CONFIG_CLUSTER_PROPERTY, DEFAULT_CLUSTER_PROPERTY),

algo/src/main/java/org/neo4j/graphalgo/MSColoringProc.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@
2323
import org.neo4j.graphalgo.core.ProcedureConfiguration;
2424
import org.neo4j.graphalgo.core.utils.Pools;
2525
import org.neo4j.graphalgo.core.utils.ProgressTimer;
26-
import org.neo4j.graphalgo.core.write.AtomicIntArrayTranslator;
2726
import org.neo4j.graphalgo.core.write.Exporter;
27+
import org.neo4j.graphalgo.core.write.Translators;
2828
import org.neo4j.graphalgo.impl.MSColoring;
2929
import org.neo4j.graphalgo.results.UnionFindResult;
3030
import org.neo4j.graphdb.Direction;
@@ -133,7 +133,7 @@ private void write(Graph graph, AtomicIntegerArray struct, ProcedureConfiguratio
133133
.write(
134134
configuration.get(CONFIG_CLUSTER_PROPERTY, DEFAULT_CLUSTER_PROPERTY),
135135
struct,
136-
AtomicIntArrayTranslator.INSTANCE
136+
Translators.ATOMIC_INTEGER_ARRAY_TRANSLATOR
137137
);
138138
}
139139
}

algo/src/main/java/org/neo4j/graphalgo/ShortestPathDeltaSteppingProc.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@
2525
import org.neo4j.graphalgo.core.utils.ProgressLogger;
2626
import org.neo4j.graphalgo.core.utils.ProgressTimer;
2727
import org.neo4j.graphalgo.core.utils.TerminationFlag;
28-
import org.neo4j.graphalgo.core.write.DoubleArrayTranslator;
2928
import org.neo4j.graphalgo.core.write.Exporter;
29+
import org.neo4j.graphalgo.core.write.Translators;
3030
import org.neo4j.graphalgo.impl.ShortestPathDeltaStepping;
3131
import org.neo4j.graphalgo.results.DeltaSteppingProcResult;
3232
import org.neo4j.graphdb.Direction;
@@ -146,7 +146,7 @@ public Stream<DeltaSteppingProcResult> deltaStepping(
146146
.write(
147147
configuration.get(WRITE_PROPERTY, DEFAULT_TARGET_PROPERTY),
148148
shortestPaths,
149-
DoubleArrayTranslator.INSTANCE
149+
Translators.DOUBLE_ARRAY_TRANSLATOR
150150
));
151151
}
152152

algo/src/main/java/org/neo4j/graphalgo/ShortestPathsProc.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
import org.neo4j.graphalgo.core.utils.ProgressTimer;
2828
import org.neo4j.graphalgo.core.utils.TerminationFlag;
2929
import org.neo4j.graphalgo.core.write.Exporter;
30-
import org.neo4j.graphalgo.core.write.IntDoubleMapTranslator;
30+
import org.neo4j.graphalgo.core.write.Translators;
3131
import org.neo4j.graphalgo.impl.ShortestPaths;
3232
import org.neo4j.graphalgo.results.ShortestPathResult;
3333
import org.neo4j.graphdb.Direction;
@@ -128,7 +128,7 @@ public Stream<ShortestPathResult> dijkstra(
128128
.write(
129129
configuration.getWriteProperty(DEFAULT_TARGET_PROPERTY),
130130
shortestPaths,
131-
IntDoubleMapTranslator.INSTANCE
131+
Translators.INT_DOUBLE_MAP_TRANSLATOR
132132
);
133133
});
134134
}

algo/src/main/java/org/neo4j/graphalgo/StronglyConnectedComponentsProc.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
import org.neo4j.graphalgo.core.utils.paged.AllocationTracker;
3434
import org.neo4j.graphalgo.core.utils.paged.LongArray;
3535
import org.neo4j.graphalgo.core.write.Exporter;
36-
import org.neo4j.graphalgo.core.write.OptionalIntArrayTranslator;
36+
import org.neo4j.graphalgo.core.write.Translators;
3737
import org.neo4j.graphalgo.impl.*;
3838
import org.neo4j.graphalgo.impl.multistepscc.MultistepSCC;
3939
import org.neo4j.graphalgo.impl.scc.SCCAlgorithm;
@@ -197,7 +197,7 @@ public Stream<SCCResult> sccTunedTarjan(
197197
.write(
198198
configuration.get(CONFIG_WRITE_PROPERTY, CONFIG_CLUSTER),
199199
tarjan.getConnectedComponents(),
200-
OptionalIntArrayTranslator.INSTANCE
200+
Translators.OPTIONAL_INT_ARRAY_TRANSLATOR
201201
));
202202
}
203203

@@ -296,7 +296,7 @@ private void write(ProcedureConfiguration configuration, Graph graph, Terminatio
296296
.write(
297297
configuration.get(CONFIG_WRITE_PROPERTY, CONFIG_CLUSTER),
298298
connectedComponents,
299-
OptionalIntArrayTranslator.INSTANCE
299+
Translators.OPTIONAL_INT_ARRAY_TRANSLATOR
300300
);
301301

302302
}
@@ -375,7 +375,7 @@ public Stream<SCCResult> multistep(
375375
.write(
376376
configuration.get(CONFIG_WRITE_PROPERTY, CONFIG_CLUSTER),
377377
connectedComponents,
378-
OptionalIntArrayTranslator.INSTANCE
378+
Translators.OPTIONAL_INT_ARRAY_TRANSLATOR
379379
));
380380
}
381381

algo/src/main/java/org/neo4j/graphalgo/TriangleProc.java

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,8 @@
2424
import org.neo4j.graphalgo.core.utils.*;
2525
import org.neo4j.graphalgo.core.utils.paged.DoubleArray;
2626
import org.neo4j.graphalgo.core.utils.paged.PagedAtomicIntegerArray;
27-
import org.neo4j.graphalgo.core.write.AtomicDoubleArrayTranslator;
28-
import org.neo4j.graphalgo.core.write.AtomicIntArrayTranslator;
29-
import org.neo4j.graphalgo.core.write.DoubleArrayTranslator;
3027
import org.neo4j.graphalgo.core.write.Exporter;
28+
import org.neo4j.graphalgo.core.write.Translators;
3129
import org.neo4j.graphalgo.impl.triangle.*;
3230
import org.neo4j.graphalgo.results.AbstractResultBuilder;
3331
import org.neo4j.kernel.api.KernelTransaction;
@@ -251,18 +249,18 @@ private void write(Graph graph, TriangleCountAlgorithm algorithm, ProcedureConfi
251249
exporter.write(
252250
configuration.getWriteProperty(DEFAULT_WRITE_PROPERTY_VALUE),
253251
triangles,
254-
AtomicIntArrayTranslator.INSTANCE,
252+
Translators.ATOMIC_INTEGER_ARRAY_TRANSLATOR,
255253
coefficientProperty.get(),
256254
coefficients,
257-
DoubleArrayTranslator.INSTANCE
255+
Translators.DOUBLE_ARRAY_TRANSLATOR
258256
);
259257
} else {
260258
// nonhuge without coefficients
261259
final AtomicIntegerArray triangles = ((TriangleCountQueue) algorithm).getTriangles();
262260
exporter.write(
263261
configuration.getWriteProperty(DEFAULT_WRITE_PROPERTY_VALUE),
264262
triangles,
265-
AtomicIntArrayTranslator.INSTANCE
263+
Translators.ATOMIC_INTEGER_ARRAY_TRANSLATOR
266264
);
267265
}
268266
}
@@ -322,16 +320,16 @@ public Stream<Result> triangleCountExp3(
322320
exporter.write(
323321
configuration.getWriteProperty(DEFAULT_WRITE_PROPERTY_VALUE),
324322
triangleCount.getTriangles(),
325-
AtomicIntArrayTranslator.INSTANCE,
323+
Translators.ATOMIC_INTEGER_ARRAY_TRANSLATOR,
326324
coefficientProperty.get(),
327325
clusteringCoefficients,
328-
AtomicDoubleArrayTranslator.INSTANCE
326+
Translators.ATOMIC_DOUBLE_ARRAY_TRANSLATOR
329327
);
330328
} else {
331329
exporter.write(
332330
configuration.getWriteProperty(DEFAULT_WRITE_PROPERTY_VALUE),
333331
triangleCount.getTriangles(),
334-
AtomicIntArrayTranslator.INSTANCE
332+
Translators.ATOMIC_INTEGER_ARRAY_TRANSLATOR
335333
);
336334
}
337335
}

algo/src/main/java/org/neo4j/graphalgo/impl/HugePageRank.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@
2828
import org.neo4j.graphalgo.api.HugeRelationshipIterator;
2929
import org.neo4j.graphalgo.core.utils.ParallelUtil;
3030
import org.neo4j.graphalgo.core.utils.paged.AllocationTracker;
31-
import org.neo4j.graphalgo.core.write.DoubleArrayTranslator;
3231
import org.neo4j.graphalgo.core.write.Exporter;
3332
import org.neo4j.graphalgo.core.write.PropertyTranslator;
33+
import org.neo4j.graphalgo.core.write.Translators;
3434
import org.neo4j.graphdb.Direction;
3535
import org.neo4j.logging.Log;
3636

@@ -713,7 +713,7 @@ public void export(
713713
exporter.write(
714714
propertyName,
715715
result,
716-
DoubleArrayTranslator.INSTANCE);
716+
Translators.DOUBLE_ARRAY_TRANSLATOR);
717717
}
718718

719719
@Override

algo/src/main/java/org/neo4j/graphalgo/impl/PageRank.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@
2727
import org.neo4j.graphalgo.api.RelationshipIterator;
2828
import org.neo4j.graphalgo.core.utils.ParallelUtil;
2929
import org.neo4j.graphalgo.core.utils.Pools;
30-
import org.neo4j.graphalgo.core.write.DoubleArrayTranslator;
3130
import org.neo4j.graphalgo.core.write.Exporter;
3231
import org.neo4j.graphalgo.core.write.PropertyTranslator;
32+
import org.neo4j.graphalgo.core.write.Translators;
3333
import org.neo4j.graphdb.Direction;
3434

3535
import java.util.ArrayList;
@@ -580,7 +580,7 @@ public double score(final long nodeId) {
580580
public void export(
581581
final String propertyName,
582582
final Exporter exporter) {
583-
exporter.write(propertyName, result, DoubleArrayTranslator.INSTANCE);
583+
exporter.write(propertyName, result, Translators.DOUBLE_ARRAY_TRANSLATOR);
584584
}
585585
}
586586
}

0 commit comments

Comments
 (0)