Permalink
Browse files

warmup for dex, some cleanup, some docu structure

  • Loading branch information...
1 parent 2c2ac79 commit 4a8777d6119ab8269854738db872ef6834e84026 @s1ck committed Jan 11, 2012
@@ -22,9 +22,18 @@
\@writefile{toc}{\contentsline {section}{\numberline {1}Neo4j}{1}{section.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.1}Anbindung}{1}{subsection.1.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.2}Anfragem\IeC {\"o}glichkeiten}{2}{subsection.1.2}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.2.1}Native API}{2}{subsubsection.1.2.1}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.2.2}Traversal API}{2}{subsubsection.1.2.2}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.2.3}Cypher}{2}{subsubsection.1.2.3}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {1.3}Einschr\IeC {\"a}nkungen}{2}{subsection.1.3}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {1.4}Dokumentation}{2}{subsection.1.4}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {1.5}Aussicht}{2}{subsection.1.5}}
\@writefile{toc}{\contentsline {section}{\numberline {2}OrientDB}{2}{section.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}Anfragem\IeC {\"o}glichkeiten}{2}{subsection.2.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}Einschr\IeC {\"a}nkungen}{2}{subsection.2.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.3}Dokumentation}{2}{subsection.2.3}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {2.4}Aussicht}{2}{subsection.2.4}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {2.4}Aussicht}{3}{subsection.2.4}}
\@writefile{toc}{\contentsline {section}{\numberline {3}DEX}{3}{section.3}}
+\@writefile{toc}{\contentsline {section}{\numberline {4}Evaluation}{3}{section.4}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Testbed}{3}{subsection.4.1}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {4.2}Ergebnisse}{3}{subsection.4.2}}
@@ -1,4 +1,4 @@
-This is pdfTeX, Version 3.1415926-2.3-1.40.12 (MiKTeX 2.9) (preloaded format=pdflatex 2011.10.27) 11 JAN 2012 00:00
+This is pdfTeX, Version 3.1415926-2.3-1.40.12 (MiKTeX 2.9) (preloaded format=pdflatex 2011.10.27) 11 JAN 2012 00:07
entering extended mode
**ir15_report.tex
(C:\Install\Devel\Java\Projects\IR_15\docs\report\ir15_report.tex
@@ -427,51 +427,51 @@ Underfull \hbox (badness 1297) in paragraph at lines 49--50
[]
-Underfull \hbox (badness 1430) in paragraph at lines 61--62
+Underfull \hbox (badness 1430) in paragraph at lines 75--76
\OT1/cmr/m/n/10.95 tiert. Es liegt so-wohl ei-ne kom-plet-te und
[]
-Underfull \hbox (badness 1005) in paragraph at lines 61--62
+Underfull \hbox (badness 1005) in paragraph at lines 75--76
\OT1/cmr/m/n/10.95 wei-se schwie-rig. Dies ist un-ter Umst[]anden
[]
-
-Underfull \hbox (badness 2293) in paragraph at lines 64--65
+[2]
+Underfull \hbox (badness 2293) in paragraph at lines 78--79
\OT1/cmr/m/n/10.95 die ein-fa-che und leicht les-ba-re Highlevel-
[]
-[2]
-Package atveryend Info: Empty hook `BeforeClearDocument' on input line 70.
- [3
+Package atveryend Info: Empty hook `BeforeClearDocument' on input line 95.
+[3
]
-Package atveryend Info: Empty hook `AfterLastShipout' on input line 70.
+Package atveryend Info: Empty hook `AfterLastShipout' on input line 95.
(C:\Install\Devel\Java\Projects\IR_15\docs\report\ir15_report.aux)
-Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 70.
-Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 70.
+Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 95.
+Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 95.
Package rerunfilecheck Info: File `ir15_report.out' has not changed.
-(rerunfilecheck) Checksum: 0C179ECA99BC9768534349509C8EF1AA;518.
+(rerunfilecheck) Checksum: FA5CD15691B8049C658E26E1FCA5A940;1088.
)
Here is how much of TeX's memory you used:
- 7050 strings out of 494045
- 99537 string characters out of 3147986
+ 7070 strings out of 494045
+ 99851 string characters out of 3147986
194291 words of memory out of 3000000
- 10230 multiletter control sequences out of 15000+200000
- 13570 words of font info for 53 fonts, out of 3000000 for 9000
+ 10240 multiletter control sequences out of 15000+200000
+ 13878 words of font info for 54 fonts, out of 3000000 for 9000
715 hyphenation exceptions out of 8191
29i,10n,43p,972b,517s stack positions out of 5000i,500n,10000p,200000b,50000s
-<C:/Install/System/MiKTeX 2.9/fonts/type1/public/amsfonts/cm/cmbx12.pfb><C:/I
-nstall/System/MiKTeX 2.9/fonts/type1/public/amsfonts/cm/cmr10.pfb><C:/Install/S
-ystem/MiKTeX 2.9/fonts/type1/public/amsfonts/cm/cmr12.pfb><C:/Install/System/Mi
-KTeX 2.9/fonts/type1/public/amsfonts/cm/cmr17.pfb><C:/Install/System/MiKTeX 2.9
-/fonts/type1/public/amsfonts/cm/cmr6.pfb><C:/Install/System/MiKTeX 2.9/fonts/ty
-pe1/public/amsfonts/cm/cmr8.pfb><C:/Install/System/MiKTeX 2.9/fonts/type1/publi
-c/amsfonts/cm/cmtt12.pfb><C:/Install/System/MiKTeX 2.9/fonts/type1/public/amsfo
-nts/cm/cmtt9.pfb>
-Output written on ir15_report.pdf (3 pages, 109565 bytes).
+<C:/Install/System/MiKTeX 2.9/fonts/type1/public/amsfonts/cm/cmbx10.pfb><C:/I
+nstall/System/MiKTeX 2.9/fonts/type1/public/amsfonts/cm/cmbx12.pfb><C:/Install/
+System/MiKTeX 2.9/fonts/type1/public/amsfonts/cm/cmr10.pfb><C:/Install/System/M
+iKTeX 2.9/fonts/type1/public/amsfonts/cm/cmr12.pfb><C:/Install/System/MiKTeX 2.
+9/fonts/type1/public/amsfonts/cm/cmr17.pfb><C:/Install/System/MiKTeX 2.9/fonts/
+type1/public/amsfonts/cm/cmr6.pfb><C:/Install/System/MiKTeX 2.9/fonts/type1/pub
+lic/amsfonts/cm/cmr8.pfb><C:/Install/System/MiKTeX 2.9/fonts/type1/public/amsfo
+nts/cm/cmtt12.pfb><C:/Install/System/MiKTeX 2.9/fonts/type1/public/amsfonts/cm/
+cmtt9.pfb>
+Output written on ir15_report.pdf (3 pages, 127051 bytes).
PDF statistics:
- 101 PDF objects out of 1000 (max. 8388607)
- 16 named destinations out of 1000 (max. 500000)
- 73 words of extra memory for PDF output out of 10000 (max. 10000000)
+ 143 PDF objects out of 1000 (max. 8388607)
+ 25 named destinations out of 1000 (max. 500000)
+ 145 words of extra memory for PDF output out of 10000 (max. 10000000)
@@ -1,9 +1,18 @@
\BOOKMARK [1][-]{section.1}{Neo4j}{}% 1
\BOOKMARK [2][-]{subsection.1.1}{Anbindung}{section.1}% 2
\BOOKMARK [2][-]{subsection.1.2}{Anfragem\366glichkeiten}{section.1}% 3
-\BOOKMARK [1][-]{section.2}{OrientDB}{}% 4
-\BOOKMARK [2][-]{subsection.2.1}{Anfragem\366glichkeiten}{section.2}% 5
-\BOOKMARK [2][-]{subsection.2.2}{Einschr\344nkungen}{section.2}% 6
-\BOOKMARK [2][-]{subsection.2.3}{Dokumentation}{section.2}% 7
-\BOOKMARK [2][-]{subsection.2.4}{Aussicht}{section.2}% 8
-\BOOKMARK [1][-]{section.3}{DEX}{}% 9
+\BOOKMARK [3][-]{subsubsection.1.2.1}{Native API}{subsection.1.2}% 4
+\BOOKMARK [3][-]{subsubsection.1.2.2}{Traversal API}{subsection.1.2}% 5
+\BOOKMARK [3][-]{subsubsection.1.2.3}{Cypher}{subsection.1.2}% 6
+\BOOKMARK [2][-]{subsection.1.3}{Einschr\344nkungen}{section.1}% 7
+\BOOKMARK [2][-]{subsection.1.4}{Dokumentation}{section.1}% 8
+\BOOKMARK [2][-]{subsection.1.5}{Aussicht}{section.1}% 9
+\BOOKMARK [1][-]{section.2}{OrientDB}{}% 10
+\BOOKMARK [2][-]{subsection.2.1}{Anfragem\366glichkeiten}{section.2}% 11
+\BOOKMARK [2][-]{subsection.2.2}{Einschr\344nkungen}{section.2}% 12
+\BOOKMARK [2][-]{subsection.2.3}{Dokumentation}{section.2}% 13
+\BOOKMARK [2][-]{subsection.2.4}{Aussicht}{section.2}% 14
+\BOOKMARK [1][-]{section.3}{DEX}{}% 15
+\BOOKMARK [1][-]{section.4}{Evaluation}{}% 16
+\BOOKMARK [2][-]{subsection.4.1}{Testbed}{section.4}% 17
+\BOOKMARK [2][-]{subsection.4.2}{Ergebnisse}{section.4}% 18
View
Binary file not shown.
Binary file not shown.
@@ -48,6 +48,20 @@ \subsection{Anfragemöglichkeiten}
Neo4j bietet verschiedene Möglichkeiten an, den gespeicherten Graphen zu traversieren bzw. abzufragen. Neben der nativen Java API und der ebenfalls in Java entwickelten Traversal API steht seit Version 1.5 mit Cypher eine deklarative Abfragesprache zur Verfügung. Die drei genannten Abfragemöglichkeiten werden im Folgenden kurz vorgestellt und die Formulierung der vorgegebenen SQL Queries aufgezeigt.
+\subsubsection{Native API}
+
+\subsubsection{Traversal API}
+
+\subsubsection{Cypher}
+
+\subsection{Einschränkungen}
+
+Cypher, Traverser Speicherprobs, keine Optimierung
+
+\subsection{Dokumentation}
+
+\subsection{Aussicht}
+
\section{OrientDB}
\subsection{Anfragemöglichkeiten}
@@ -66,5 +80,16 @@ \subsection{Aussicht}
\section{DEX}
+\section{Evaluation}
+
+\subsection{Testbed}
+
+Hardware Fakten
+Datensätze (Anzahl Knoten, Kanten, evtl. Gradverteilung)
+cold caches / warm caches
+JVM settings
+versionen
+
+\subsection{Ergebnisse}
\end{document}
@@ -41,7 +41,7 @@ public void setUp() {
session = dex.newSession();
graph = session.getGraph();
- session.begin();
+// session.begin();
wordNodeType = graph.findType("word");
wordIDAttribute = graph.findAttribute(wordNodeType, "w_id");
@@ -55,15 +55,14 @@ public void setUp() {
maxWordID = findMaxWordID();
- session.commit();
+// session.commit();
}
/**
* Get a new random node before each run.
*/
@Override
- public void beforeRun() {
- session.begin();
+ public void beforeRun() {
startNodeID = getRandomNode(20);
}
@@ -72,7 +71,7 @@ public void beforeRun() {
*/
@Override
public void afterRun() {
- session.commit();
+// session.commit();
}
/**
@@ -115,10 +114,22 @@ public long getRandomNode(int outDegree) {
*/
@Override
public void tearDown() {
+// session.commit();
+// session.close();
DEXConnector.destroyConnection();
}
@Override
+ @SuppressWarnings("unused")
public void warmup() {
+ for (Integer nType : graph.findNodeTypes()) {
+ for (long v : graph.select(nType)) {
+ }
+ }
+
+ for (Integer eType : graph.findEdgeTypes()) {
+ for (long e : graph.select(eType)) {
+ }
+ }
}
}
@@ -6,6 +6,8 @@
import org.apache.log4j.Logger;
import de.uni.leipzig.IR15.Benchmark.Benchmark;
+import de.uni.leipzig.IR15.Benchmark.ImportBenchmark;
+import de.uni.leipzig.IR15.Importer.DEXImporter;
/**
* DEX benchmark suite that runs all the configured benchmarks.
@@ -26,24 +28,23 @@ public static void main(String[] args) {
List<Benchmark> benchmarks = new ArrayList<Benchmark>();
boolean logToFile = true;
- boolean doWarmup = false;
+ boolean doWarmup = true;
- // Benchmark dexImportBench = new ImportBenchmark(new DEXImporter());
- // dexImportBench.setWarmups(0);
- // benchmarks.add(dexImportBench);
+ Benchmark dexImportBench = new ImportBenchmark(new DEXImporter());
+ dexImportBench.setRuns(1);
+ benchmarks.add(dexImportBench);
// Benchmark query_1 = new
// de.uni.leipzig.IR15.Benchmark.dex.Query1_Benchmark();
// query_1.setRuns(100);
// benchmarks.add(query_1);
//
- // Benchmark query_2 = new
- // de.uni.leipzig.IR15.Benchmark.dex.Query2_Benchmark();
- // query_2.setRuns(100);
- // benchmarks.add(query_2);
+ Benchmark query_2 = new de.uni.leipzig.IR15.Benchmark.dex.Query2_Benchmark();
+ query_2.setRuns(100);
+ benchmarks.add(query_2);
Benchmark query_3 = new de.uni.leipzig.IR15.Benchmark.dex.Query3_Benchmark();
- query_3.setRuns(100);
+ query_3.setRuns(100);
benchmarks.add(query_3);
runBenchmarks(benchmarks, logToFile, doWarmup);
@@ -13,9 +13,9 @@
/**
* Class to handle connection to the dex database.
- *
+ *
* @author IR-Team
- *
+ *
*/
public class DEXConnector {
private static Logger log = Logger.getLogger(Neo4JConnector.class);
@@ -24,23 +24,25 @@
/**
* Create and return a connection.
- *
+ *
* @return database connection
*/
public static Database getConnection() {
Configuration config = Configuration.getInstance("dex");
DexConfig dexConfig = new DexConfig();
dexConfig.setLicense(config.getPropertyAsString("license"));
- //dexConfig.setLogLevel(LogLevel.Debug);
+ // dexConfig.setLogLevel(LogLevel.Debug);
dexConnector = new Dex(dexConfig);
try {
File location = new File(config.getPropertyAsString("location"));
if (location.exists()) {
- dex = dexConnector.open(config.getPropertyAsString("location"), false);
+ dex = dexConnector.open(config.getPropertyAsString("location"),
+ false);
} else {
- dex = dexConnector.create(config.getPropertyAsString("location"), "dex");
+ dex = dexConnector.create(
+ config.getPropertyAsString("location"), "dex");
}
log.info("Create connection successful");
} catch (FileNotFoundException e) {
@@ -56,8 +58,8 @@ public static Database getConnection() {
*/
public static void destroyConnection() {
try {
-// dex.close();
- dexConnector.close();
+ // dex.close();
+ dexConnector.close();
log.info("Destroy connection successful");
} catch (Exception e) {
log.error("Destroy connection failed");
@@ -9,9 +9,9 @@
/**
* Class to handle connection to the neo4j database.
- *
+ *
* @author IR-Team
- *
+ *
*/
public class Neo4JConnector {
private static Logger log = Logger.getLogger(Neo4JConnector.class);
@@ -22,13 +22,13 @@ public static GraphDatabaseService getConnection() {
// connect to neo4j and create an index on the nodes
neo4j = new EmbeddedGraphDatabase(
- config.getPropertyAsString("location"), MapUtil.stringMap(
- "neostore.nodestore.db.mapped_memory", "10M",
- "neostore.relationshipstore.db.mapped_memory", "50M",
- "neostore.propertystore.db.mapped_memory", "100M",
- "neostore.propertystore.db.strings.mapped_memory", "10M",
- "neostore.propertystore.db.arrays.mapped_memory", "10M"
- ));
+ config.getPropertyAsString("location"),
+ MapUtil.stringMap("neostore.nodestore.db.mapped_memory", "10M",
+ "neostore.relationshipstore.db.mapped_memory", "50M",
+ "neostore.propertystore.db.mapped_memory", "100M",
+ "neostore.propertystore.db.strings.mapped_memory",
+ "10M",
+ "neostore.propertystore.db.arrays.mapped_memory", "10M"));
if (neo4j != null) {
log.info("Create connection successful");
Oops, something went wrong.

0 comments on commit 4a8777d

Please sign in to comment.