I’ll be giving an online webinar for Drizzle contributors on Saturday, May 15th @ 1am GMT (In the U.S. this is Friday, May14th @ 9pm EDT, 6pm PDT).
Note that the DimDim widget below shows the time as May 14th @ 8pm. The widget is wrong, since DimDim does not account for daylight savings.
Space is strictly limited to 20 people and this will be done via DimDim.com. Please register for the webinar by entering your email address in the widget below and clicking “Sign Up”.
The agenda for this 2-3 hour tutorial will be:
- First Steps
- Getting registered as a contributor for Drizzle on Launchpad
- Registering your SSH keys with Launchpad
- Picking up and creating blueprints
- Basics of Bazaar
- Setting up a local code repository for Drizzle
- Committing your work to a Bazaar branch
- Pushing your code to Launchpad
- Requesting a code review and merge into trunk
- One slide explaining the license your contributions may be submitted under
- The Drizzle Source Code
- Our coding standards
- Our build system
- Walkthrough of major directories in Drizzle
- Understanding the plugin system
- Understanding what the kernel is responsible for
- Where the Dragons live — and how to avoid them
Walkthrough of a SELECT statement
- Client communication with server
- The role of the session scheduler plugin
- How, when and where authentication and authorization plugins are called
- How the drizzled::statement::Statement subclasses work
- Dive into drizzled::statement::Select::execute()
- Walkthrough how a Table’s definition (metadata) is read from a protobuffer file or an engine
- Dive into mysql_lock_tables()
- How does drizzled::plugin::StorageEngine::startStatement() work?
- How does drizzled::plugin::TransactionalStorageEngine::startTransaction() work?
- Inside the join optimizer and Join::optimize()
- How does the nested loops algorithm get executed and how does READ_RECORD work?
- How does drizzled::Cursor perform table and index scans and seeks?
- How are result sets packaged up and sent to clients?
Plugin Development Tutorial
- What plugin classes are even available?
- Creating your basic plugin
- The plugin.ini file
- The module initialization and configuration file
- Registering your plugin with the kernel with plugin::Context::add()
- Publishing your plugin’s information using table functions
- Providing users control over your plugin with user-defined functions