Changeset: 9e52b1191976 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=9e52b1191976
Modified Files:
java/tests/Makefile.ag
java/tests/Test_PSlargeamount.java
java/tests/build.xml
sql/src/jdbc/tests/Tests/All
sql/src/jdbc/tests/Tests/Test_PSlargeamount.SQL.bat
sql/src/jdbc/tests/Tests/Test_PSlargeamount.SQL.sh
sql/src/jdbc/tests/Tests/Test_PSlargeamount.stable.err
sql/src/jdbc/tests/Tests/Test_PSlargeamount.stable.out
sql/src/jdbc/tests/Tests/Test_PSlargeamount.timeout
Branch: Oct2010
Log Message:
PSlargeamount: add new test
Stress the server with large amounts of prepared statements. Currently,
the server gets extremely large and more importantly extremely slow
under the load.
diffs (truncated from 321 to 300 lines):
diff -r 26f27da4e8ab -r 9e52b1191976 java/tests/Makefile.ag
--- a/java/tests/Makefile.ag Wed Dec 15 10:47:52 2010 +0100
+++ b/java/tests/Makefile.ag Wed Dec 15 10:55:38 2010 +0100
@@ -23,6 +23,8 @@
Test_Csavepoints.java \
Test_Ctransaction.java \
Test_PSgeneratedkeys.java \
+ Test_PSlargeresponse.java \
+ Test_PSlargeamount.java \
Test_PStimedate.java \
Test_PStimezone.java \
Test_PStypes.java \
diff -r 26f27da4e8ab -r 9e52b1191976 java/tests/Test_PSlargeamount.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/java/tests/Test_PSlargeamount.java Wed Dec 15 10:55:38 2010 +0100
@@ -0,0 +1,61 @@
+/*
+ * The contents of this file are subject to the MonetDB Public License
+ * Version 1.1 (the "License"); you may not use this file except in
+ * compliance with the License. You may obtain a copy of the License at
+ * http://monetdb.cwi.nl/Legal/MonetDBLicense-1.1.html
+ *
+ * Software distributed under the License is distributed on an "AS IS"
+ * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+ * License for the specific language governing rights and limitations
+ * under the License.
+ *
+ * The Original Code is the MonetDB Database System.
+ *
+ * The Initial Developer of the Original Code is CWI.
+ * Portions created by CWI are Copyright (C) 1997-July 2008 CWI.
+ * Copyright August 2008-2010 MonetDB B.V.
+ * All Rights Reserved.
+ */
+
+import java.sql.*;
+import java.util.*;
+
+/* Create a lot of PreparedStatements, to emulate webloads such as those
+ * from Hibernate. */
+
+public class Test_PSlargeamount {
+ public static void main(String[] args) throws Exception {
+ Class.forName("nl.cwi.monetdb.jdbc.MonetDriver");
+ Connection con = DriverManager.getConnection(args[0]);
+ Statement stmt = con.createStatement();
+ PreparedStatement pstmt;
+ // retrieve this to simulate a bug report
+ DatabaseMetaData dbmd = con.getMetaData();
+
+ // >> true: auto commit should be on
+ System.out.println("0. true\t" + con.getAutoCommit());
+
+ try {
+ System.out.print("1. DatabaseMetadata environment
retrieval... ");
+ System.out.println(dbmd.getURL());
+
+ System.out.println("2. Preparing and executing a unique
statement");
+ for (int i = 0; i < 100000; i++) {
+ pstmt = con.prepareStatement("select " + i + ",
" + i + " = ?");
+ pstmt.setInt(1, i);
+ ResultSet rs = pstmt.executeQuery();
+ if (rs.next() && i % 1000 == 0) {
+ System.out.println(rs.getInt(1) + ", "
+ rs.getBoolean(2));
+ }
+ /* this call should cause resources on the
server to be
+ * freed */
+ pstmt.close();
+ }
+ } catch (SQLException e) {
+ System.out.println("FAILED :( "+ e.getMessage());
+ System.out.println("ABORTING TEST!!!");
+ }
+
+ con.close();
+ }
+}
diff -r 26f27da4e8ab -r 9e52b1191976 java/tests/build.xml
--- a/java/tests/build.xml Wed Dec 15 10:47:52 2010 +0100
+++ b/java/tests/build.xml Wed Dec 15 10:55:38 2010 +0100
@@ -109,6 +109,7 @@
<antcall target="Test_Ctransaction" />
<antcall target="Test_PSgeneratedkeys" />
<antcall target="Test_PSlargeresponse" />
+ <antcall target="Test_PSlargeamount" />
<antcall target="Test_PStimedate" />
<antcall target="Test_PStimezone" />
<antcall target="Test_PStypes" />
@@ -195,6 +196,12 @@
</antcall>
</target>
+ <target name="Test_PSlargeamount">
+ <antcall target="test_class">
+ <param name="test.class" value="Test_PSlargeamount" />
+ </antcall>
+ </target>
+
<target name="Test_PStimedate">
<antcall target="test_class">
<param name="test.class" value="Test_PStimedate" />
diff -r 26f27da4e8ab -r 9e52b1191976 sql/src/jdbc/tests/Tests/All
--- a/sql/src/jdbc/tests/Tests/All Wed Dec 15 10:47:52 2010 +0100
+++ b/sql/src/jdbc/tests/Tests/All Wed Dec 15 10:55:38 2010 +0100
@@ -5,6 +5,7 @@
HAVE_JDBCTESTS?Test_Csavepoints
HAVE_JDBCTESTS?Test_Ctransaction
HAVE_JDBCTESTS?Test_PSgeneratedkeys
+HAVE_JDBCTESTS?Test_PSlargeamount
HAVE_JDBCTESTS?Test_PStimedate
HAVE_JDBCTESTS?Test_PStimezone
HAVE_JDBCTESTS?Test_PStypes
diff -r 26f27da4e8ab -r 9e52b1191976
sql/src/jdbc/tests/Tests/Test_PSlargeamount.SQL.bat
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sql/src/jdbc/tests/Tests/Test_PSlargeamount.SQL.bat Wed Dec 15
10:55:38 2010 +0100
@@ -0,0 +1,1 @@
+...@call "%TSTSRCDIR%\Test.SQL.bat" %*
diff -r 26f27da4e8ab -r 9e52b1191976
sql/src/jdbc/tests/Tests/Test_PSlargeamount.SQL.sh
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sql/src/jdbc/tests/Tests/Test_PSlargeamount.SQL.sh Wed Dec 15
10:55:38 2010 +0100
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+$TSTSRCDIR/Test.SQL.sh $*
diff -r 26f27da4e8ab -r 9e52b1191976
sql/src/jdbc/tests/Tests/Test_PSlargeamount.stable.err
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sql/src/jdbc/tests/Tests/Test_PSlargeamount.stable.err Wed Dec 15
10:55:38 2010 +0100
@@ -0,0 +1,86 @@
+stderr of test 'Test_PSlargeamount` in directory 'src/jdbc/tests` itself:
+
+
+# 10:38:37 >
+# 10:38:37 > mserver5
"--config=/ufs/fabian/scratch/monetdb/Oct2010/program-x86_64/etc/monetdb5.conf"
--debug=10 --set gdk_nr_threads=0 --set
"monet_mod_path=/ufs/fabian/scratch/monetdb/Oct2010/program-x86_64/lib/MonetDB5:/ufs/fabian/scratch/monetdb/Oct2010/program-x86_64/lib/MonetDB5/lib:/ufs/fabian/scratch/monetdb/Oct2010/program-x86_64/lib/MonetDB5/bin"
--set
"gdk_dbfarm=/net/volund.ins.cwi.nl/export/scratch0/fabian/vtmp/mtest-Oct2010-volund.ins.cwi.nl/sql/dbfarm"
--set mapi_open=true --set xrpc_open=true --set mapi_port=34682 --set
xrpc_port=45449 --set monet_prompt= --trace --forcemito --set mal_listing=2
"--dbname=mTests_src_jdbc_tests" --set mal_listing=0 ; echo ; echo Over..
+# 10:38:37 >
+
+# builtin opt gdk_arch = 64bitx86_64-pc-linux-gnu
+# builtin opt gdk_version = 1.40.1
+# builtin opt prefix = /ufs/fabian/scratch/monetdb/Oct2010/program-x86_64
+# builtin opt exec_prefix = ${prefix}
+# builtin opt gdk_dbname = demo
+# builtin opt gdk_dbfarm = ${prefix}/var/MonetDB/dbfarm
+# builtin opt gdk_debug = 0
+# builtin opt gdk_alloc_map = no
+# builtin opt gdk_vmtrim = yes
+# builtin opt monet_admin = adm
+# builtin opt monet_prompt = >
+# builtin opt monet_welcome = yes
+# builtin opt monet_mod_path =
/ufs/fabian/scratch/monetdb/Oct2010/program-x86_64/lib/MonetDB
+# builtin opt monet_daemon = no
+# builtin opt host = localhost
+# builtin opt mapi_port = 50000
+# builtin opt mapi_clients = 2
+# builtin opt mapi_open = false
+# builtin opt mapi_autosense = false
+# builtin opt default_pipe =
inline,remap,evaluate,costModel,coercions,emptySet,aliases,mitosis,mergetable,deadcode,commonTerms,joinPath,reorder,deadcode,reduce,dataflow,history,multiplex,garbageCollector
+# builtin opt minimal_pipe = inline,remap,deadcode,multiplex,garbageCollector
+# builtin opt sql_optimizer = default_pipe
+# builtin opt sql_debug = 0
+# builtin opt standoff_ns =
+# builtin opt standoff_start = start
+# builtin opt standoff_end = end
+# config opt prefix = /ufs/fabian/scratch/monetdb/Oct2010/program-x86_64
+# config opt config = ${prefix}/etc/monetdb5.conf
+# config opt prefix = /ufs/fabian/scratch/monetdb/Oct2010/program-x86_64
+# config opt exec_prefix = ${prefix}
+# config opt gdk_dbfarm = ${prefix}/var/MonetDB5/dbfarm
+# config opt monet_mod_path =
/ufs/fabian/scratch/monetdb/Oct2010/program-x86_64/lib/MonetDB5:/ufs/fabian/scratch/monetdb/Oct2010/program-x86_64/lib/MonetDB5/lib:/ufs/fabian/scratch/monetdb/Oct2010/program-x86_64/lib/MonetDB5/bin
+# config opt mero_pidfile = ${prefix}/var/run/MonetDB/merovingian.pid
+# config opt mero_controlport = 50001
+# config opt sql_debug = 65536
+# config opt no_mitosis_pipe =
inline,remap,evaluate,costModel,coercions,emptySet,aliases,mergetable,deadcode,commonTerms,joinPath,reorder,deadcode,reduce,dataflow,history,multiplex,garbageCollector
+# config opt sequential_pipe =
inline,remap,evaluate,costModel,coercions,emptySet,aliases,mergetable,deadcode,commonTerms,joinPath,reorder,deadcode,reduce,history,multiplex,garbageCollector
+# config opt nov2009_pipe =
inline,remap,evaluate,costModel,coercions,emptySet,aliases,mergetable,deadcode,constants,commonTerms,joinPath,deadcode,reduce,dataflow,history,multiplex,garbageCollector
+# config opt replication_pipe =
inline,remap,evaluate,costModel,coercions,emptySet,aliases,mergetable,deadcode,constants,commonTerms,joinPath,deadcode,reduce,dataflow,history,replication,multiplex,garbageCollector
+# config opt accumulator_pipe =
inline,remap,evaluate,costModel,coercions,emptySet,aliases,mergetable,deadcode,constants,commonTerms,joinPath,deadcode,reduce,accumulators,dataflow,history,multiplex,garbageCollector
+# config opt recycler_pipe =
inline,remap,evaluate,costModel,coercions,emptySet,aliases,deadcode,constants,commonTerms,joinPath,deadcode,recycle,reduce,dataflow,history,multiplex,garbageCollector
+# config opt cracker_pipe =
inline,remap,evaluate,costModel,coercions,emptySet,aliases,selcrack,deadcode,constants,commonTerms,joinPath,deadcode,reduce,dataflow,history,multiplex,garbageCollector
+# config opt sidcrack_pipe =
inline,remap,evaluate,costModel,coercions,emptySet,aliases,sidcrack,deadcode,constants,commonTerms,joinPath,deadcode,reduce,dataflow,history,multiplex,garbageCollector
+# config opt datacell_pipe =
inline,remap,evaluate,costModel,coercions,emptySet,aliases,deadcode,constants,commonTerms,joinPath,datacell,deadcode,reduce,dataflow,history,multiplex,garbageCollector
+# config opt octopus_pipe =
inline,remap,evaluate,costModel,coercions,emptySet,aliases,mitosis,mergetable,deadcode,constants,commonTerms,joinPath,octopus,deadcode,reduce,dataflow,history,multiplex,garbageCollector
+# config opt datacyclotron_pipe =
inline,remap,evaluate,costModel,coercions,emptySet,aliases,datacyclotron,mergetable,deadcode,commonTerms,joinPath,reorder,deadcode,reduce,dataflow,history,replication,multiplex,garbageCollector
+# config opt derive_pipe =
inline,remap,evaluate,costModel,coercions,emptySet,aliases,mitosis,mergetable,deadcode,commonTerms,derivePath,joinPath,reorder,deadcode,reduce,dataflow,history,multiplex,garbageCollector
+# config opt dictionary_pipe =
inline,remap,dictionary,evaluate,costModel,coercions,emptySet,aliases,mergetable,deadcode,constants,commonTerms,joinPath,deadcode,reduce,dataflow,history,multiplex,garbageCollector
+# config opt compression_pipe =
inline,remap,evaluate,costModel,coercions,emptySet,aliases,mergetable,deadcode,constants,commonTerms,joinPath,deadcode,reduce,dataflow,compression,dataflow,history,multiplex,garbageCollector
+# cmdline opt config =
/ufs/fabian/scratch/monetdb/Oct2010/program-x86_64/etc/monetdb5.conf
+# cmdline opt gdk_nr_threads = 0
+# cmdline opt monet_mod_path =
/ufs/fabian/scratch/monetdb/Oct2010/program-x86_64/lib/MonetDB5:/ufs/fabian/scratch/monetdb/Oct2010/program-x86_64/lib/MonetDB5/lib:/ufs/fabian/scratch/monetdb/Oct2010/program-x86_64/lib/MonetDB5/bin
+# cmdline opt gdk_dbfarm =
/net/volund.ins.cwi.nl/export/scratch0/fabian/vtmp/mtest-Oct2010-volund.ins.cwi.nl/sql/dbfarm
+# cmdline opt mapi_open = true
+# cmdline opt xrpc_open = true
+# cmdline opt mapi_port = 34682
+# cmdline opt xrpc_port = 45449
+# cmdline opt monet_prompt =
+# cmdline opt mal_listing = 2
+# cmdline opt gdk_dbname = mTests_src_jdbc_tests
+# cmdline opt mal_listing = 0
+#warning: please don't forget to set your vault key!
+#(see /ufs/fabian/scratch/monetdb/Oct2010/program-x86_64/etc/monetdb5.conf)
+
+
+
+
+# 10:38:37 >
+# 10:38:37 > java Test_PSlargeamount
"jdbc:monetdb://volund:34682/mTests_src_jdbc_tests?user=monetdb&password=monetdb"
+# 10:38:37 >
+
+
+
+
+
+# 10:52:24 >
+# 10:52:24 > Done.
+# 10:52:24 >
+
diff -r 26f27da4e8ab -r 9e52b1191976
sql/src/jdbc/tests/Tests/Test_PSlargeamount.stable.out
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sql/src/jdbc/tests/Tests/Test_PSlargeamount.stable.out Wed Dec 15
10:55:38 2010 +0100
@@ -0,0 +1,98 @@
+stdout of test 'Test_PSlargeamount` in directory 'src/jdbc/tests` itself:
+
+
+# 10:38:37 >
+# 10:38:37 > mserver5
"--config=/ufs/fabian/scratch/monetdb/Oct2010/program-x86_64/etc/monetdb5.conf"
--debug=10 --set gdk_nr_threads=0 --set
"monet_mod_path=/ufs/fabian/scratch/monetdb/Oct2010/program-x86_64/lib/MonetDB5:/ufs/fabian/scratch/monetdb/Oct2010/program-x86_64/lib/MonetDB5/lib:/ufs/fabian/scratch/monetdb/Oct2010/program-x86_64/lib/MonetDB5/bin"
--set
"gdk_dbfarm=/net/volund.ins.cwi.nl/export/scratch0/fabian/vtmp/mtest-Oct2010-volund.ins.cwi.nl/sql/dbfarm"
--set mapi_open=true --set xrpc_open=true --set mapi_port=34682 --set
xrpc_port=45449 --set monet_prompt= --trace --forcemito --set mal_listing=2
"--dbname=mTests_src_jdbc_tests" --set mal_listing=0 ; echo ; echo Over..
+# 10:38:37 >
+
+# MonetDB server v5.22.1, based on kernel v1.40.1
+# Release Oct2010-hg
+# Serving database 'mTests_src_jdbc_tests', using 4 threads
+# Compiled for x86_64-pc-linux-gnu/64bit with 64bit OIDs dynamically linked
+# Found 7.750 GiB available main-memory.
+# Copyright (c) 1993-July 2008 CWI.
+# Copyright (c) August 2008-2010 MonetDB B.V., all rights reserved
+# Visit http://monetdb.cwi.nl/ for further information
+# Listening for connection requests on mapi:monetdb://volund.ins.cwi.nl:34682/
+# MonetDB/SQL module v2.40.2 loaded
+
+Ready.
+# SQL catalog created, loading sql scripts once
+
+# 10:47:24 >
+# 10:47:24 > ./Test_PSlargeamount.SQL.sh Test_PSlargeamount
+# 10:47:24 >
+
+# 10:38:37 >
+# 10:38:37 > ./Test_PSlargeamount.SQL.sh Test_PSlargeamount
+# 10:38:37 >
+
+
+# 10:38:37 >
+# 10:38:37 > java Test_PSlargeamount
"jdbc:monetdb://volund:34682/mTests_src_jdbc_tests?user=monetdb&password=monetdb"
+# 10:38:37 >
+
+0. true true
+1. DatabaseMetadata environment retrieval...
jdbc:monetdb://localhost:39530/mTests_src_jdbc_tests
+2. Preparing and executing a unique statement
+0, true
+1000, true
+2000, true
+3000, true
+4000, true
+5000, true
+6000, true
+7000, true
+8000, true
+9000, true
+10000, true
+11000, true
+12000, true
+13000, true
+14000, true
+15000, true
+16000, true
+17000, true
+18000, true
+19000, true
+20000, true
+21000, true
+22000, true
+23000, true
+24000, true
+25000, true
+26000, true
+27000, true
+28000, true
+29000, true
+30000, true
+31000, true
+32000, true
+33000, true
+34000, true
+35000, true
+36000, true
+37000, true
+38000, true
+39000, true
+40000, true
+41000, true
+42000, true
+43000, true
+44000, true
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list