KEY ACCOMPLISHMENTS LAST WEEK
KEY TASKS THAT STALLED LAST WEEK
KEY CONCERNS
TASKS IN THE UPCOMING WEEK
The Skoll Client retrieves a set of commands from the Skoll Server to compile and test MySQL; these commands are UNIX shell commands. My Google Summer of Code project is to work on the Java Skoll Client, I spent a great deal of time and effort getting these shell commands to run well in Java. Running shell commands in Java is not always straightforward, here are some techniques I learned to get the job done.
KEY ACCOMPLISHMENTS LAST WEEK
KEY TASKS THAT STALLED LAST WEEK
KEY CONCERNS
TASKS IN THE UPCOMING WEEK
In a previous post, I talked about the method Skoll used to collect MySQL runtime information for non-default configurations. At the time, the runtime information was collected after all of the MySQL tests were executed, which means the runtime information was accumulated from all tests run. There was no way to decipher how each test contributed to this accumulated runtime information. A greater degree of granularity can provide better understanding of the MySQL runtime behavior.
KEY ACCOMPLISHMENTS LAST WEEK
KEY TASKS THAT STALLED LAST WEEK
KEY CONCERNS
TASKS IN THE UPCOMING WEEK
In the Skoll project, we are trying to build a community-based distributed process to test MySQL. From the users perspective, the Skoll clients connect to the Skoll server and receive instructions to build MySQL in a specific configuration. The Skoll client then compiles MySQL and runs a set of about 750 standard MySQL installation tests. Finally, the client sends a summary of the test results back to the Skoll server. What the users do not see is the big picture. How does the Skoll server model the MySQL configuration space? How does the Skoll server select specific configurations from this space to be tested.
KEY ACCOMPLISHMENTS LAST WEEK
KEY TASKS THAT STALLED LAST WEEK
KEY CONCERNS
TASKS IN THE UPCOMING WEEK
KEY ACCOMPLISHMENTS LAST WEEK
KEY TASKS THAT STALLED LAST WEEK
KEY CONCERNS
TASKS IN THE UPCOMING WEEK
KEY ACCOMPLISHMENTS LAST WEEK
KEY TASKS THAT STALLED LAST WEEK
KEY CONCERNS
TASKS IN THE UPCOMING WEEK
To understand the runtime behavior of MySQL under different configurations, Skoll needs to collect runtime data while testing MySQL builds. To accomplish this, the Skoll client takes advantage of gcov, a test coverage program that’s part of the GNU Compiler Collection (GCC). gcov collects runtime information such as how many times a line of code, a method or a file was executed, what was the coverage and much more.
The source tree of MySQL actually provides a few build scripts that enables gcov under the BUILD directory. However, these scripts build MySQL using the default configuration; not exactly what Skoll needs. Skoll client builds and tests MySQL in different configurations by passing compile-time and run-time flags to the configure script before compilation. For example
KEY ACCOMPLISHMENTS LAST WEEK
KEY TASKS THAT STALLED LAST WEEK
KEY CONCERNS
TASKS IN THE UPCOMING WEEK
KEY ACCOMPLISHMENTS LAST WEEK
KEY TASKS THAT STALLED LAST WEEK
KEY CONCERNS
TASKS IN THE UPCOMING WEEK
KEY ACCOMPLISHMENTS LAST WEEK
KEY TASKS THAT STALLED LAST WEEK
KEY CONCERNS
TASKS IN THE UPCOMING WEEK
KEY ACCOMPLISHMENTS LAST WEEK
KEY TASKS THAT STALLED LAST WEEK
KEY CONCERNS
KEY ACCOMPLISHMENTS LAST WEEK
KEY TASKS THAT STALLED LAST WEEK
KEY CONCERNS
TASKS IN THE UPCOMING WEEK
KEY ACCOMPLISHMENTS LAST WEEK
KEY ACCOMPLISHMENTS LAST WEEK
KEY TASKS THAT STALLED LAST WEEK
KEY CONCERNS
The project I am working on for Google Summer of Code 2008 is “A Test Scheduler for the MySQL Build Farm Initiative”. The MySQL Build Farm Initiative seeks to create an automated environment that tests MySQL in multiple configurations over a powerful, virtual computing grid provided by community member’s local machines.
Currently, MySQL developers use an internal system called push-build to test a static set of configurations across a static set of computing resources. My project will take a step towards realizing the MySQL Build Farm; modify push-build to test a dynamic, rather than static, set of configurations and computing resources.
I will do this by creating a management layer that