Re: [Drizzle-discuss] On merging lp:~patrick-crews/drizzle/qp-merge2

2012-02-09 Thread pcrews

Awesome.  The branch is now ready for merge.

Essentially, this is the same code, but renamed to be less horrible to 
type/say + cleaned up / updated.  Everything is now a python unittest 
module (except for the dtr stuff).


This enables us to write tests in Python, so we are less likely to bang 
our heads against the wall in certain testing scenarios.


This means no more --mode stuff.  We just write helper methods to do 
what we need and we can mix and match fun stuff:

execute_randgen(cmd, server)
execute_query(query, server)
compare_servers_by_checksum(server_list)
server.start()
server.dump_errlog()...stuff like that.
: )

Once our Jenkins jobs are updated / passing, we can clean out the dbqp 
code \o/.  AFAIK, the only Jenkins job that needs changing is 
staging-crashme.  A 'make test-qp' job(s) might also be good, depending 
on time / machines, but the world will continue to spin without it g.


The updates to the Makefile:
test-qp:runs the DTR test suite (includes a couple of tests not run by 
drizzle-test-run - backwards_compatibility + slave stuff)


test-randgen-all: runs all randgen suites

test-randgen: same as current staging run, but with kewpie

test-randgen-basic: runs the basic stress suite

test-randgen-slave: randgen slave plugin tests

test-randgen-innodb-log: tests the innodb-based trx log

test-randgen-trx-log: tests the file-based trx log

test-crashme: runs the crashme tests, vs. the current calls to dbqp with 
a --mode argument.


test-sqlbench: runs sql-bench, but doesn't do all the magic 
drizzle-automation currently does vis-a-vis parsing + storing results in 
db + emailing comparisons (yet) : )


Please let me know if I can help with anything,
Patrick



On 02/09/2012 07:00 PM, Mark Atwood wrote:

Excellent.  Let me know when you push it to LP, and we will work on merging it.

Also, a compare and contrast with dbqp would be nice, so I can quickly
update the dbqp-using Jenkins targets.

..m


On Wed, Feb 8, 2012 at 5:30 PM, pcrewsglee...@gmail.com  wrote:

Actually, I did a serious strip-down and got the kewpie dir down to 21MB.
  Still finishing some tests before pushing, but it would enable us to keep
everything needed to run tests in-tree and things will be even lighter once
we've removed dbqp.

Thanks,
--
Patrick


On 02/06/2012 10:34 PM, Mark Atwood wrote:


I like it.

Tho I would like make test / make check / make kewpie (whatever
is most appropriate to run a kewpie test.

If we do it in make test or make check, have it emit a sane warning
message if kewpie is not installed, including a URL and a few lines of
instructions on installing kewpie.

..m

On Mon, Feb 6, 2012 at 4:04 PM, pcrewsglee...@gmail.comwrote:


Tell me what you guys think about this:
For xtrabackup + other percona projects we are going to keep a config
file +
the test files in-tree.  One should only need one installation of kewpie
to
run everything.  Each project will use an in-tree workdir, etc.  The
tests
living in-tree will help to ensure they are up-to-date and in sync and
have
a shared history with the code.

./kewpie.py --sys-config=../qp/qp-config.py
--wsrep-provider-path=/home/pcrews/bzr/galera2/libgalera_smm.so --force

This will *significantly* reduce the bulk of the Drizzle tree.  The other
thing we can do is to pare down some further test data files that *might*
have been missed.

An example branch:  lp:~patrick-crews/percona-xtradb-cluster/pxc-5520-qp
Thoughts?


On 01/30/2012 12:30 PM, pcrews wrote:



On 01/30/2012 03:25 AM, Henrik Ingo wrote:



On Mon, Jan 30, 2012 at 6:16 AM, pcrewsglee...@gmail.comwrote:



Hi. It is pretty darned huge as it has the randgen + sql-bench in
there as
well as tests, etc and I was wondering about this myself.

Here are two suggestions:
1) I can remove the Percona stuff. Apologies for not having done it
sooner, but I was thinking some tests would prove useful over time,
like the
cluster_* and xtrabackup_* suites. However, a fair bit of this won't
be
needed.




We already include xtrabackup, so those should be usable immediately.

I'm also a little bit positive for the idea of having around one test
suite that is capable of testing all kinds of stuff. Like you say,
randgen can be used in a way that it tests 3 different databases side
by side. However, an issue here is the maintenance and churn: If you
add cluster_* tests to drizzle tree now, how do you intend to keep
this updated? Will it be broken before anyone tries to add Galera to
Drizzle, or will you actually keep it working? If you have some low
effort way to make sure the Percona tests, Drizzle tests, etc will
stay in sync, then it sounds ok. If they are expected to diverge
anyway, then I don't see a point in adding stuff that wouldn't be used
with Drizzle specifically.




