List:Commits« Previous MessageNext Message »
From:Martin Zaun Date:September 29 2010 10:07am
Subject:bzr commit into mysql-5.1-telco-7.1 branch (martin.zaun:3843)
View as plain text  
#At file:///home/md/mysql/ndb-7.1/ based on revid:magnus.blaudd@stripped

 3843 Martin Zaun	2010-09-29 [merge]
      crund - minor improvements

    removed:
      storage/ndb/test/crund/tws_benchmark/run.properties
    added:
      storage/ndb/test/crund/tws_benchmark/run.properties.sample
    modified:
      .bzrignore
      storage/ndb/test/crund/INSTALL.txt
      storage/ndb/test/crund/Makefile.defaults
      storage/ndb/test/crund/README.txt
      storage/ndb/test/crund/TODO.txt
      storage/ndb/test/crund/config_samples/env.properties
      storage/ndb/test/crund/martins_little_helpers/README.txt
      storage/ndb/test/crund/martins_little_helpers/src/utils/Makefile
      storage/ndb/test/crund/martins_little_helpers/src/utils/Properties_test.cpp
      storage/ndb/test/crund/src/crundndb/Operations.cpp
      storage/ndb/test/crund/tws_benchmark/README.txt
      storage/ndb/test/crund/tws_benchmark/nbproject/configs_sample/server-dbg.properties
      storage/ndb/test/crund/tws_benchmark/nbproject/configs_sample/server-opt.properties
      storage/ndb/test/crund/tws_benchmark/nbproject/private_sample/config.properties
      storage/ndb/test/crund/tws_benchmark/nbproject/private_sample/private.properties
