diff --git a/benchmarks/SOSP/generateScripts.pl b/benchmarks/SOSP/generateScripts.pl index 9eec3d7..629ec4f 100755 --- a/benchmarks/SOSP/generateScripts.pl +++ b/benchmarks/SOSP/generateScripts.pl @@ -59,6 +59,9 @@ open(BDB_HASH, ">BDB_HASH.script"); open(BDB_RAW, ">BDB_RAW.script"); open(BULK_LOAD, ">BULK_LOAD.script"); +print BDB_RAW "cp ../berkeleyDB/bdbHashThreaded ../berkeleyDB/bdbRawThreaded"; +print BULK_LOAD "cp ../berkeleyDB/bdbHashThreaded ../berkeleyDB/bdbRawThreaded"; + for(my $i = 1; $i <= 10; $i ++) { my $insert_count = $i * 100000; @@ -71,7 +74,7 @@ for(my $i = 1; $i <= 10; $i ++) { print LLADD_LINKED_LIST "../pageOrientedListNTA 1 $insert_count\n"; # could do ./linkedList instead... print LLADD_RECORDID "../rawSet 1 $insert_count\n"; print BDB_HASH "../berkeleyDB/bdbHashThreaded 1 $insert_count 0 1\n"; - print BDB_RAW "../berkeleyDB/bdbHashThreaded 1 $insert_count 0 0\n"; + print BDB_RAW "../berkeleyDB/bdbRawThreaded 1 $insert_count 0 0\n"; print BULK_LOAD "../linearHashNTAThreaded 1 $insert_count\n"; print BULK_LOAD "../logicalHash 1 $insert_count\n"; # could do ./naiveHash instead... diff --git a/benchmarks/berkeleyDB/bdbHashThreaded.c b/benchmarks/berkeleyDB/bdbHashThreaded.c index 3fec15f..f860a81 100644 --- a/benchmarks/berkeleyDB/bdbHashThreaded.c +++ b/benchmarks/berkeleyDB/bdbHashThreaded.c @@ -126,7 +126,8 @@ void * runThread(void * arg) { int r; for(r = 0; r < num_xact; r ++) { - run_xact(dbenv, db_cats, offset*(1+r)*insert_per_xact, insert_per_xact); + // run_xact(dbenv, db_cats, offset*(1+r)*insert_per_xact, insert_per_xact); + run_xact(dbenv, db_cats, (offset * num_xact * insert_per_xact) + (r * insert_per_xact), insert_per_xact); } pthread_mutex_lock(&mutex); diff --git a/benchmarks/berkeleyDB/bdbHashWriteRequests.c b/benchmarks/berkeleyDB/bdbHashWriteRequests.c index fdb3d5f..fdc2453 100644 --- a/benchmarks/berkeleyDB/bdbHashWriteRequests.c +++ b/benchmarks/berkeleyDB/bdbHashWriteRequests.c @@ -170,7 +170,8 @@ void * runThread(void * arg) { struct timeval endtime_tv; struct timespec endtime; - run_xact(dbenv, db_cats, offset*(1+r)*insert_per_xact, insert_per_xact); + // run_xact(dbenv, db_cats, offset*(1+r)*insert_per_xact, insert_per_xact); + run_xact(dbenv, db_cats, (offset * num_xact * insert_per_xact) + (r * insert_per_xact), insert_per_xact); gettimeofday(&endtime_tv, NULL); diff --git a/doc/paper2/BULK_LOAD.pdf b/doc/paper2/BULK_LOAD.pdf new file mode 100644 index 0000000..7878a41 --- /dev/null +++ b/doc/paper2/BULK_LOAD.pdf @@ -0,0 +1,454 @@ +%PDF-1.1 +%ρ +1 0 obj +<< +/CreationDate (D:20050321141751) +/ModDate (D:20050321141751) +/Title (R Graphics Output) +/Producer (R 2.0.1) +/Creator (R) +>> +endobj +2 0 obj +<< +/Type /Catalog +/Pages 3 0 R +>> +endobj +5 0 obj +<< +/Type /Font +/Subtype /Type1 +/Name /F1 +/BaseFont /ZapfDingbats +>> +endobj +6 0 obj +<< +/Type /Page +/Parent 3 0 R +/Contents 7 0 R +/Resources 4 0 R +>> +endobj +7 0 obj +<< +/Length 8 0 R +>> +stream +q +Q q 59.04 73.44 270.72 155.52 re W n +0.000 0.000 0.000 RG +0.75 w +[] 0 d +1 J +1 j +10.00 M +100.40 88.00 m 100.40 87.21 l S +105.38 85.20 m 126.75 107.47 l S +131.73 105.47 m 131.73 87.98 l S +135.45 86.95 m 159.35 126.68 l S +163.07 125.64 m 163.07 88.90 l S +166.12 88.22 m 191.34 142.01 l S +194.40 141.33 m 194.40 89.70 l S +196.92 89.24 m 223.21 159.57 l S +225.73 159.12 m 225.73 90.45 l S +227.76 90.16 m 255.04 182.96 l S +257.07 182.67 m 257.07 91.27 l S +258.82 91.05 m 286.64 201.74 l S +288.40 201.53 m 288.40 91.94 l S +289.99 91.76 m 318.14 216.18 l S +319.73 216.00 m 319.73 92.86 l S +BT +/F1 1 Tf 1 Tr 7.48 0 0 7.48 97.44 92.60 Tm (l) Tj 0 Tr +/F1 1 Tf 1 Tr 7.48 0 0 7.48 97.44 77.41 Tm (l) Tj 0 Tr +/F1 1 Tf 1 Tr 7.48 0 0 7.48 128.77 110.07 Tm (l) Tj 0 Tr +/F1 1 Tf 1 Tr 7.48 0 0 7.48 128.77 78.19 Tm (l) Tj 0 Tr +/F1 1 Tf 1 Tr 7.48 0 0 7.48 160.10 130.25 Tm (l) Tj 0 Tr +/F1 1 Tf 1 Tr 7.48 0 0 7.48 160.10 79.11 Tm (l) Tj 0 Tr +/F1 1 Tf 1 Tr 7.48 0 0 7.48 191.44 145.93 Tm (l) Tj 0 Tr +/F1 1 Tf 1 Tr 7.48 0 0 7.48 191.44 79.91 Tm (l) Tj 0 Tr +/F1 1 Tf 1 Tr 7.48 0 0 7.48 222.77 163.72 Tm (l) Tj 0 Tr +/F1 1 Tf 1 Tr 7.48 0 0 7.48 222.77 80.66 Tm (l) Tj 0 Tr +/F1 1 Tf 1 Tr 7.48 0 0 7.48 254.10 187.28 Tm (l) Tj 0 Tr +/F1 1 Tf 1 Tr 7.48 0 0 7.48 254.10 81.48 Tm (l) Tj 0 Tr +/F1 1 Tf 1 Tr 7.48 0 0 7.48 285.44 206.13 Tm (l) Tj 0 Tr +/F1 1 Tf 1 Tr 7.48 0 0 7.48 285.44 82.15 Tm (l) Tj 0 Tr +/F1 1 Tf 1 Tr 7.48 0 0 7.48 316.77 220.60 Tm (l) Tj 0 Tr +/F1 1 Tf 1 Tr 7.48 0 0 7.48 316.77 83.07 Tm (l) Tj 0 Tr +ET +Q q +0.000 0.000 0.000 RG +0.75 w +[] 0 d +1 J +1 j +10.00 M +69.07 73.44 m 319.73 73.44 l S +69.07 73.44 m 69.07 66.24 l S +131.73 73.44 m 131.73 66.24 l S +194.40 73.44 m 194.40 66.24 l S +257.07 73.44 m 257.07 66.24 l S +319.73 73.44 m 319.73 66.24 l S +BT +0.000 0.000 0.000 rg +/F2 1 Tf 12.00 0.00 -0.00 12.00 65.73 47.52 Tm (0) Tj +/F2 1 Tf 12.00 0.00 -0.00 12.00 121.73 47.52 Tm (200) Tj +/F2 1 Tf 12.00 0.00 -0.00 12.00 184.39 47.52 Tm (400) Tj +/F2 1 Tf 12.00 0.00 -0.00 12.00 247.06 47.52 Tm (600) Tj +/F2 1 Tf 12.00 0.00 -0.00 12.00 309.73 47.52 Tm (800) Tj +ET +59.04 79.20 m 59.04 221.98 l S +59.04 79.20 m 51.84 79.20 l S +59.04 114.89 m 51.84 114.89 l S +59.04 150.59 m 51.84 150.59 l S +59.04 186.28 m 51.84 186.28 l S +59.04 221.98 m 51.84 221.98 l S +BT +/F2 1 Tf 0.00 12.00 -12.00 0.00 41.76 75.86 Tm (0) Tj +/F2 1 Tf 0.00 12.00 -12.00 0.00 41.76 104.89 Tm (100) Tj +/F2 1 Tf 0.00 12.00 -12.00 0.00 41.76 140.58 Tm (200) Tj +/F2 1 Tf 0.00 12.00 -12.00 0.00 41.76 176.27 Tm (300) Tj +/F2 1 Tf 0.00 12.00 -12.00 0.00 41.76 211.97 Tm (400) Tj +ET +59.04 73.44 m +329.76 73.44 l +329.76 228.96 l +59.04 228.96 l +59.04 73.44 l +S +Q q +BT +0.000 0.000 0.000 rg +/F3 1 Tf 14.00 0.00 -0.00 14.00 72.23 253.45 Tm (Bulk Load Time - Single Transaction) Tj +/F2 1 Tf 12.00 0.00 -0.00 12.00 130.13 18.72 Tm (Thousands of Insertions) Tj +/F2 1 Tf 0.00 12.00 -12.00 0.00 12.96 127.85 Tm (Seconds) Tj +ET +Q q 59.04 73.44 270.72 155.52 re W n +1.000 0.000 0.000 RG +0.75 w +[] 0 d +1 J +1 j +10.00 M +107.60 79.72 m 124.53 79.97 l S +138.93 80.20 m 155.87 80.51 l S +170.27 80.72 m 187.20 80.91 l S +201.60 81.10 m 218.53 81.36 l S +232.93 81.52 m 249.87 81.63 l S +264.27 81.77 m 281.20 81.99 l S +295.60 82.15 m 312.53 82.31 l S +100.40 83.81 m +104.04 77.51 l +96.76 77.51 l +100.40 83.81 l +S +131.73 84.27 m +135.37 77.97 l +128.10 77.97 l +131.73 84.27 l +S +163.07 84.84 m +166.70 78.54 l +159.43 78.54 l +163.07 84.84 l +S +194.40 85.19 m +198.04 78.90 l +190.76 78.90 l +194.40 85.19 l +S +225.73 85.67 m +229.37 79.37 l +222.10 79.37 l +225.73 85.67 l +S +257.07 85.88 m +260.70 79.58 l +253.43 79.58 l +257.07 85.88 l +S +288.40 86.28 m +292.04 79.98 l +284.76 79.98 l +288.40 86.28 l +S +319.73 86.57 m +323.37 80.27 l +316.10 80.27 l +319.73 86.57 l +S +0.000 0.804 0.000 RG +107.58 81.72 m 124.55 82.85 l S +138.90 84.01 m 155.90 85.60 l S +170.23 87.00 m 187.24 88.75 l S +201.55 90.36 m 218.59 92.48 l S +232.90 94.03 m 249.90 95.60 l S +264.22 97.08 m 281.25 99.01 l S +295.56 100.57 m 312.57 102.34 l S +96.58 81.24 m 104.22 81.24 l S +100.40 77.42 m 100.40 85.06 l S +127.91 83.33 m 135.55 83.33 l S +131.73 79.52 m 131.73 87.15 l S +159.25 86.27 m 166.89 86.27 l S +163.07 82.45 m 163.07 90.09 l S +190.58 89.48 m 198.22 89.48 l S +194.40 85.66 m 194.40 93.30 l S +221.91 93.36 m 229.55 93.36 l S +225.73 89.54 m 225.73 97.18 l S +253.25 96.26 m 260.89 96.26 l S +257.07 92.45 m 257.07 100.08 l S +284.58 99.82 m 292.22 99.82 l S +288.40 96.00 m 288.40 103.64 l S +315.91 103.08 m 323.55 103.08 l S +319.73 99.27 m 319.73 106.90 l S +0.000 0.000 1.000 RG +264.27 79.20 m 312.53 79.20 l S +254.37 76.50 m 259.77 81.90 l S +254.37 81.90 m 259.77 76.50 l S +317.03 76.50 m 322.43 81.90 l S +317.03 81.90 m 322.43 76.50 l S +0.000 1.000 1.000 RG +107.46 85.32 m 124.67 88.76 l S +138.77 91.71 m 156.03 95.51 l S +170.13 98.46 m 187.34 101.87 l S +201.42 104.85 m 218.71 108.75 l S +232.46 112.89 m 250.34 119.68 l S +264.13 123.63 m 281.34 127.04 l S +295.15 130.94 m 312.98 137.54 l S +96.58 83.91 m +100.40 87.73 l +104.22 83.91 l +100.40 80.09 l +96.58 83.91 l +S +127.91 90.17 m +131.73 93.99 l +135.55 90.17 l +131.73 86.35 l +127.91 90.17 l +S +159.25 97.06 m +163.07 100.88 l +166.89 97.06 l +163.07 93.24 l +159.25 97.06 l +S +190.58 103.27 m +194.40 107.08 l +198.22 103.27 l +194.40 99.45 l +190.58 103.27 l +S +221.91 110.33 m +225.73 114.15 l +229.55 110.33 l +225.73 106.51 l +221.91 110.33 l +S +253.25 122.24 m +257.07 126.05 l +260.89 122.24 l +257.07 118.42 l +253.25 122.24 l +S +284.58 128.44 m +288.40 132.26 l +292.22 128.44 l +288.40 124.62 l +284.58 128.44 l +S +315.91 140.04 m +319.73 143.86 l +323.55 140.04 l +319.73 136.22 l +315.91 140.04 l +S +1.000 0.000 1.000 RG +107.60 79.67 m 124.53 79.90 l S +138.93 80.11 m 155.87 80.38 l S +170.27 80.58 m 187.20 80.80 l S +201.60 80.99 m 218.53 81.23 l S +232.93 81.37 m 249.87 81.47 l S +264.27 81.58 m 281.20 81.74 l S +295.60 81.91 m 312.53 82.13 l S +100.40 75.37 m +104.04 81.67 l +96.76 81.67 l +100.40 75.37 l +S +131.73 75.80 m +135.37 82.09 l +128.10 82.09 l +131.73 75.80 l +S +163.07 76.30 m +166.70 82.59 l +159.43 82.59 l +163.07 76.30 l +S +194.40 76.69 m +198.04 82.99 l +190.76 82.99 l +194.40 76.69 l +S +225.73 77.13 m +229.37 83.43 l +222.10 83.43 l +225.73 77.13 l +S +257.07 77.31 m +260.70 83.61 l +253.43 83.61 l +257.07 77.31 l +S +288.40 77.62 m +292.04 83.91 l +284.76 83.91 l +288.40 77.62 l +S +319.73 78.03 m +323.37 84.33 l +316.10 84.33 l +319.73 78.03 l +S +0.000 0.000 0.000 RG +BT +/F1 1 Tf 1 Tr 7.48 0 0 7.48 76.90 206.20 Tm (l) Tj 0 Tr +ET +1.000 0.000 0.000 RG +79.87 198.60 m +83.50 192.30 l +76.23 192.30 l +79.87 198.60 l +S +0.000 0.804 0.000 RG +76.05 180.00 m 83.69 180.00 l S +79.87 176.18 m 79.87 183.82 l S +0.000 0.000 1.000 RG +77.17 162.90 m 82.57 168.30 l S +77.17 168.30 m 82.57 162.90 l S +0.000 1.000 1.000 RG +76.05 151.20 m +79.87 155.02 l +83.69 151.20 l +79.87 147.38 l +76.05 151.20 l +S +1.000 0.000 1.000 RG +79.87 132.60 m +83.50 138.90 l +76.23 138.90 l +79.87 132.60 l +S +BT +0.000 0.000 0.000 rg +/F2 1 Tf 12.00 0.00 -0.00 12.00 96.07 204.49 Tm (BDB HASH) Tj +/F2 1 Tf 12.00 0.00 -0.00 12.00 96.07 190.09 Tm (LLADD ARRAY LIST) Tj +/F2 1 Tf 12.00 0.00 -0.00 12.00 96.07 175.69 Tm (LLADD FAST HASH) Tj +/F2 1 Tf 12.00 0.00 -0.00 12.00 96.07 161.29 Tm (LLADD LINKED LIST) Tj +/F2 1 Tf 12.00 0.00 -0.00 12.00 96.07 146.89 Tm (LLADD NTA HASH) Tj +/F2 1 Tf 12.00 0.00 -0.00 12.00 96.07 132.49 Tm (LLADD RECORDID) Tj +ET +Q +endstream +endobj +8 0 obj +7193 +endobj +3 0 obj +<< +/Type /Pages +/Kids [ +6 0 R +] +/Count 1 +/MediaBox [0 0 360 288] +>> +endobj +4 0 obj +<< +/ProcSet [/PDF /Text] +/Font << /F1 5 0 R /F2 10 0 R /F3 11 0 R /F4 12 0 R /F5 13 0 R /F6 14 0 R >> +/ExtGState << >> +>> +endobj +9 0 obj +<< +/Type /Encoding +/BaseEncoding /PDFDocEncoding +/Differences [ 45/minus 96/quoteleft +144/dotlessi /grave /acute /circumflex /tilde /macron /breve /dotaccent +/dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron /space] +>> +endobj +10 0 obj +<< +/Type /Font +/Subtype /Type1 +/Name /F2 +/BaseFont /Helvetica +/Encoding 9 0 R +>> +endobj +11 0 obj +<< +/Type /Font +/Subtype /Type1 +/Name /F3 +/BaseFont /Helvetica-Bold +/Encoding 9 0 R +>> +endobj +12 0 obj +<< +/Type /Font +/Subtype /Type1 +/Name /F4 +/BaseFont /Helvetica-Oblique +/Encoding 9 0 R +>> +endobj +13 0 obj +<< +/Type /Font +/Subtype /Type1 +/Name /F5 +/BaseFont /Helvetica-BoldOblique +/Encoding 9 0 R +>> +endobj +14 0 obj +<< +/Type /Font +/Subtype /Type1 +/Name /F6 +/BaseFont /Symbol +>> +endobj +xref +0 15 +0000000000 65535 f +0000000020 00000 n +0000000162 00000 n +0000007640 00000 n +0000007723 00000 n +0000000211 00000 n +0000000294 00000 n +0000000374 00000 n +0000007620 00000 n +0000007860 00000 n +0000008116 00000 n +0000008213 00000 n +0000008315 00000 n +0000008420 00000 n +0000008529 00000 n +trailer +<< +/Size 15 +/Info 1 0 R +/Root 2 0 R +>> +startxref +8607 +%%EOF diff --git a/doc/paper2/LLADD.tex b/doc/paper2/LLADD.tex index 5d7ad14..ea63468 100644 --- a/doc/paper2/LLADD.tex +++ b/doc/paper2/LLADD.tex @@ -2,6 +2,10 @@ %\documentclass[letterpaper,english]{article} \documentclass[letterpaper,twocolumn,english]{article} + +% This fixes the PDF font, whether or not pdflatex is used to compile the document... +\usepackage{pslatex} + \usepackage[T1]{fontenc} \usepackage[latin1]{inputenc} \usepackage{graphicx} @@ -976,20 +980,63 @@ than our current implementation, we believe that our architecture could support a broader range of features than provided by BerkeleyDB, which is a monolithic system. -The first test measures the throughput of a single long running +\begin{figure*} +\includegraphics[% + width=1\columnwidth]{BULK_LOAD.pdf} +\includegraphics[% + width=1\columnwidth]{BULK_LOAD.pdf} +\caption{\label{fig:BULK_LOAD} This test measures the raw performance +of the data structures provided by \yad and Berkeley DB. Since the +test is run as a single transaction, overheads due to synchronous I/O +and logging are minimized. +{\em @todo of course, these aren't the final graphs. I plan to add points for 1 insertion, fix +the stair stepping, and split the numbers into 'hashtable' and 'raw +access' graphs.}} +\end{figure*} + +The first test (Figure~\ref{fig:BULK_LOAD}) measures the throughput of a single long running transaction that generates an loads a synthetic data set into the library. For comparison, we provide throughput for many different \yad operations, and BerkeleyDB's DB\_HASH hashtable implementation, and lower level DB\_RECNO record number based interface. -@todo fill in numbers here. +The NTA (Nested Top Action) version of \yad's hash table is very +cleanly implemented by making use of existing \yad data structures, +and is not fundamentally more complex then normal multithreaded code. +We expect application developers to write code in this style. -The second test measures the two library's ability to exploit +The ``Fast'' \yad hashtable implementation is optimized for log +bandwidth, only stores fixed length entries, and does not obey normal +recovery semantics. It is included in this test as an example of the +sort of optimizations that are possible (but difficult) to perform +with \yad. The slower, more stable NTA hashtable is used exclusively +in all benchmarks in this paper. In the future, we hope that improved +tool support for \yad will allow application developers easily apply +more optimizations to their operations. + + +The second test (Figure~\ref{fig:TPS}) measures the two library's ability to exploit concurrent transactions to reduce logging overhead. Both systems implement a simple optimization that allows multiple calls to commit() -to be serviced by a single synchronous disk request. +to be serviced by a single synchronous disk request. This test shows +that both Berkeley DB and \yad's are able to take advantage of +multiple outstanding requests. -@todo analysis + +\begin{figure*} +\includegraphics[% + width=1\columnwidth]{TPS.pdf} +\includegraphics[% + width=1\columnwidth]{TPS.pdf} +\caption{\label{fig:TPS} The logging mechanisms of \yad and Berkeley +DB are able to combine calls to commit() into a single disk force. +This graph shows how \yad and Berkeley DB's throughput increases as +the number of concurrent requests increases. The Berkeley DB line is +cut off at 40 concurrent transactions because we were unable to +reliable scale it past this point, although we believe that this is an +artifact of our testing environment, and not fundamental to +BerkeleyDB.} {\em @todo There are two copies of this graph because I intend to make a version that scales \yad up to the point where performance begins to degrade. Also, I think I can get BDB to do more than 40 threads...} +\end{figure*} The final test measures the maximum number of sustainable transactions per second for the two libraries. In these cases, we generate a diff --git a/doc/paper2/TPS.pdf b/doc/paper2/TPS.pdf new file mode 100644 index 0000000..8cf176f --- /dev/null +++ b/doc/paper2/TPS.pdf @@ -0,0 +1,279 @@ +%PDF-1.1 +%ρ +1 0 obj +<< +/CreationDate (D:20050321141749) +/ModDate (D:20050321141749) +/Title (R Graphics Output) +/Producer (R 2.0.1) +/Creator (R) +>> +endobj +2 0 obj +<< +/Type /Catalog +/Pages 3 0 R +>> +endobj +5 0 obj +<< +/Type /Font +/Subtype /Type1 +/Name /F1 +/BaseFont /ZapfDingbats +>> +endobj +6 0 obj +<< +/Type /Page +/Parent 3 0 R +/Contents 7 0 R +/Resources 4 0 R +>> +endobj +7 0 obj +<< +/Length 8 0 R +>> +stream +q +Q q 59.04 73.44 270.72 155.52 re W n +0.000 0.000 0.000 RG +0.75 w +[] 0 d +1 J +1 j +10.00 M +78.98 84.03 m 93.62 89.25 l S +107.15 94.17 m 124.98 100.77 l S +138.55 105.59 m 156.25 111.60 l S +169.91 116.15 m 187.55 121.89 l S +BT +/F1 1 Tf 1 Tr 7.48 0 0 7.48 69.24 79.02 Tm (l) Tj 0 Tr +/F1 1 Tf 1 Tr 7.48 0 0 7.48 97.44 89.07 Tm (l) Tj 0 Tr +/F1 1 Tf 1 Tr 7.48 0 0 7.48 128.77 100.67 Tm (l) Tj 0 Tr +/F1 1 Tf 1 Tr 7.48 0 0 7.48 160.10 111.33 Tm (l) Tj 0 Tr +/F1 1 Tf 1 Tr 7.48 0 0 7.48 191.44 121.52 Tm (l) Tj 0 Tr +ET +Q q +0.000 0.000 0.000 RG +0.75 w +[] 0 d +1 J +1 j +10.00 M +69.07 73.44 m 319.73 73.44 l S +69.07 73.44 m 69.07 66.24 l S +131.73 73.44 m 131.73 66.24 l S +194.40 73.44 m 194.40 66.24 l S +257.07 73.44 m 257.07 66.24 l S +319.73 73.44 m 319.73 66.24 l S +BT +0.000 0.000 0.000 rg +/F2 1 Tf 12.00 0.00 -0.00 12.00 65.73 47.52 Tm (0) Tj +/F2 1 Tf 12.00 0.00 -0.00 12.00 125.06 47.52 Tm (20) Tj +/F2 1 Tf 12.00 0.00 -0.00 12.00 187.73 47.52 Tm (40) Tj +/F2 1 Tf 12.00 0.00 -0.00 12.00 250.39 47.52 Tm (60) Tj +/F2 1 Tf 12.00 0.00 -0.00 12.00 313.06 47.52 Tm (80) Tj +ET +59.04 79.20 m 59.04 205.73 l S +59.04 79.20 m 51.84 79.20 l S +59.04 110.83 m 51.84 110.83 l S +59.04 142.46 m 51.84 142.46 l S +59.04 174.09 m 51.84 174.09 l S +59.04 205.73 m 51.84 205.73 l S +BT +/F2 1 Tf 0.00 12.00 -12.00 0.00 41.76 75.86 Tm (0) Tj +/F2 1 Tf 0.00 12.00 -12.00 0.00 41.76 100.82 Tm (500) Tj +/F2 1 Tf 0.00 12.00 -12.00 0.00 41.76 160.75 Tm (1500) Tj +ET +59.04 73.44 m +329.76 73.44 l +329.76 228.96 l +59.04 228.96 l +59.04 73.44 l +S +Q q +BT +0.000 0.000 0.000 rg +/F3 1 Tf 14.00 0.00 -0.00 14.00 71.47 253.45 Tm (Concurrent Transactions Per Second) Tj +/F2 1 Tf 12.00 0.00 -0.00 12.00 111.70 18.72 Tm (Number of concurrent requests) Tj +/F2 1 Tf 0.00 12.00 -12.00 0.00 12.96 139.53 Tm (TPS) Tj +ET +Q q 59.04 73.44 270.72 155.52 re W n +1.000 0.000 0.000 RG +0.75 w +[] 0 d +1 J +1 j +10.00 M +78.03 85.83 m 94.57 97.82 l S +106.30 106.16 m 125.83 119.79 l S +137.87 127.67 m 156.93 139.37 l S +169.27 146.79 m 188.20 157.93 l S +200.67 165.13 m 219.47 175.75 l S +232.16 182.54 m 250.64 191.85 l S +263.60 198.12 m 281.87 206.61 l S +295.01 212.51 m 313.12 220.34 l S +72.20 85.80 m +75.84 79.50 l +68.56 79.50 l +72.20 85.80 l +S +100.40 106.24 m +104.04 99.94 l +96.76 99.94 l +100.40 106.24 l +S +131.73 128.11 m +135.37 121.81 l +128.10 121.81 l +131.73 128.11 l +S +163.07 147.34 m +166.70 141.04 l +159.43 141.04 l +163.07 147.34 l +S +194.40 165.78 m +198.04 159.48 l +190.76 159.48 l +194.40 165.78 l +S +225.73 183.49 m +229.37 177.20 l +222.10 177.20 l +225.73 183.49 l +S +257.07 199.29 m +260.70 192.99 l +253.43 192.99 l +257.07 199.29 l +S +288.40 213.85 m +292.04 207.55 l +284.76 207.55 l +288.40 213.85 l +S +319.73 227.40 m +323.37 221.10 l +316.10 221.10 l +319.73 227.40 l +S +0.000 0.000 0.000 RG +BT +/F1 1 Tf 1 Tr 7.48 0 0 7.48 76.90 206.20 Tm (l) Tj 0 Tr +ET +1.000 0.000 0.000 RG +79.87 198.60 m +83.50 192.30 l +76.23 192.30 l +79.87 198.60 l +S +BT +0.000 0.000 0.000 rg +/F2 1 Tf 12.00 0.00 -0.00 12.00 96.07 204.49 Tm (BDB HASH TPS) Tj +/F2 1 Tf 12.00 0.00 -0.00 12.00 96.07 190.09 Tm (LLADD HASH TPS) Tj +ET +Q +endstream +endobj +8 0 obj +3024 +endobj +3 0 obj +<< +/Type /Pages +/Kids [ +6 0 R +] +/Count 1 +/MediaBox [0 0 360 288] +>> +endobj +4 0 obj +<< +/ProcSet [/PDF /Text] +/Font << /F1 5 0 R /F2 10 0 R /F3 11 0 R /F4 12 0 R /F5 13 0 R /F6 14 0 R >> +/ExtGState << >> +>> +endobj +9 0 obj +<< +/Type /Encoding +/BaseEncoding /PDFDocEncoding +/Differences [ 45/minus 96/quoteleft +144/dotlessi /grave /acute /circumflex /tilde /macron /breve /dotaccent +/dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron /space] +>> +endobj +10 0 obj +<< +/Type /Font +/Subtype /Type1 +/Name /F2 +/BaseFont /Helvetica +/Encoding 9 0 R +>> +endobj +11 0 obj +<< +/Type /Font +/Subtype /Type1 +/Name /F3 +/BaseFont /Helvetica-Bold +/Encoding 9 0 R +>> +endobj +12 0 obj +<< +/Type /Font +/Subtype /Type1 +/Name /F4 +/BaseFont /Helvetica-Oblique +/Encoding 9 0 R +>> +endobj +13 0 obj +<< +/Type /Font +/Subtype /Type1 +/Name /F5 +/BaseFont /Helvetica-BoldOblique +/Encoding 9 0 R +>> +endobj +14 0 obj +<< +/Type /Font +/Subtype /Type1 +/Name /F6 +/BaseFont /Symbol +>> +endobj +xref +0 15 +0000000000 65535 f +0000000020 00000 n +0000000162 00000 n +0000003471 00000 n +0000003554 00000 n +0000000211 00000 n +0000000294 00000 n +0000000374 00000 n +0000003451 00000 n +0000003691 00000 n +0000003947 00000 n +0000004044 00000 n +0000004146 00000 n +0000004251 00000 n +0000004360 00000 n +trailer +<< +/Size 15 +/Info 1 0 R +/Root 2 0 R +>> +startxref +4438 +%%EOF diff --git a/src/timing/plotting.pl b/src/timing/plotting.pl index 8c3bb9c..ff9e8e7 100755 --- a/src/timing/plotting.pl +++ b/src/timing/plotting.pl @@ -3,12 +3,17 @@ use strict; +#my $R_PREAMBLE = qq{ +# postscript("__PLOT_NAME__.ps", width = 9.75, height = 6.375, +# horizontal = FALSE, onefile = FALSE, paper = "special", +# family = "ComputerModern") +# }; my $R_PREAMBLE = qq{ - postscript("__PLOT_NAME__.ps", width = 9.75, height = 6.375, - horizontal = FALSE, onefile = FALSE, paper = "special", - family = "ComputerModern") - }; + pdf("__PLOT_NAME__.pdf", width = 5.0, height = 4, + horizontal = FALSE, onefile = FALSE, paper = "special") + }; +# family = "ComputerModern") my $R_READ = qq{ __NAME__<-read.table("__FILE__",header=F,sep="\\t") }; @@ -62,6 +67,7 @@ sub filesToLabels { chomp $array[$i]; $array[$i] =~ s/^[^\-]+\-//; $array[$i] =~ s/\.dat$//; + $array[$i] =~ s/[-_]/ /g; } my $ret = '"' . join ('", "', @array). '"';