Project suggestion: benchmark utility for PostgreSQL - Mailing list pgsql-hackers

From Mickael DELOISON
Subject Project suggestion: benchmark utility for PostgreSQL
Date
Msg-id 1f8f052b0703171137n78f29b28hf911633222810bca@mail.gmail.com
Whole thread Raw
Responses Re: Project suggestion: benchmark utility for PostgreSQL  ("Florian G. Pflug" <fgp@phlo.org>)
Re: Project suggestion: benchmark utility for PostgreSQL  (Josh Berkus <josh@agliodbs.com>)
List pgsql-hackers
Hello everybody.

I am a student and I would like to have your opinion on a project I
plan to submit for GSoC. At school, when I work with relational
databases I have problems to test tables' structure and queries
because I need to insert test data manually, which is very unpleasant.
Therefore, I suggest creating a benchmark utility for PostgreSQL.
This utility would be divided in two parts: first part is the **random
data generator** to fill in the tables with test data, and second part
is a **test module** in which we can execute a set of queries and
analyze response time and results.

The random data generator would be able to generate data of every type
(from 8.1 Numeric Types to 8.10 Arrays in official documentation).
When starting, the program connects to a database, retrieves the
tables and proposes adding random data to the user. The user uses
pattern and dictionaries to make those generators work.

The test module would consist in a sort of unit tests module. The user
adds queries and possibly sets the expected results of those queries.
The module executes the queries and gives for each one the results,
the time it took to execute, and if the results are those which were
expected.

And finally, I did not talk about that before. But I think it would be
a great idea for a complete benchmark utility... if it would give some
advices to optimize the tables' structure (columns' type, indexes,
foreign keys). Of course, those advices would be for a novice user as
expert already knows how to optimize the columns types, the joins...

For a programming language, as it would be for GSoC, it has to be
realized in three month and I believe the utility has to be
cross-platform (anyway I want it to be). So I think Java would be
good. I am very used to Java and Swing programming. What do you think
about that choice? If you feel Java is a bad choice, there is
C++/Boost/wxWidget/ (like pgAdmin). But with wxWidget, I am not sure
if a GUI works under Windows and Linux it will work under MacOS
without hacks.

Thank you for having read me until there. I am very excited about such
project. I wait for your comments.

Best regards,
Mickael Deloison


pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: Bug in UTF8-Validation Code?
Next
From: "Simon Riggs"
Date:
Subject: Re: CREATE INDEX and HOT (was Question: pg_classattributes and race conditions ?)