presentations

Over the years, I’ve given quite a few technical presentations, mostly on optimizing SQL and PHP application performance and C++ development for Drizzle.   I list them here in no particular order.

OpenStack QA – Walkthrough of Processes, Tools and Code

Google Presentation (HTML)
PDF slides


Topics included in the slides:

  • OpenStack Contribution Process
  • Running Devstack Locally
  • Running Tempest against an Environment
  • Walkthrough the Tempest Source Code
  • Progressively improving a test case
  • Common Scenarios in Code Review and Submission

Developing Drizzle Replication Plugins


Open Office Impress slides
PDF slides


Topics included in the slides:

  • About the Drizzle Community and Expectations of Contributors
  • Getting started on Launchpad
  • Various features of Launchpad
  • Understanding the Source Code Directory Structure
  • Code walkthrough of Drizzle plugin basics
  • Drizzle’s System Architecture
  • Overview of Drizzle’s Replication System
  • Understanding Google Protobuffers
  • The Transaction message in Detail
  • In-depth code walkthrough of the Filtered Replicator module
  • In-depth code walkthrough of the Transaction Log module
  • Future of Drizzle replication – Publisher and Subscriber plugins

A Drizzle Code Excursion


Open Office Impress slides
PDF slides


Topics included in the slides:

  • About the Drizzle Community and Expectations of Contributors
  • Getting started on Launchpad
  • Various features of Launchpad
  • Understanding the Source Code Directory Structure
  • What are the Big Modules and Code Pieces?
  • Walk through the Execution of a SELECT statement
  • How Does the Plugin System Work?

A Contributor’s Guide to Launchpad and Bazaar


Open Office Impress slides
PDF slides


Topics included in the slides:

  • Getting started on Launchpad
  • Various features of Launchpad
  • Setting up a Bazaar repository
  • Bazaar Commands
  • Working in a decentralized gatekeeper model
  • Linking to tasks through Launchpad
  • Resolving merge conflicts using Meld

Legend of Drunken Query Master: The Apprentice’s Journey


Open Office Impress slides
PDF slides


Topics included in the slides:

  • Schema optimization and vertical partitioning
  • SQL Coding style guidelines
  • Set-wise problem solving in SQL (and why it kicks for-loop-fu’s ass.)
    • Rewriting correlated subqueries into joins
    • Using derived tables or subqueries in the FROM clause
  • Working with N:M or “mapping” tables
    • Dealing with OR conditions
    • Dealing with AND conditions
    • Combatting filesorts using Cross-join-fu
  • Understanding Left-join-fu
  • Handling Heirarchical Data
    • Adjacency Lists
    • Nested Sets
  • Reporting techniques in SQL
    • Calculating running sums and aggregates
    • Calculating rank of results

Join-fu: The Art of SQL – Part I


Open Office Impress slides
PDF slides


Topics include:

  • Schema optimization and vertical partitioning
  • SQL Coding style guidelines
  • Set-wise problem solving in SQL (and why it kicks for-loop-fu’s ass.)
    • Rewriting correlated subqueries into joins
    • Using derived tables or subqueries in the FROM clause
  • Working with N:M or “mapping” tables
    • Dealing with OR conditions
    • Dealing with AND conditions
    • Combatting filesorts using Cross-join-fu
  • Understanding Left-join-fu

Join-fu: The Art of SQL – Part II


Open Office Impress slides
PDF slides


Topics include:

  • Handling Heirarchical Data
    • Adjacency Lists
    • Nested Sets
  • Doing GIS calculations in SQL
    • Without using user variables, the spatial extensions or stored functions
    • Calculating distance between two points
    • Doing radius searches in spherical geometries
  • Reporting techniques in SQL
    • Calculating running sums and aggregates
    • Calculating rank of results

15 Ways to Kill Your MySQL Application Performance


Open Office Impress slides
PDF slides


Topics include:

  • Understanging EXPLAIN
  • Finding Poor Index Choices
  • PHP and Stored Procedures
  • Cost of Heavy Abstraction Layers
  • Understanding Differences in Index Layouts
  • Understanding the MySQL Query Cache
  • Solving the Spider Deep Scan Problem
  • Using AUTO_INCREMENT
  • Using INSERT ON DUPLICATE KEY UPDATE