++ to your thoughts. One of my goals is to minimize moving parts / the
amount of work needed to keep things up to date (and I have to do this
for several projects). For the cluster_* tests, they aren't tied to
Galera. 

Re: [Drizzle-discuss] On merging lp:~patrick-crews/drizzle/qp-merge2

2012-02-08 Thread pcrews
Actually, I did a serious strip-down and got the kewpie dir down to 
21MB.  Still finishing some tests before pushing, but it would enable us 
to keep everything needed to run tests in-tree and things will be even 
lighter once we've removed dbqp.


Thanks,
--
Patrick

On 02/06/2012 10:34 PM, Mark Atwood wrote:

I like it.

Tho I would like make test / make check / make kewpie (whatever
is most appropriate to run a kewpie test.

If we do it in make test or make check, have it emit a sane warning
message if kewpie is not installed, including a URL and a few lines of
instructions on installing kewpie.

..m

On Mon, Feb 6, 2012 at 4:04 PM, pcrewsglee...@gmail.com  wrote:

Tell me what you guys think about this:
For xtrabackup + other percona projects we are going to keep a config file +
the test files in-tree.  One should only need one installation of kewpie to
run everything.  Each project will use an in-tree workdir, etc.  The tests
living in-tree will help to ensure they are up-to-date and in sync and have
a shared history with the code.

./kewpie.py --sys-config=../qp/qp-config.py
--wsrep-provider-path=/home/pcrews/bzr/galera2/libgalera_smm.so --force

This will *significantly* reduce the bulk of the Drizzle tree.  The other
thing we can do is to pare down some further test data files that *might*
have been missed.

An example branch:  lp:~patrick-crews/percona-xtradb-cluster/pxc-5520-qp
Thoughts?


On 01/30/2012 12:30 PM, pcrews wrote:


On 01/30/2012 03:25 AM, Henrik Ingo wrote:


On Mon, Jan 30, 2012 at 6:16 AM, pcrewsglee...@gmail.com  wrote:


Hi. It is pretty darned huge as it has the randgen + sql-bench in
there as
well as tests, etc and I was wondering about this myself.

Here are two suggestions:
1) I can remove the Percona stuff. Apologies for not having done it
sooner, but I was thinking some tests would prove useful over time,
like the
cluster_* and xtrabackup_* suites. However, a fair bit of this won't be
needed.



We already include xtrabackup, so those should be usable immediately.

I'm also a little bit positive for the idea of having around one test
suite that is capable of testing all kinds of stuff. Like you say,
randgen can be used in a way that it tests 3 different databases side
by side. However, an issue here is the maintenance and churn: If you
add cluster_* tests to drizzle tree now, how do you intend to keep
this updated? Will it be broken before anyone tries to add Galera to
Drizzle, or will you actually keep it working? If you have some low
effort way to make sure the Percona tests, Drizzle tests, etc will
stay in sync, then it sounds ok. If they are expected to diverge
anyway, then I don't see a point in adding stuff that wouldn't be used
with Drizzle specifically.



++ to your thoughts. One of my goals is to minimize moving parts / the
amount of work needed to keep things up to date (and I have to do this
for several projects). For the cluster_* tests, they aren't tied to
Galera. They're written in a generic fashion so one can test replication
against Galera, mysql-built-in, etc...provided you've written
appropriate methods (set_master, start_slave, etc) for the server type.
Once I have time to do this for Drizzle, we'll have a nifty suite for
the slave plugin.

Also, I took a look at the branch and I had removed everything
percona_test related. The only additional deletion was removing some
mysql data files. I will be cleaning up / consolidating the server code
soon, so that should cut out a bit as well.




2) We've been discussing this for Percona projects: Have the test code
live outside the tree and simply keep a config file in the drizzle
tree that
says things like I am a drizzle server. This is my basedir. Run these
suites, etc



I like the tests being in the main tree. For same reasons that I have
now included rpm and deb stuff into the tree. Since we have become
reasonably good at requiring developers to also create tests as part
of their merge proposals, I wouldn't want to have arrangements where
you hear sentences like: This is the new feature I've developed and I
promise that some day I will also add some tests to this other
branch.



Yes, that introduces gaps that rely as much on prayer and miracles as
process when you put it that way. Ah, how much easier life was when it
was *just* Drizzle that I was beating on ; )




I'll have an updated branch with #1 done tomorrow. Let me know what you
guys think about #2.



henrik



Thanks for the input,
Patrick






___
Mailing list: https://launchpad.net/~drizzle-discuss
Post to : drizzle-discuss@lists.launchpad.net
Unsubscribe : https://launchpad.net/~drizzle-discuss
More help   : https://help.launchpad.net/ListHelp


