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
3842 Magnus Blåudd 2010-09-29 [merge]
Merge 7.0 -> 7.1
modified:
storage/ndb/include/mgmapi/mgmapi.h
storage/ndb/include/ndb_version.h.in
storage/ndb/src/mgmapi/mgmapi.cpp
storage/ndb/src/mgmclient/CommandInterpreter.cpp
storage/ndb/src/mgmsrv/Services.cpp
storage/ndb/test/include/NdbRestarter.hpp
storage/ndb/test/ndbapi/testNodeRestart.cpp
storage/ndb/test/run-test/daily-basic-tests.txt
storage/ndb/test/src/NdbRestarter.cpp
=== 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@bk-internal.mysql.com/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 push into mysql-5.1-telco-7.1 branch (martin.zaun:3842 to 3843) | Martin Zaun | 29 Sep |