Coverage Summary for Class: TestFriendsterLike (org.umlg.sqlg.test.batch)
Class |
Class, %
|
Method, %
|
Branch, %
|
Line, %
|
TestFriendsterLike |
0%
(0/1)
|
0%
(0/5)
|
0%
(0/34)
|
0%
(0/79)
|
package org.umlg.sqlg.test.batch;
import org.apache.commons.lang3.time.StopWatch;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.tinkerpop.gremlin.structure.T;
import org.umlg.sqlg.structure.RecordId;
import org.umlg.sqlg.structure.SchemaTable;
import org.umlg.sqlg.test.BaseTest;
import java.io.BufferedReader;
import java.io.IOException;
import java.nio.file.DirectoryStream;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
import static org.junit.Assert.assertEquals;
/**
* Date: 2016/05/15
* Time: 3:50 PM
*/
class TestFriendsterLike extends BaseTest {
// @Test
public void testSeparateThread() {
List<String> lines = new ArrayList<>();
lines.add("1|2,3,4,5,6,7,8,9,10");
lines.add("2|1,3,4,5,6,7,8,9,10");
lines.add("3|1,2,4,5,6,7,8,9,10");
lines.add("4|1,2,3,5,6,7,8,9,10");
lines.add("5|1,2,3,4,6,7,8,9,10");
lines.add("6|1,2,3,4,5,7,8,9,10");
lines.add("7|1,2,3,4,5,6,8,9,10");
lines.add("8|1,2,3,4,5,6,7,9,10");
lines.add("9|1,2,3,4,5,6,7,8,10");
lines.add("10|1,2,3,4,5,6,7,8,9");
this.sqlgGraph.tx().streamingBatchModeOn();
for (String line : lines) {
String[] parts = line.split("\\|");
String id = parts[0];
this.sqlgGraph.streamVertex(T.label, "Person", "index", id);
}
this.sqlgGraph.tx().commit();
this.sqlgGraph.tx().streamingBatchModeOn();
List<Pair<String, String>> uids = new ArrayList<>();
for (String line : lines) {
String[] parts = line.split("\\|");
String id = parts[0];
String friends = parts[1];
String[] friendIds = friends.split(",");
for (String friendId : friendIds) {
uids.add(Pair.of(id, friendId));
}
}
this.sqlgGraph.bulkAddEdges("Person", "Person", "friend", Pair.of("index", "index"), uids);
this.sqlgGraph.tx().commit();
assertEquals(10, this.sqlgGraph.traversal().V().count().next(), 0);
for (int i = 1; i < 11; i++) {
assertEquals(9, this.sqlgGraph.traversal().V(RecordId.from(SchemaTable.of("public", "Person"), Long.valueOf(i))).out().count().next(), 0);
}
System.out.println(this.sqlgGraph.traversal().V().both().both().count().next());
}
// @Test
public void testFriendsterLoad() throws IOException {
// String dir = "/home/pieter/Downloads/friendster/friendster-dataset-201107/";
StopWatch stopWatch = new StopWatch();
stopWatch.start();
String dir = "/home/pieter/Downloads/friendster/friendsterSmall/";
String NOT_FOUND = "notfound";
String PRIVATE = "private";
int count = 1;
this.sqlgGraph.tx().streamingBatchModeOn();
try (DirectoryStream<java.nio.file.Path> directoryStream = Files.newDirectoryStream(Paths.get(dir))) {
for (java.nio.file.Path path : directoryStream) {
BufferedReader bufferedReader = Files.newBufferedReader(path);
bufferedReader.lines().forEach(line -> {
String[] parts = line.split(":");
String id = parts[0];
String last;
if (parts.length > 1) {
last = parts[1];
} else {
last = "-";
}
if (last.equals(NOT_FOUND) || last.equals(PRIVATE)) {
this.sqlgGraph.streamVertex(T.label, "Person", "index", id, "friend", last);
} else {
this.sqlgGraph.streamVertex(T.label, "Person", "index", id, "friend", "_");
}
});
this.sqlgGraph.tx().commit();
this.sqlgGraph.tx().streamingBatchModeOn();
System.out.println("Vertex Load " + count++);
}
}
System.out.println("Done Vertex Loading");
count = 1;
try (DirectoryStream<java.nio.file.Path> directoryStream = Files.newDirectoryStream(Paths.get(dir))) {
for (java.nio.file.Path path : directoryStream) {
List<Pair<String, String>> uids = new ArrayList<>();
BufferedReader bufferedReader = Files.newBufferedReader(path);
bufferedReader.lines().forEach(line -> {
String[] parts = line.split(":");
String id = parts[0];
if (parts.length > 1) {
String friends = parts[1];
if (!friends.equals(NOT_FOUND) && !friends.equals(PRIVATE)) {
String[] friendIds = friends.split(",");
for (String friendId : friendIds) {
uids.add(Pair.of(id, friendId));
}
}
}
});
this.sqlgGraph.bulkAddEdges("Person", "Person", "friend", Pair.of("index", "index"), uids);
this.sqlgGraph.tx().commit();
this.sqlgGraph.tx().streamingBatchModeOn();
System.out.println("Edge Load " + count++);
}
}
System.out.println("Done Edge Loading");
stopWatch.stop();
System.out.println("Time taken = " + stopWatch.toString());
}
}