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

Reply via email to