What is DBMonster?
DBMonster is a tool which helps database application developers with tuning
the structure of the database, tuning the usage of indexes, and testing the
application performance under heavy database load. DBMonster generates as
much random data as you wish and puts it into an SQL database. It provides a
very pluggable interface and is easy to use.
How does it work?
The idea of DBMonster is very simple. It is table-oriented monster,
which means that it generates data for tables one by one. DBMonster
can generate data for the following types:
- strings for SQL char, varchar and text,
- integers for SQL int4 and int8,
- numbers for SQL arbitrary numeric type and arbitrary precision,
- booleans for SQL boolean,
- timestamps for SQL datetime and timestamp.
DBMonster reads the tables definitions from a XML schema file(s)
and starts the generation proccess from the first table. If the
table contains a column(s) that use(s) a foreign key constraint
DBMosnter will generate the needed tables first. The table
order is calculated on-the-fly.
Data generation process is based on Generators concept. Each column has
its own value-generator that knows how to produce random value. There are
several predefined generators (such as StringGenerator, NumberGenerator,
BooleanGenerator etc.) but you may write more sofisticated ones (if you want)
that will fit you needs. Generator interface is simple but therefore very
flexible.
Tuples are inserted into database in brute-force way. It does matter when
a column has unique indexes on non-key columns. If a row cannot be inserted
into the database DBMonster tries to find another values. The maximum number
of tries can be configured by <dbmonster.max-tries> configuration variable.
The default value is 1000.
Limitations
- DBMonster doesn't support advanced data generation model
for more than one table at the same time. As a workaround
a sofisticated DataGenerator
may be used.
Third-party libraries used in DBMonster
DBMonster uses some third-party libraries. Most of them comes
from The Apache Jakarta Project.
Here is the whole list:
This product includes software developed by the
Apache Software Foundation (http://www.apache.org/).
This product includes software developed by
Geoff Kuenning and other unpaid contributors.