Contents
--------
There are two "projects" that are used for building locking and rstm
versions of stmbench7. Each one will produce it's own executable that
can be run with it's own set of command line switches.


Building
--------
To build projects first change directory and compiler paths in respective
Makefile.in files. Separate projects can be built my running "make" in
project's top directories. To be safe run "make clean" before any rebuild
of the benchmarks (there is some polishing of makefiles still needed).

Note: sb7_rstm depends on (patched) rstm_v3. The patch and instructions
for using it are kept in a separate archive.


Running
-------
Building will create executables in corresponding directories. Running any
executable with argument --help or -h will print usage explanation.

Command line parameters for rstm version are:
        --help (-?) - prints help
        --fileName (-f) <file_name> - sets options file name
        --readOnlyPercent (-p) <number> - set percent of read-only operations
        --workloadType (-w) r|rw|w - set workload type
        --traversals (-t) true|false - enable/disable long traversals
        --structuralModifications (-m) true|false - enable/disable structural modifications
        --threadNum (-n) <number> - set number of simultaneous threads 
        --contentionManager (-c) <contention_manager>  - set contention manager to use
        --validation (-d) <validation_approach>  - set validation approach to use
        --size (-s) s|m|b - set size of data structure


Example usage:

		./sb7_rstm -c Serializer -s b -n 5 -v vis-lazy -w r -d 20000 -t false

It will run sb7_rstm with serializer contention manager, on a big data
strucutre, with five concurrent threads, using visible readers and lazy
writers, running a read only workload for 20 seconds and without long
transactions.


Command line parameters for locking version are:
        --help (-?) - prints help
        --fileName (-f) <file_name> - sets options file name
        --readOnlyPercent (-p) <number> - set percent of read-only operations
        --workloadType (-w) r|rw|w - set workload type
        --traversals (-t) true|false - enable/disable long traversals
        --structuralModifications (-m) true|false - enable/disable structural modifications
        --threadNum (-n) <number> - set number of simultaneous threads 
        --size (-s) s|m|b - set size of data structure
        --lockType (-l) n|c|m|f - set locking type


Example usage:

		./sb7_lock -s b -l m -n 12 -w rw -d 120000

It will run sb7_lock on a big data structure, using medium grained locking,
with twelve concurrent threads, running a read/write workload for two minutes
with long traversals turned on.

Note: Fine grained locking is not implemented yet.