=== modified file '.bzrignore'
--- a/.bzrignore	2010-09-27 05:58:05 +0000
+++ b/.bzrignore	2010-09-29 10:02:15 +0000
@@ -3119,9 +3119,12 @@ storage/ndb/src/ndbjtie/jtie/test/myapi/
 storage/ndb/clusterj/**/*MANIFEST.MF
 storage/ndb/clusterj/**/*manifest.mf
 storage/ndb/test/crund/*.cnf
-storage/ndb/test/crund/*.ini
+storage/ndb/test/crund/*.ini*
 storage/ndb/test/crund/*.properties
-storage/ndb/test/crund/lib
+storage/ndb/test/crund/build/
+storage/ndb/test/crund/javadoc/
+storage/ndb/test/crund/lib/
+storage/ndb/test/crund/log*
 storage/ndb/test/crund/martins_little_helpers/src/utils/Properties_test
 storage/ndb/test/crund/martins_little_helpers/src/utils/hrt_stopwatch_test
 storage/ndb/test/crund/martins_little_helpers/src/utils/hrt_utils_test
@@ -3130,8 +3133,11 @@ storage/ndb/test/crund/martins_little_he
 storage/ndb/test/crund/scripts/ndblog
 storage/ndb/test/crund/scripts/results
 storage/ndb/test/crund/src/crundndb/Driver
+storage/ndb/test/crund/src/crundndb/com_mysql_cluster_crund_NdbApiLoad.h
 storage/ndb/test/crund/tws_benchmark/build/
 storage/ndb/test/crund/tws_benchmark/nbproject/configs/
 storage/ndb/test/crund/tws_benchmark/nbproject/private/
+storage/ndb/test/crund/tws_benchmark/run.properties
+
 libmysqld/examples/mysqltest.cc
 libmysqld/debug_sync.cc

=== modified file 'storage/ndb/test/crund/INSTALL.txt'
--- a/storage/ndb/test/crund/INSTALL.txt	2010-02-25 15:00:17 +0000
+++ b/storage/ndb/test/crund/INSTALL.txt	2010-09-29 10:02:15 +0000
@@ -2,21 +2,18 @@
 How to Install, Configure, and Run the CRUND Benchmark
 ======================================================
 
-Checkout CRUND from
-  bzr+ssh://mzaun@stripped/bzrroot/clusterj
-
 The benchmark consists of a generic Driver and multiple "*Load" classes,
 which implement the benchmark's operations against different persistence
 APIs and database.
 
-Depending upon the database APIs to be benchmarked by CRUND, external
-software needs to be downloaded, installed, and configured in CRUND.
+Depending upon which database APIs are to be benchmarked with CRUND, some
+external software may need to be downloaded, installed, and configured.
 
 
 0) Software Dependencies
 
-    Depending upon the target to build or to run, these 3rd party software
-    dependencies needs to be satisfied [versions known to work]:
+    These 3rd party software dependencies need to be satisfied for the
+    respective CRUND targets [in brackets, versions known to work]:
 
  Action         Target                  Dependencies
 -------------------------------------------------------------------------------
@@ -54,20 +51,14 @@ software needs to be downloaded, install
 -------------------------------------------------------------------------------
 
 
-    For example, the dependencies may reside in a local lib/ directory:
-
+    For example, put dependencies into a local lib/ directory:
       commons-collections-3.2.jar
       commons-lang-2.1.jar
       commons-pool-1.3.jar
       derby-10.5.1.1.jar
       derbytools-10.5.1.1.jar
-      eclipselink-1.1.2.v20090612-r4475.jar
       geronimo-jpa_3.0_spec-1.0.jar
       geronimo-jta_1.1_spec-1.1.jar
-      javax.persistence_1.0.0.v200905011740.jar
-      javax.persistence_1.99.0.v200906021518.jar
-      jdo2-api-2.1.1.jar
-      junit-4.8.1.jar
       mysql-connector-java-5.1.11-bin.jar
       openjpa-1.2.2.jar
       serp-1.13.1.jar
@@ -75,41 +66,32 @@ software needs to be downloaded, install
 
 1) Configure CRUND
 
-    Create the configuration files (*.properties, *.cnf, and *.ini) from
-    their respective files in ./config_sample:
-
+    Copy the sample configuration files (*.properties, *.cnf, and *.ini)
         $ cp -v config_samples/* .
         config_samples/config.ini -> ./config.ini
         config_samples/crundClusterj.properties -> ./crundClusterj.properties
-        config_samples/crundDerby.properties -> ./crundDerby.properties
         config_samples/crundMysql.properties -> ./crundMysql.properties
         config_samples/crundNdbapi.properties -> ./crundNdbapi.properties
-        config_samples/crundNdbj.properties -> ./crundNdbj.properties
         config_samples/crundNdbjtie.properties -> ./crundNdbjtie.properties
         config_samples/crundOpenjpaClusterj.properties -> ./crundOpenjpaClusterj.properties
-        config_samples/crundOpenjpaDerby.properties -> ./crundOpenjpaDerby.properties
         config_samples/crundOpenjpaMysql.properties -> ./crundOpenjpaMysql.properties
         config_samples/crundRun.properties -> ./crundRun.properties
         config_samples/env.properties -> ./env.properties
         config_samples/my.cnf -> ./my.cnf
 
-    All of CRUND's external software dependencies are declared in this file
-    along with additional information for downloading and installing:
+    Edit the file
         ./env.properties
+    for all the paths to CRUND's external software dependencies.
 
-    Please
-    - check this file for the software required by a configuration and
-    - edit the required properties for the location of the software 
+    Edit the other *.properties, *.cnf, and *.ini files for cluster setup
+    and benchmark run parameters.
 
 
 2) Build "Martin's Little Helpers" Utilities
 
     (Only needed if building/running NdbApiLoad or using 'make', see below)
 
-    These utilities classes are located in the local directory and need to
-    be build once:
-
-    - check file README.txt in the subdirectory and run
+    See file README.txt in the subdirectory and run
         $ cd martins_little_helpers/
         $ make dep
         $ make opt
@@ -117,55 +99,48 @@ software needs to be downloaded, install
 
 3) Build CRUND
 
-3.1) Build the Java classes using Ant
+3.1) Build the Java classes using Ant (for better diagnostics)
 
-    Ant is used to build the Java Driver and *Load classes from CRUND's
-    main directory:
+    Ant is used to build the Java Driver and *Load classes.
 
     For an overview of the supported targets:
-
         $ ant help
 
     Specific build targets:
-
         $ ant compile.ndbapi
         $ ant compile.ndbjtie
         $ ant compile.clusterj
         $ ant compile.jdbc
         $ ant compile.jpa
-        $ ant compile.ndbj
-        $ ant compile
+        $ ant compile             // builds all of above
 
-    The last target builds all.  There are additional *.opt targets to
-    build optimized versions of these classes (but typically for Java,
-    their performance difference can be neglected).
+    Additional compile.*.opt targets build optimized versions of the
+    classes (but typically, the performance difference can be neglected).
 
-    The other, standard Ant targets are:
+    Other standard Ant targets:
         $ ant javadoc
         $ ant clean
         $ ant clobber
+        $ ant distclean
 
-3.2) Build all C++ classes (and Java classes) using Make
+3.2) Build all C++ binaries and Java classes using Make
 
     For an overview of the supported targets:
-
         $ make help
 
-    For convenience, both, all Java and C++ objects, can be built from a
-    single command using these global Make targets:
-
-    - run once (to build the .depend files):
+    Run once
         $ make dep
+    to build the .depend files.
 
-    - followed by either of (builds debug v optimized version):
+    Then run either of
         $ make dbg
         $ make opt
+    to build debug or optimized binaries and classes.
 
-    To build only the C++ classes (i.e., the C++ Driver and the JNI classes
-    for NdbapiLoad), the same make targets are used but from this directory
+    To build only the C++ classes run these make targets from subdirectory
         $ cd src/crundndb/
 
-    To delete temporary, logging, and also database files, run one of
+    To delete all temporary, +logging, +database files run
         $ make clean
         $ make clobber
         $ make distclean
@@ -175,47 +150,44 @@ software needs to be downloaded, install
 
 4.1) MySQL
 
-    CRUND's database schema file is:
+    CRUND's and TWS's schema file:
         ./src/tables_mysql.sql
+        ./tws_benchmark/schema.sql
 
-    Start the cluster and load the schema:
-        $ ./start_cluster.sh
-        $ ./load_shema.sh 
-
-    The startup script runs the MySQL Server and NDB node(s) with these
-    configuration files (on the reserved default ports of MySQL and NDB):
+    Edit these configuration files if using the convenience scripts below:
         ./config.ini
         ./my.cnf
 
-    By default, the nodes log and data files are written to local files:
-        ./ndblog/
-        ./mysqld.log.err
-
-    To shutdown or restart the cluster:
+    Convenience scripts to start/stop the cluster or to load the schema:
+        $ cd ./scripts
+        $ ./start_cluster.sh
         $ ./restart_cluster.sh 
+        $ ./load_shema.sh 
         $ ./stop_cluster.sh 
 
-4.2) Apache Derby
+    By default, log and data files are written to:
+        ./scripts/ndblog/mysqld.log.err
+        ./scripts/ndblog/
+
+4.2) Apache Derby (Optional)
 
-    CRUND's database schema file is:
+    CRUND's database schema file:
         ./src/tables_derby.sql
 
     This Ant target loads the schema:
         $ ant load.schema.derby
 
-    (If Derby is to be used in embedded mode, there's no need to start the
-    database network server.)
+    (Derby can be used in embedded or network server mode.)
 
 
 5) Run CRUND
 
 5.1) Configure a benchmark run
 
-    Configure the benchmark's dataset size and number of iterations in:
+    Configure the benchmark's dataset size and number of iterations in
         ./crundRun.properties
 
-    The load-specific connection information and settings are configured by
-    these local properties files:
+    Edit any load-specific connection and run settings:
         ./crundNdbapi.properties
         ./crundNdbjtie.properties
         ./crundClusterj.properties
@@ -227,8 +199,7 @@ software needs to be downloaded, install
 
 5.2) Run the benchmark
 
-    Run the benchmark's Java driver with the respective *Load class by:
-
+    Run the benchmark's Java driver on the respective *Load classes:
         $ ant run.ndbapi
         $ ant run.ndbjtie
         $ ant run.clusterj
@@ -239,19 +210,17 @@ software needs to be downloaded, install
         $ ant run.derby
         $ ant run.openjpa.derby
 
-    Another option is to start the Load classes directly and provide the
-    run properties as multiple arguments to the main() method, e.g.:
-
+    Or start the Load classes directly with run properties as arguments
+    to the main() method:
         $ java -classpath=... com.mysql.cluster.crund.JdbcLoad \
                 -p crundRun.properties \
                 -p crundMysql.properties
 
-    (The run.* targets print the correct classpath settings at start.)
+    (Check for correct classpath/libpath printed by the run.* targets.)
 
 5.3) Inspect the result files
 
-    CRUND writes the measured time (and/or memory) values into a local log
-    file of name
+    CRUND writes all measured time/memory values into a local log file:
         ./log_<dtate>_<time>.txt
 
     The data format is a tab-separated list, which can be easily imported
@@ -259,18 +228,14 @@ software needs to be downloaded, install
 
 5.4) Automate Benchmark runs
 
-     Runs the Java/C++ driver with a *Load class and saves all log files:
+     Run the Java/C++ driver on a *Load class and save the log files:
+        $ cd ./scripts
         $ ./mytest.sh
         $ ./mytestcxx.sh
 
-     Runs the Java driver with multiple *Load class:
+     Runs the Java driver on multiple *Load classes:
         $ ./mytests.sh
 
-Questions or comments appreciated: dev-ndb-connectors@stripped
-
-Martin Zaun
-martin.zaun@stripped
-
 
 Hints for troubleshooting:
 

=== modified file 'storage/ndb/test/crund/Makefile.defaults'
--- a/storage/ndb/test/crund/Makefile.defaults	2010-09-27 05:31:17 +0000
+++ b/storage/ndb/test/crund/Makefile.defaults	2010-09-29 10:02:15 +0000
@@ -28,7 +28,7 @@
 # plain cc, debug:
 #  CFLAGS	= -g -DDEBUG
 # gnu gcc, general: -pedantic -ansi -std=c89 -std=c99 -std=gnu89 -std=gnu99
-  CFLAGS.gen	= -Wall -m64
+  CFLAGS.gen	= -Wall
 # gnu gcc, default:
   CFLAGS	= $(CFLAGS.gen) -g -O
 # gnu gcc, debug:
@@ -58,7 +58,7 @@
 #   -Woverloaded-virtual
 #      Unfortunately, too many warnings from NDB includes
   CXXFLAGS.gen	= -ansi -Wall -Wstrict-null-sentinel \
-		  -Wsign-promo -m64
+		  -Wsign-promo
 # gnu g++, default:
   CXXFLAGS	= $(CXXFLAGS.gen) -g -O
   CXXFLAGS.dbg	= $(CXXFLAGS.gen) -g -DDEBUG

=== modified file 'storage/ndb/test/crund/README.txt'
--- a/storage/ndb/test/crund/README.txt	2010-02-14 05:05:31 +0000
+++ b/storage/ndb/test/crund/README.txt	2010-09-29 10:03:03 +0000
@@ -1,31 +1,28 @@
 
 CRUND
-=====
+-----
 
-A benchmark that measures the performance of standard database operations
-asgainst different MySQL Cluster client APIs.
+A benchmark that measures the performance of MySQL Server/Cluster APIs for
+basic database operations.
 
 The database operations are variations of: Creates, Reads, Updates,
-Navigates, and Deletes -- hence, the benchmark's name: CRUND.
+Navigates, and Deletes ("CRUND").
 
-The MySQL Cluster client APIs tested by the benchmark are:
-- NDB API
-- NDB JTie
+The MySQL Cluster client APIs currently tested by the benchmark are:
+- NDB API (C++)
+- NDB JTie (Java)
 - Cluster/J
 - JDBC (MySQL Server)
 - OpenJPA on JDBC (MySQL Server)
 - OpenJPA on ClusterJ and JDBC (MySQL Server)
-[- ndb-bindings/java (henceforth referred to as NDB/J in this benchmark)]
+[- ndb-bindings/java (referred to as NDB/J in this benchmark)]
 [- JDBC (Apache Derby)]
 [- OpenJPA on JDBC (Apache Derby)]
 
-Please, read the file INSTALL.txt for instructions on how to build,
-configure, and run the CRUND benchmark.
+See INSTALL.txt for how to build, configure, and run the CRUND benchmark.
 
-Questions or comments appreciated: dev-ndb-connectors@stripped
+Comments or questions appreciated: martin.zaun@stripped
 
-Martin Zaun
-martin.zaun@stripped
 
 Urban Dictionary: "crund"
 * used to debase people who torture others with their illogical attempts to
@@ -34,3 +31,14 @@ Urban Dictionary: "crund"
 * a dance form;
 * to hit hard or smash. 
 http://www.urbandictionary.com/define.php?term=crund
+
+
+TWS (Table With Strings)
+------------------------
+
+A self-contained benchmark that measures the performance of selected MySQL
+Server/Cluster APIs for basic operations on a string/varchar-based schema.
+
+See file tws_benchmark/README.txt for how to build and run the benchmark.
+
+This benchmark is standalone and not yet integrated into CRUND.

=== modified file 'storage/ndb/test/crund/TODO.txt'
--- a/storage/ndb/test/crund/TODO.txt	2010-02-14 05:05:31 +0000
+++ b/storage/ndb/test/crund/TODO.txt	2010-09-29 10:02:15 +0000
@@ -13,8 +13,6 @@
 
     + navA->B0: do not find the As
 
-*** check in CRUND to ClusterJ repository
-
 *** Operations.cpp: remove #ifndef NDEBUG... to ensure consistent
     result verifications across all operations and backends
 

=== modified file 'storage/ndb/test/crund/config_samples/env.properties'
--- a/storage/ndb/test/crund/config_samples/env.properties	2010-09-27 05:58:05 +0000
+++ b/storage/ndb/test/crund/config_samples/env.properties	2010-09-29 10:02:15 +0000
@@ -1,4 +1,15 @@
+# Common Configuration File included by Ant, Makefile, and Shell Scripts
+
+# ----------------------------------------------------------------------
+
+#
+# The User's Home Directory
+#
+
+# Must be set & valid if used in any of the path defs below
+
 HOME=/Users/mz
+#HOME=/home/md
 
 # ----------------------------------------------------------------------
 
@@ -9,10 +20,16 @@ HOME=/Users/mz
 # Must be set & valid for running Cluster
 
 # no quotes (interpreted by ant):
+#MYSQL_HOME=${HOME}/mysql/bin-7.1-opt32
+#MYSQL_HOME=${HOME}/mysql/bin-7.1-dbg32
 MYSQL_HOME=${HOME}/mysql/bin-7.1-opt64
 #MYSQL_HOME=${HOME}/mysql/bin-7.1-dbg64
 #MYSQL_HOME="${HOME}/bin/mysql-cluster-gpl-6.3.20"
 
+# must match architecture of MYSQL_HOME
+TARGET_ARCH=-m64
+#TARGET_ARCH=-m32
+
 MYSQL_BIN="$MYSQL_HOME/bin"
 MYSQL_LIBEXEC="$MYSQL_HOME/libexec"
 
@@ -31,8 +48,8 @@ MYSQL_LIBEXEC="$MYSQL_HOME/libexec"
 # - Martin's Little Helpers utilities (see below)
 
 #JAVA_INCLUDEOPTS=-I"/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Headers"
-JAVA_INCLUDEOPTS=-I"/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Headers"
-#JAVA_INCLUDEOPTS=-I"/usr/lib/jvm/java-6-sun/include" -I"/usr/lib/jvm/java-6-sun/include/linux"
+#JAVA_INCLUDEOPTS=-I"/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Headers"
+JAVA_INCLUDEOPTS=-I"/usr/lib/jvm/java-6-sun/include" -I"/usr/lib/jvm/java-6-sun/include/linux"
 
 # Comments:
 #
@@ -177,7 +194,7 @@ COMMONS_POOL_JAR=${HOME}/mysql/lib/commo
 #     http://openjpa.apache.org/downloads.html
 
 # ----------------------------------------------------------------------
-# Not needed anymore:
+# The Following are Obsolete:
 # ----------------------------------------------------------------------
 
 #
@@ -234,6 +251,5 @@ DERBYTOOLS_JAR=${HOME}/mysql/lib/derbyto
 # - get from here:
 #   http://db.apache.org/derby/
 
-
 # ----------------------------------------------------------------------
 

=== modified file 'storage/ndb/test/crund/martins_little_helpers/README.txt'
--- a/storage/ndb/test/crund/martins_little_helpers/README.txt	2010-02-14 05:05:31 +0000
+++ b/storage/ndb/test/crund/martins_little_helpers/README.txt	2010-09-29 10:02:15 +0000
@@ -6,13 +6,16 @@ A collection of C++ utility classes and 
 
 Sources and libs are currently all in src/utils :
 
-- helpers.hpp           tracing and debugging macros
-- string_helpers.hpp    some string convenience functions
-- Properties.hpp        C++ implementation of java.util.Properties
+- helpers.hpp           some tracing and debugging macros
+- string_helpers.hpp    a few string convenience functions
+- Properties.hpp        a C++ implementation of java.util.Properties
+
 - hrt_utils.h           high-resolution time measurement utilities
 - hrt_stopwatch.h       high-resolution time stopwatch utility
 - hrt_gstopwatch.h      a global (=singleton) high-resolution time stopwatch
+
 - HrtStopwatch.java     a Java high-resolution time stopwatch utility
+- HrtProfiler.java	a crude utility for manual Java code instrumentation
 
 
 How to Install:
@@ -42,13 +45,14 @@ How to Install:
                  -DHRT_REALTIME_METHOD=HRT_USE_GETTIMEOFDAY \
                  -DHRT_CPUTIME_METHOD=HRT_USE_GETRUSAGE \
 
-    Linux (can try compiling with these methods for higher resolution!):
+    Linux (try compiling with these methods for higher clock resolution):
     DDEFINES    = \
                  -DHRT_REALTIME_METHOD=HRT_USE_CLOCK_GETTIME \
                  -DHRT_CPUTIME_METHOD=HRT_USE_CLOCK_GETTIME \
 
     LDLIBS	= -lrt
 
+
 3) Build the library
 
     Run once:
@@ -70,7 +74,4 @@ How to Install:
         $ make run.HrtStopwatchTest
 
 
-Questions or comments appreciated: dev-ndb-connectors@stripped
-
-Martin Zaun
-martin.zaun@stripped
+Comments or questions appreciated: martin.zaun@stripped

=== modified file 'storage/ndb/test/crund/martins_little_helpers/src/utils/Makefile'
--- a/storage/ndb/test/crund/martins_little_helpers/src/utils/Makefile	2010-09-27 05:31:17 +0000
+++ b/storage/ndb/test/crund/martins_little_helpers/src/utils/Makefile	2010-09-29 10:02:15 +0000
@@ -17,10 +17,8 @@ include	../../../env.properties
 #		 -DHRT_CPUTIME_METHOD=HRT_USE_GETRUSAGE \
 
   DDEFINES 	= \
-		 -DHRT_REALTIME_METHOD=HRT_USE_GETTIMEOFDAY \
-		 -DHRT_CPUTIME_METHOD=HRT_USE_GETRUSAGE \
-		 #-DHRT_REALTIME_METHOD=HRT_USE_CLOCK_GETTIME \
-		 #-DHRT_CPUTIME_METHOD=HRT_USE_CLOCK_GETTIME \
+		 -DHRT_REALTIME_METHOD=HRT_USE_CLOCK_GETTIME \
+		 -DHRT_CPUTIME_METHOD=HRT_USE_CLOCK_GETTIME \
 		 #-DHRT_REALTIME_METHOD=HRT_USE_GETTIMEOFDAY \
 		 #-DHRT_CPUTIME_METHOD=HRT_USE_GETRUSAGE \
 		 #-DHRT_REALTIME_METHOD=HRT_USE_TIMES \
@@ -68,8 +66,8 @@ include	../../../env.properties
 #   LOADLIBES for libs for the individual case
 # check with non-gnu makes: use of LOADLIBES, LDLIBS
 # CLOCK_GETTIME requires -lrt
-  LDLIBS	=
-#  LDLIBS	= -lrt
+#  LDLIBS	=
+  LDLIBS	= -lrt
 
 #------------------------------------------------------------------------------
 

=== modified file 'storage/ndb/test/crund/martins_little_helpers/src/utils/Properties_test.cpp'
--- a/storage/ndb/test/crund/martins_little_helpers/src/utils/Properties_test.cpp	2010-02-14 05:05:31 +0000
+++ b/storage/ndb/test/crund/martins_little_helpers/src/utils/Properties_test.cpp	2010-09-29 10:02:15 +0000
@@ -5,6 +5,7 @@
 
 #include <sstream>
 #include <cassert>
+#include <cstdlib>
 
 #include "Properties.hpp"
 
@@ -152,7 +153,7 @@ exitUsage()
          << "    -p <file name>         properties file name" << endl
          << "    -h|--help              print usage message and exit" << endl
          << endl;
-    exit(1); // return an error code
+    exit(EXIT_FAILURE);
 }
 
 int

=== modified file 'storage/ndb/test/crund/src/crundndb/Operations.cpp'
--- a/storage/ndb/test/crund/src/crundndb/Operations.cpp	2010-02-14 05:05:31 +0000
+++ b/storage/ndb/test/crund/src/crundndb/Operations.cpp	2010-09-29 10:02:15 +0000
@@ -9,6 +9,7 @@
 #include <vector>
 #include <algorithm>
 #include <cstring>
+#include <cstdio>
 
 #include <NdbApi.hpp>
 #include <NdbError.hpp>

=== modified file 'storage/ndb/test/crund/tws_benchmark/README.txt'
--- a/storage/ndb/test/crund/tws_benchmark/README.txt	2010-09-27 05:58:05 +0000
+++ b/storage/ndb/test/crund/tws_benchmark/README.txt	2010-09-29 10:02:15 +0000
@@ -1,22 +1,77 @@
-----------------------------------------------------------------------
-TODO: write how to build, run, profile
-----------------------------------------------------------------------
 
-Some ant targets:
+TWS (Table With Strings)
+------------------------
 
-    <target name="default" depends="test,jar,javadoc" description="Build and test whole project."/>
+A self-contained benchmark that measures the performance of selected MySQL
+Server/Cluster APIs for basic operations on a string/varchar-based schema.
 
-    <target name="compile" depends="init,deps-jar,-verify-automatic-build,-pre-pre-compile,-pre-compile,-do-compile,-post-compile" description="Compile project."/>
+This benchmark is standalone and not yet integrated into CRUND.
 
-    <target name="run" depends="init,compile" description="Run a main class.">
+Questions or comments appreciated: martin.zaun@stripped
 
-    <target name="clean" depends="init,deps-clean,-do-clean,-post-clean" description="Clean build products."/>
 
-    <target name="jar" depends="init,compile,-pre-jar,-do-jar-with-manifest,-do-jar-without-manifest,-do-jar-with-mainclass,-do-jar-with-libraries-and-splashscreen,-do-jar-with-libraries,-post-jar" description="Build JAR."/>
+How to Build, Run, and Profile TWS
+----------------------------------
 
-    <target name="javadoc" depends="init,-javadoc-build,-javadoc-browse" description="Build Javadoc."/>
+The benchmark is built and run by Ant scripts (generated from Netbeans).
 
-    <target name="deps-jar" depends="init,-deps-jar-init" unless="no.deps">
+0) Configure TWS Properties
 
-    <target name="deps-clean" depends="init,-deps-clean-init" unless="no.deps">
-----------------------------------------------------------------------
+    The benchmark is built and run by Ant scripts (originally, generated
+    from Netbeans).
+
+    Copy the configuration sample files
+        $ cd ./nbproject
+
+        $ cp -vr configs_sample configs
+        configs_sample -> configs
+        configs_sample/server-dbg.properties -> configs/server-dbg.properties
+        configs_sample/server-opt.properties -> configs/server-opt.properties
+
+        $ cp -vr private_sample private
+        private_sample -> private
+        private_sample/config.properties -> private/config.properties
+        private_sample/private.xml -> private/private.xml
+        private_sample/profiler -> private/profiler
+        private_sample/profiler/configurations.xml -> private/profiler/configurations.xml
+        private_sample/private.properties -> private/private.properties
+
+    Edit the files
+        ./configs/server-dbg.properties
+        ./configs/server-opt.properties
+        ./private/private.properties
+    for the paths to TWS's external software dependencies.
+
+    Edit the file
+        ./private/config.properties
+    to select the JVM run configuration (debug/optimized settings).
+
+
+1) Build TWS
+
+    Standard project targets:
+        $ ant default
+        $ ant compile
+        $ ant clean
+        $ ant jar
+        $ ant javadoc
+        $ ant deps-jar
+        $ ant deps-clean
+
+
+2) Run TWS
+
+    Start the Cluster and load the schema (see ../scripts/)
+        ./schema.sql
+
+    Copy the run configuration sample file
+        $ cp -v run.properties.sample run.properties
+        run.properties.sample -> run.properties
+
+    Edit the file for the benchmark settings
+        ./run.properties
+
+    Run (and Profiling?) targets:
+        $ ant run
+
+    All the benchmark's data output is to stdout, at this time.

=== modified file 'storage/ndb/test/crund/tws_benchmark/nbproject/configs_sample/server-dbg.properties'
--- a/storage/ndb/test/crund/tws_benchmark/nbproject/configs_sample/server-dbg.properties	2010-09-27 05:58:05 +0000
+++ b/storage/ndb/test/crund/tws_benchmark/nbproject/configs_sample/server-dbg.properties	2010-09-29 09:09:26 +0000
@@ -1,2 +1,2 @@
 run.jvmargs=-server -Xms512m -Xmx512m -ea -Djava.library.path="/Users/mz/mysql/bin-7.1-dbg64/lib/mysql"
-
+#run.jvmargs=-server -Xms512m -Xmx512m -ea -Djava.library.path="/home/md/mysql/bin-7.1-opt32/lib/mysql"

=== modified file 'storage/ndb/test/crund/tws_benchmark/nbproject/configs_sample/server-opt.properties'
--- a/storage/ndb/test/crund/tws_benchmark/nbproject/configs_sample/server-opt.properties	2010-09-27 05:58:05 +0000
+++ b/storage/ndb/test/crund/tws_benchmark/nbproject/configs_sample/server-opt.properties	2010-09-29 09:09:26 +0000
@@ -1 +1,2 @@
 run.jvmargs=-server -Xms512m -Xmx512m -da -Djava.library.path="/Users/mz/mysql/bin-7.1-opt64/lib/mysql"
+#run.jvmargs=-server -Xms512m -Xmx512m -da -Djava.library.path="/home/md/mysql/bin-7.1-opt32/lib/mysql"

=== modified file 'storage/ndb/test/crund/tws_benchmark/nbproject/private_sample/config.properties'
--- a/storage/ndb/test/crund/tws_benchmark/nbproject/private_sample/config.properties	2010-09-27 05:58:05 +0000
+++ b/storage/ndb/test/crund/tws_benchmark/nbproject/private_sample/config.properties	2010-09-29 09:09:26 +0000
@@ -1 +1,2 @@
 config=server-opt
+#config=server-dbg

=== modified file 'storage/ndb/test/crund/tws_benchmark/nbproject/private_sample/private.properties'
--- a/storage/ndb/test/crund/tws_benchmark/nbproject/private_sample/private.properties	2010-09-27 05:58:05 +0000
+++ b/storage/ndb/test/crund/tws_benchmark/nbproject/private_sample/private.properties	2010-09-29 09:09:26 +0000
@@ -2,10 +2,11 @@ compile.on.save=true
 do.depend=false
 do.jar=true
 file.reference.clusterj-api.jar=/Users/mz/mysql/bin-7.1-opt64/share/mysql/java/clusterj-api.jar
+#file.reference.clusterj-api.jar=/home/md/mysql/bin-7.1-opt32/share/mysql/java/clusterj-api.jar
 file.reference.clusterj.jar=/Users/mz/mysql/bin-7.1-opt64/share/mysql/java/clusterj.jar
-#file.reference.clusterj-api.jar=/Users/mz/mysql/bin-7.1-opt64/share/mysql/java/clusterj-api.jar
-#file.reference.clusterj.jar=/Users/mz/mysql/bin-7.1-opt64/share/mysql/java/clusterj.jar
+#file.reference.clusterj.jar=/home/md/mysql/bin-7.1-opt32/share/mysql/java/clusterj.jar
 file.reference.mysql-connector-java-5.1.11-bin.jar=/Users/mz/mysql/lib/mysql-connector-java-5.1.11-bin.jar
+#file.reference.mysql-connector-java-5.1.11-bin.jar=/home/md/mysql/lib/mysql-connector-java-5.1.11-bin.jar
 javac.debug=true
 javadoc.preview=true
 user.properties.file=/Users/mz/.netbeans/6.9/build.properties

=== removed file 'storage/ndb/test/crund/tws_benchmark/run.properties'
--- a/storage/ndb/test/crund/tws_benchmark/run.properties	2010-09-27 05:58:05 +0000
+++ b/storage/ndb/test/crund/tws_benchmark/run.properties	1970-01-01 00:00:00 +0000
@@ -1,58 +0,0 @@
-# benchmark settings
-#doJdbc=true
-#doClusterj=true
-doNdbjtie=true
-doInsert=true
-doLookup=true
-doUpdate=true
-doDelete=true
-doSingle=true
-doBulk=true
-doBatch=true
-
-# nRows >= 40000
-#   jdbc bulk: 1217 'Out of operation records in local data manager
-#   (increase MaxNoOfLocalOperations)' from NDBCLUSTER
-#
-# nRows >= 500
-#   ndbjtie batch: ndb-7.1.8 revno 3782 crashes with node failure during
-#   clusterj single/bulk: ndb-7.1.8 revno 3782 crashes with node failure during
-#nRows=16000
-#nRows=4000
-nRows=1000
-#nRows=500
-#nRows=250
-
-#nRuns=10000
-#nRuns=50
-#nRuns=25
-#nRuns=10
-nRuns=5
-#nRuns=1
-
-# JDBC - MySQL settings
-jdbc.url=jdbc:mysql://localhost/testdb
-jdbc.driver=com.mysql.jdbc.Driver
-jdbc.user=root
-jdbc.password=
-
-# ClusterJ settings
-com.mysql.clusterj.connectstring=localhost:1186
-com.mysql.clusterj.database=testdb
-com.mysql.clusterj.connect.retries=4
-com.mysql.clusterj.connect.delay=5
-com.mysql.clusterj.connect.verbose=1
-com.mysql.clusterj.connect.timeout.before=30
-com.mysql.clusterj.connect.timeout.after=20
-com.mysql.clusterj.max.transactions=1024
-
-com.mysql.clusterj.bindings.level=INFO
-com.mysql.clusterj.core.level=INFO
-com.mysql.clusterj.core.metadata.level=INFO
-com.mysql.clusterj.core.query.level=INFO
-com.mysql.clusterj.core.util.level=INFO
-com.mysql.clusterj.tie.level=INFO
-#handlers=java.util.logging.FileHandler
-#java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter
-#java.util.logging.FileHandler.level=FINEST
-#java.util.logging.FileHandler.pattern=./target/log%u 
\ No newline at end of file

=== added file 'storage/ndb/test/crund/tws_benchmark/run.properties.sample'
--- a/storage/ndb/test/crund/tws_benchmark/run.properties.sample	1970-01-01 00:00:00 +0000
+++ b/storage/ndb/test/crund/tws_benchmark/run.properties.sample	2010-09-29 10:02:15 +0000
@@ -0,0 +1,59 @@
+# benchmark settings
+doJdbc=true
+doClusterj=true
+doNdbjtie=true
+doInsert=true
+doLookup=true
+doUpdate=true
+doDelete=true
+doSingle=true
+doBulk=true
+doBatch=true
+
+# nRows >= 40000
+#   jdbc bulk: 1217 'Out of operation records in local data manager
+#   (increase MaxNoOfLocalOperations)' from NDBCLUSTER
+#
+# nRows >= 500
+#   ndbjtie batch: ndb-7.1.8 revno 3782 crashes with node failure during
+#   clusterj single/bulk: ndb-7.1.8 revno 3782 crashes with node failure during
+#nRows=16000
+#nRows=4000
+#nRows=1000
+#nRows=500
+nRows=250
+
+#nRuns=10000
+#nRuns=1000
+#nRuns=100
+#nRuns=25
+nRuns=10
+#nRuns=5
+#nRuns=1
+
+# JDBC - MySQL settings
+jdbc.url=jdbc:mysql://localhost/testdb
+jdbc.driver=com.mysql.jdbc.Driver
+jdbc.user=root
+jdbc.password=
+
+# ClusterJ settings
+com.mysql.clusterj.connectstring=localhost:1186
+com.mysql.clusterj.database=testdb
+com.mysql.clusterj.connect.retries=4
+com.mysql.clusterj.connect.delay=5
+com.mysql.clusterj.connect.verbose=1
+com.mysql.clusterj.connect.timeout.before=30
+com.mysql.clusterj.connect.timeout.after=20
+com.mysql.clusterj.max.transactions=1024
+
+com.mysql.clusterj.bindings.level=INFO
+com.mysql.clusterj.core.level=INFO
+com.mysql.clusterj.core.metadata.level=INFO
+com.mysql.clusterj.core.query.level=INFO
+com.mysql.clusterj.core.util.level=INFO
+com.mysql.clusterj.tie.level=INFO
+#handlers=java.util.logging.FileHandler
+#java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter
+#java.util.logging.FileHandler.level=FINEST
+#java.util.logging.FileHandler.pattern=./target/log%u 
\ No newline at end of file


Attachment: [text/bzr-bundle] bzr/martin.zaun@oracle.com-20100929100740-hdyskhs16mv7z3wp.bundle
Thread
bzr commit into mysql-5.1-telco-7.1 branch (martin.zaun:3843) Martin Zaun29 Sep