Re: [Drizzle-discuss] On merging lp:~patrick-crews/drizzle/qp-merge2

2012-02-06 Thread pcrews

Tell me what you guys think about this:
For xtrabackup + other percona projects we are going to keep a config 
file + the test files in-tree.  One should only need one installation of 
kewpie to run everything.  Each project will use an in-tree workdir, 
etc.  The tests living in-tree will help to ensure they are up-to-date 
and in sync and have a shared history with the code.


./kewpie.py --sys-config=../qp/qp-config.py 
--wsrep-provider-path=/home/pcrews/bzr/galera2/libgalera_smm.so --force


This will *significantly* reduce the bulk of the Drizzle tree.  The 
other thing we can do is to pare down some further test data files that 
*might* have been missed.


An example branch:  lp:~patrick-crews/percona-xtradb-cluster/pxc-5520-qp
Thoughts?

On 01/30/2012 12:30 PM, pcrews wrote:

On 01/30/2012 03:25 AM, Henrik Ingo wrote:

On Mon, Jan 30, 2012 at 6:16 AM, pcrewsglee...@gmail.com wrote:

Hi. It is pretty darned huge as it has the randgen + sql-bench in
there as
well as tests, etc and I was wondering about this myself.

Here are two suggestions:
1) I can remove the Percona stuff. Apologies for not having done it
sooner, but I was thinking some tests would prove useful over time,
like the
cluster_* and xtrabackup_* suites. However, a fair bit of this won't be
needed.


We already include xtrabackup, so those should be usable immediately.

I'm also a little bit positive for the idea of having around one test
suite that is capable of testing all kinds of stuff. Like you say,
randgen can be used in a way that it tests 3 different databases side
by side. However, an issue here is the maintenance and churn: If you
add cluster_* tests to drizzle tree now, how do you intend to keep
this updated? Will it be broken before anyone tries to add Galera to
Drizzle, or will you actually keep it working? If you have some low
effort way to make sure the Percona tests, Drizzle tests, etc will
stay in sync, then it sounds ok. If they are expected to diverge
anyway, then I don't see a point in adding stuff that wouldn't be used
with Drizzle specifically.


++ to your thoughts. One of my goals is to minimize moving parts / the
amount of work needed to keep things up to date (and I have to do this
for several projects). For the cluster_* tests, they aren't tied to
Galera. They're written in a generic fashion so one can test replication
against Galera, mysql-built-in, etc...provided you've written
appropriate methods (set_master, start_slave, etc) for the server type.
Once I have time to do this for Drizzle, we'll have a nifty suite for
the slave plugin.

Also, I took a look at the branch and I had removed everything
percona_test related. The only additional deletion was removing some
mysql data files. I will be cleaning up / consolidating the server code
soon, so that should cut out a bit as well.




2) We've been discussing this for Percona projects: Have the test code
live outside the tree and simply keep a config file in the drizzle
tree that
says things like I am a drizzle server. This is my basedir. Run these
suites, etc


I like the tests being in the main tree. For same reasons that I have
now included rpm and deb stuff into the tree. Since we have become
reasonably good at requiring developers to also create tests as part
of their merge proposals, I wouldn't want to have arrangements where
you hear sentences like: This is the new feature I've developed and I
promise that some day I will also add some tests to this other
branch.


Yes, that introduces gaps that rely as much on prayer and miracles as
process when you put it that way. Ah, how much easier life was when it
was *just* Drizzle that I was beating on ; )



I'll have an updated branch with #1 done tomorrow. Let me know what you
guys think about #2.


henrik



Thanks for the input,
Patrick



___
Mailing list: https://launchpad.net/~drizzle-discuss
Post to : drizzle-discuss@lists.launchpad.net
Unsubscribe : https://launchpad.net/~drizzle-discuss
More help   : https://help.launchpad.net/ListHelp


Re: [Drizzle-discuss] On merging lp:~patrick-crews/drizzle/qp-merge2

2012-02-06 Thread Mark Atwood
I like it.

