use of org.deeplearning4j.ui.storage.sqlite.J7FileStatsStorage in project deeplearning4j by deeplearning4j.
the class TestStatsStorage method testFileStatsStore.
@Test
public void testFileStatsStore() throws IOException {
for (boolean useJ7Storage : new boolean[] { false, true }) {
for (int i = 0; i < 2; i++) {
File f;
if (i == 0) {
f = Files.createTempFile("TestMapDbStatsStore", ".db").toFile();
} else {
f = Files.createTempFile("TestSqliteStatsStore", ".db").toFile();
}
//Don't want file to exist...
f.delete();
StatsStorage ss;
if (i == 0) {
ss = new MapDBStatsStorage.Builder().file(f).build();
} else {
ss = new J7FileStatsStorage(f);
}
CountingListener l = new CountingListener();
ss.registerStatsStorageListener(l);
assertEquals(1, ss.getListeners().size());
assertEquals(0, ss.listSessionIDs().size());
assertNull(ss.getLatestUpdate("sessionID", "typeID", "workerID"));
assertEquals(0, ss.listSessionIDs().size());
ss.putStaticInfo(getInitReport(0, 0, 0, useJ7Storage));
assertEquals(1, l.countNewSession);
assertEquals(1, l.countNewWorkerId);
assertEquals(1, l.countStaticInfo);
assertEquals(0, l.countUpdate);
assertEquals(Collections.singletonList("sid0"), ss.listSessionIDs());
assertTrue(ss.sessionExists("sid0"));
assertFalse(ss.sessionExists("sid1"));
Persistable expected = getInitReport(0, 0, 0, useJ7Storage);
Persistable p = ss.getStaticInfo("sid0", "tid0", "wid0");
assertEquals(expected, p);
List<Persistable> allStatic = ss.getAllStaticInfos("sid0", "tid0");
assertEquals(Collections.singletonList(expected), allStatic);
assertNull(ss.getLatestUpdate("sid0", "tid0", "wid0"));
assertEquals(Collections.singletonList("tid0"), ss.listTypeIDsForSession("sid0"));
assertEquals(Collections.singletonList("wid0"), ss.listWorkerIDsForSession("sid0"));
assertEquals(Collections.singletonList("wid0"), ss.listWorkerIDsForSessionAndType("sid0", "tid0"));
assertEquals(0, ss.getAllUpdatesAfter("sid0", "tid0", "wid0", 0).size());
assertEquals(0, ss.getNumUpdateRecordsFor("sid0"));
assertEquals(0, ss.getNumUpdateRecordsFor("sid0", "tid0", "wid0"));
//Put first update
ss.putUpdate(getReport(0, 0, 0, 12345, useJ7Storage));
assertEquals(1, ss.getNumUpdateRecordsFor("sid0"));
assertEquals(getReport(0, 0, 0, 12345, useJ7Storage), ss.getLatestUpdate("sid0", "tid0", "wid0"));
assertEquals(Collections.singletonList("tid0"), ss.listTypeIDsForSession("sid0"));
assertEquals(Collections.singletonList("wid0"), ss.listWorkerIDsForSession("sid0"));
assertEquals(Collections.singletonList("wid0"), ss.listWorkerIDsForSessionAndType("sid0", "tid0"));
assertEquals(Collections.singletonList(getReport(0, 0, 0, 12345, useJ7Storage)), ss.getAllUpdatesAfter("sid0", "tid0", "wid0", 0));
assertEquals(1, ss.getNumUpdateRecordsFor("sid0"));
assertEquals(1, ss.getNumUpdateRecordsFor("sid0", "tid0", "wid0"));
List<Persistable> list = ss.getLatestUpdateAllWorkers("sid0", "tid0");
assertEquals(1, list.size());
assertEquals(getReport(0, 0, 0, 12345, useJ7Storage), ss.getUpdate("sid0", "tid0", "wid0", 12345));
assertEquals(1, l.countNewSession);
assertEquals(1, l.countNewWorkerId);
assertEquals(1, l.countStaticInfo);
assertEquals(1, l.countUpdate);
//Put second update
ss.putUpdate(getReport(0, 0, 0, 12346, useJ7Storage));
assertEquals(1, ss.getLatestUpdateAllWorkers("sid0", "tid0").size());
assertEquals(Collections.singletonList("tid0"), ss.listTypeIDsForSession("sid0"));
assertEquals(Collections.singletonList("wid0"), ss.listWorkerIDsForSession("sid0"));
assertEquals(Collections.singletonList("wid0"), ss.listWorkerIDsForSessionAndType("sid0", "tid0"));
assertEquals(getReport(0, 0, 0, 12346, useJ7Storage), ss.getLatestUpdate("sid0", "tid0", "wid0"));
assertEquals(getReport(0, 0, 0, 12346, useJ7Storage), ss.getUpdate("sid0", "tid0", "wid0", 12346));
ss.putUpdate(getReport(0, 0, 1, 12345, useJ7Storage));
assertEquals(2, ss.getLatestUpdateAllWorkers("sid0", "tid0").size());
assertEquals(getReport(0, 0, 1, 12345, useJ7Storage), ss.getLatestUpdate("sid0", "tid0", "wid1"));
assertEquals(getReport(0, 0, 1, 12345, useJ7Storage), ss.getUpdate("sid0", "tid0", "wid1", 12345));
assertEquals(1, l.countNewSession);
assertEquals(2, l.countNewWorkerId);
assertEquals(1, l.countStaticInfo);
assertEquals(3, l.countUpdate);
//Put static info and update with different session, type and worker IDs
ss.putStaticInfo(getInitReport(100, 200, 300, useJ7Storage));
assertEquals(2, ss.getLatestUpdateAllWorkers("sid0", "tid0").size());
ss.putUpdate(getReport(100, 200, 300, 12346, useJ7Storage));
assertEquals(Collections.singletonList(getReport(100, 200, 300, 12346, useJ7Storage)), ss.getLatestUpdateAllWorkers("sid100", "tid200"));
assertEquals(Collections.singletonList("tid200"), ss.listTypeIDsForSession("sid100"));
List<String> temp = ss.listWorkerIDsForSession("sid100");
System.out.println("temp: " + temp);
assertEquals(Collections.singletonList("wid300"), ss.listWorkerIDsForSession("sid100"));
assertEquals(Collections.singletonList("wid300"), ss.listWorkerIDsForSessionAndType("sid100", "tid200"));
assertEquals(getReport(100, 200, 300, 12346, useJ7Storage), ss.getLatestUpdate("sid100", "tid200", "wid300"));
assertEquals(getReport(100, 200, 300, 12346, useJ7Storage), ss.getUpdate("sid100", "tid200", "wid300", 12346));
assertEquals(2, l.countNewSession);
assertEquals(3, l.countNewWorkerId);
assertEquals(2, l.countStaticInfo);
assertEquals(4, l.countUpdate);
//Close and re-open
ss.close();
assertTrue(ss.isClosed());
if (i == 0) {
ss = new MapDBStatsStorage.Builder().file(f).build();
} else {
ss = new J7FileStatsStorage(f);
}
assertEquals(getReport(0, 0, 0, 12345, useJ7Storage), ss.getUpdate("sid0", "tid0", "wid0", 12345));
assertEquals(getReport(0, 0, 0, 12346, useJ7Storage), ss.getLatestUpdate("sid0", "tid0", "wid0"));
assertEquals(getReport(0, 0, 0, 12346, useJ7Storage), ss.getUpdate("sid0", "tid0", "wid0", 12346));
assertEquals(getReport(0, 0, 1, 12345, useJ7Storage), ss.getLatestUpdate("sid0", "tid0", "wid1"));
assertEquals(getReport(0, 0, 1, 12345, useJ7Storage), ss.getUpdate("sid0", "tid0", "wid1", 12345));
assertEquals(2, ss.getLatestUpdateAllWorkers("sid0", "tid0").size());
assertEquals(1, ss.getLatestUpdateAllWorkers("sid100", "tid200").size());
assertEquals(Collections.singletonList("tid200"), ss.listTypeIDsForSession("sid100"));
assertEquals(Collections.singletonList("wid300"), ss.listWorkerIDsForSession("sid100"));
assertEquals(Collections.singletonList("wid300"), ss.listWorkerIDsForSessionAndType("sid100", "tid200"));
assertEquals(getReport(100, 200, 300, 12346, useJ7Storage), ss.getLatestUpdate("sid100", "tid200", "wid300"));
assertEquals(getReport(100, 200, 300, 12346, useJ7Storage), ss.getUpdate("sid100", "tid200", "wid300", 12346));
}
}
}
use of org.deeplearning4j.ui.storage.sqlite.J7FileStatsStorage in project deeplearning4j by deeplearning4j.
the class TestStatsStorage method testStatsStorage.
@Test
public void testStatsStorage() throws IOException {
for (boolean useJ7Storage : new boolean[] { false, true }) {
for (int i = 0; i < 3; i++) {
StatsStorage ss;
switch(i) {
case 0:
File f = Files.createTempFile("TestMapDbStatsStore", ".db").toFile();
//Don't want file to exist...
f.delete();
ss = new MapDBStatsStorage.Builder().file(f).build();
break;
case 1:
File f2 = Files.createTempFile("TestJ7FileStatsStore", ".db").toFile();
//Don't want file to exist...
f2.delete();
ss = new J7FileStatsStorage(f2);
break;
case 2:
ss = new InMemoryStatsStorage();
break;
default:
throw new RuntimeException();
}
CountingListener l = new CountingListener();
ss.registerStatsStorageListener(l);
assertEquals(1, ss.getListeners().size());
assertEquals(0, ss.listSessionIDs().size());
assertNull(ss.getLatestUpdate("sessionID", "typeID", "workerID"));
assertEquals(0, ss.listSessionIDs().size());
ss.putStaticInfo(getInitReport(0, 0, 0, useJ7Storage));
assertEquals(1, l.countNewSession);
assertEquals(1, l.countNewWorkerId);
assertEquals(1, l.countStaticInfo);
assertEquals(0, l.countUpdate);
assertEquals(Collections.singletonList("sid0"), ss.listSessionIDs());
assertTrue(ss.sessionExists("sid0"));
assertFalse(ss.sessionExists("sid1"));
Persistable expected = getInitReport(0, 0, 0, useJ7Storage);
Persistable p = ss.getStaticInfo("sid0", "tid0", "wid0");
assertEquals(expected, p);
List<Persistable> allStatic = ss.getAllStaticInfos("sid0", "tid0");
assertEquals(Collections.singletonList(expected), allStatic);
assertNull(ss.getLatestUpdate("sid0", "tid0", "wid0"));
assertEquals(Collections.singletonList("tid0"), ss.listTypeIDsForSession("sid0"));
assertEquals(Collections.singletonList("wid0"), ss.listWorkerIDsForSession("sid0"));
assertEquals(Collections.singletonList("wid0"), ss.listWorkerIDsForSessionAndType("sid0", "tid0"));
assertEquals(0, ss.getAllUpdatesAfter("sid0", "tid0", "wid0", 0).size());
assertEquals(0, ss.getNumUpdateRecordsFor("sid0"));
assertEquals(0, ss.getNumUpdateRecordsFor("sid0", "tid0", "wid0"));
//Put first update
ss.putUpdate(getReport(0, 0, 0, 12345, useJ7Storage));
assertEquals(1, ss.getNumUpdateRecordsFor("sid0"));
assertEquals(getReport(0, 0, 0, 12345, useJ7Storage), ss.getLatestUpdate("sid0", "tid0", "wid0"));
assertEquals(Collections.singletonList("tid0"), ss.listTypeIDsForSession("sid0"));
assertEquals(Collections.singletonList("wid0"), ss.listWorkerIDsForSession("sid0"));
assertEquals(Collections.singletonList("wid0"), ss.listWorkerIDsForSessionAndType("sid0", "tid0"));
assertEquals(Collections.singletonList(getReport(0, 0, 0, 12345, useJ7Storage)), ss.getAllUpdatesAfter("sid0", "tid0", "wid0", 0));
assertEquals(1, ss.getNumUpdateRecordsFor("sid0"));
assertEquals(1, ss.getNumUpdateRecordsFor("sid0", "tid0", "wid0"));
List<Persistable> list = ss.getLatestUpdateAllWorkers("sid0", "tid0");
assertEquals(1, list.size());
assertEquals(getReport(0, 0, 0, 12345, useJ7Storage), ss.getUpdate("sid0", "tid0", "wid0", 12345));
assertEquals(1, l.countNewSession);
assertEquals(1, l.countNewWorkerId);
assertEquals(1, l.countStaticInfo);
assertEquals(1, l.countUpdate);
//Put second update
ss.putUpdate(getReport(0, 0, 0, 12346, useJ7Storage));
assertEquals(1, ss.getLatestUpdateAllWorkers("sid0", "tid0").size());
assertEquals(Collections.singletonList("tid0"), ss.listTypeIDsForSession("sid0"));
assertEquals(Collections.singletonList("wid0"), ss.listWorkerIDsForSession("sid0"));
assertEquals(Collections.singletonList("wid0"), ss.listWorkerIDsForSessionAndType("sid0", "tid0"));
assertEquals(getReport(0, 0, 0, 12346, useJ7Storage), ss.getLatestUpdate("sid0", "tid0", "wid0"));
assertEquals(getReport(0, 0, 0, 12346, useJ7Storage), ss.getUpdate("sid0", "tid0", "wid0", 12346));
ss.putUpdate(getReport(0, 0, 1, 12345, useJ7Storage));
assertEquals(2, ss.getLatestUpdateAllWorkers("sid0", "tid0").size());
assertEquals(getReport(0, 0, 1, 12345, useJ7Storage), ss.getLatestUpdate("sid0", "tid0", "wid1"));
assertEquals(getReport(0, 0, 1, 12345, useJ7Storage), ss.getUpdate("sid0", "tid0", "wid1", 12345));
assertEquals(1, l.countNewSession);
assertEquals(2, l.countNewWorkerId);
assertEquals(1, l.countStaticInfo);
assertEquals(3, l.countUpdate);
//Put static info and update with different session, type and worker IDs
ss.putStaticInfo(getInitReport(100, 200, 300, useJ7Storage));
assertEquals(2, ss.getLatestUpdateAllWorkers("sid0", "tid0").size());
ss.putUpdate(getReport(100, 200, 300, 12346, useJ7Storage));
assertEquals(Collections.singletonList(getReport(100, 200, 300, 12346, useJ7Storage)), ss.getLatestUpdateAllWorkers("sid100", "tid200"));
assertEquals(Collections.singletonList("tid200"), ss.listTypeIDsForSession("sid100"));
List<String> temp = ss.listWorkerIDsForSession("sid100");
System.out.println("temp: " + temp);
assertEquals(Collections.singletonList("wid300"), ss.listWorkerIDsForSession("sid100"));
assertEquals(Collections.singletonList("wid300"), ss.listWorkerIDsForSessionAndType("sid100", "tid200"));
assertEquals(getReport(100, 200, 300, 12346, useJ7Storage), ss.getLatestUpdate("sid100", "tid200", "wid300"));
assertEquals(getReport(100, 200, 300, 12346, useJ7Storage), ss.getUpdate("sid100", "tid200", "wid300", 12346));
assertEquals(2, l.countNewSession);
assertEquals(3, l.countNewWorkerId);
assertEquals(2, l.countStaticInfo);
assertEquals(4, l.countUpdate);
}
}
}
Aggregations