Tho I would like make test / make check / make kewpie (whatever
is most appropriate to run a kewpie test.

If we do it in make test or make check, have it emit a sane warning
message if kewpie is not installed, including a URL and a few lines of
instructions on installing kewpie.

..m

On Mon, Feb 6, 2012 at 4:04 PM, pcrews glee...@gmail.com wrote:
 Tell me what you guys think about this:
 For xtrabackup + other percona projects we are going to keep a config file +
 the test files in-tree.  One should only need one installation of kewpie to
 run everything.  Each project will use an in-tree workdir, etc.  The tests
 living in-tree will help to ensure they are up-to-date and in sync and have
 a shared history with the code.

 ./kewpie.py --sys-config=../qp/qp-config.py
 --wsrep-provider-path=/home/pcrews/bzr/galera2/libgalera_smm.so --force

 This will *significantly* reduce the bulk of the Drizzle tree.  The other
 thing we can do is to pare down some further test data files that *might*
 have been missed.

 An example branch:  lp:~patrick-crews/percona-xtradb-cluster/pxc-5520-qp
 Thoughts?


 On 01/30/2012 12:30 PM, pcrews wrote:

 On 01/30/2012 03:25 AM, Henrik Ingo wrote:

 On Mon, Jan 30, 2012 at 6:16 AM, pcrewsglee...@gmail.com wrote:

 Hi. It is pretty darned huge as it has the randgen + sql-bench in
 there as
 well as tests, etc and I was wondering about this myself.

 Here are two suggestions:
 1) I can remove the Percona stuff. Apologies for not having done it
 sooner, but I was thinking some tests would prove useful over time,
 like the
 cluster_* and xtrabackup_* suites. However, a fair bit of this won't be
 needed.


 We already include xtrabackup, so those should be usable immediately.

 I'm also a little bit positive for the idea of having around one test
 suite that is capable of testing all kinds of stuff. Like you say,
 randgen can be used in a way that it tests 3 different databases side
 by side. However, an issue here is the maintenance and churn: If you
 add cluster_* tests to drizzle tree now, how do you intend to keep
 this updated? Will it be broken before anyone tries to add Galera to
 Drizzle, or will you actually keep it working? If you have some low
 effort way to make sure the Percona tests, Drizzle tests, etc will
 stay in sync, then it sounds ok. If they are expected to diverge
 anyway, then I don't see a point in adding stuff that wouldn't be used
 with Drizzle specifically.


 ++ to your thoughts. One of my goals is to minimize moving parts / the
 amount of work needed to keep things up to date (and I have to do this
 for several projects). For the cluster_* tests, they aren't tied to
 Galera. They're written in a generic fashion so one can test replication
 against Galera, mysql-built-in, etc...provided you've written
 appropriate methods (set_master, start_slave, etc) for the server type.
 Once I have time to do this for Drizzle, we'll have a nifty suite for
 the slave plugin.

 Also, I took a look at the branch and I had removed everything
 percona_test related. The only additional deletion was removing some
 mysql data files. I will be cleaning up / consolidating the server code
 soon, so that should cut out a bit as well.


 2) We've been discussing this for Percona projects: Have the test code
 live outside the tree and simply keep a config file in the drizzle
 tree that
 says things like I am a drizzle server. This is my basedir. Run these
 suites, etc


 I like the tests being in the main tree. For same reasons that I have
 now included rpm and deb stuff into the tree. Since we have become
 reasonably good at requiring developers to also create tests as part
 of their merge proposals, I wouldn't want to have arrangements where
 you hear sentences like: This is the new feature I've developed and I
 promise that some day I will also add some tests to this other
 branch.


 Yes, that introduces gaps that rely as much on prayer and miracles as
 process when you put it that way. Ah, how much easier life was when it
 was *just* Drizzle that I was beating on ; )


 I'll have an updated branch with #1 done tomorrow. Let me know what you
 guys think about #2.


 henrik


 Thanks for the input,
 Patrick



___
Mailing list: https://launchpad.net/~drizzle-discuss
Post to : drizzle-discuss@lists.launchpad.net
Unsubscribe : https://launchpad.net/~drizzle-discuss
More help   : https://help.launchpad.net/ListHelp


[Drizzle-discuss] On merging lp:~patrick-crews/drizzle/qp-merge2

2012-01-29 Thread Mark Atwood
Hi!

We have lp:~patrick-crews/drizzle/qp-merge2 sitting in the Branch
Merge Proposal list on Launchpad.

It is 166905 lines, which is just over 10% of the existing 1431202 lines.

I only really noticed it's huge size when I was trying to run the
merge last week while I was in Australia, and BZR had taken over 10
minutes before I aborted it.

On the other hand, it appears that the existing dbqp is itself nearly as big.

It appears to me that kewpie contains code to also test stock MySQL
and to test Percona server.  While I am a fan of putting the test code
in-tree (it certainly makes parts of my own Drizzle work much easier),
I have hesitations about carrying around the weight of test code for
other projects as well.

Any thoughts about my concerns?  Or should I just suck it up and merge it?

..m

___
Mailing list: https://launchpad.net/~drizzle-discuss
Post to : drizzle-discuss@lists.launchpad.net
Unsubscribe : https://launchpad.net/~drizzle-discuss
More help   : https://help.launchpad.net/ListHelp