Gordon is an expert database developer and database administrator (DBA) who has over 20 years of experience with Linux (preference for CentOS/RHEL), databases (MySQL, MariaDB, PostgreSQL), and development in a variety of languages. Besides having multiple years of in-depth experience under his belt, he also has a bachelor's degree in computer science and is certified as a MySQL administrator and developer.
ExperienceSQL - 20 yearsMySQL DBA - 20 yearsPostgreSQL - 20 yearsMySQL - 20 yearsLinux - 20 yearsMariaDB - 10 yearsStored Procedure - 10 yearsAmazon RDS - 6 years
Unix, Linux, MySQL, MariaDB, CentOS, Linux RHEL/CentOS, RHEL, Percona, ZFS, MySQL DBA
The most amazing...
...MySQL system I've architected was capable of processing 30 billion records per day.
MariaDB Database Administrator (DBA)
- Migrated and updated a part of a large database estate (dozens of replica sets, hundreds of servers, hundreds of TBs of data) from bare-metal servers in multiple data centers to AWS and self-hosted KVM.
- Used ZFS snapshot sending, XtraBackup, and mysqldump for large-scale data migration, depending on what was available and most appropriate for each server.
- Installed a continuous incremental backup regime with hourly restore granularity using ZFS snapshot sending via sanoid/syncoid.
- Implemented Percona monitoring and management (PMM).
Senior Database Architect
- Redesigned a large MySQL database estate running on RedHat/CentOS Linux.
- Alleviated concurrency contention bottlenecks in InnoDB, rewrote queries to improve efficiency, and improved indexes.
- Tuned storage alignment, MySQL, and OS-level configuration and used ZFS to further improve performance and operational features.
- Delivered performance improvement of 12x (1,200%).
- Extensively tested the performance impact of moving to different cloud providers including AWS (Xen) and ESXi-based ones.
MySQL Database Administrator (DBA)
- Troubleshot and optimized the database estate consisting of Galera/MariaDB and MySQL server clusters on a large VMware ESXi server estate.
- Improved the run times of a number of regularly recurring tasks from hours down to minutes.
- Deployed new high-availability PostgreSQL and MariaDB clusters.
- Used DevOps methods to improve consistency and reliability.
- Migrated legacy MariaDB/Ubuntu systems to PostgreSQL/CentOS-based replacements.
- Delivered performance optimizations in the client's stored procedures on their MySQL RDS databases.
- Developed existing operations on their PostgreSQL RDS databases.
- Built overall database performance improvements in the 10x to 50x range compared to original implementations.
MySQL Database Administrator (DBA)
- Resolved database throughput bottlenecks (AWS, RDS, MySQL).
- Achieved a 100x (10,000%) increase in database throughput in the first three days with minimal application changes.
- Reimplemented the gathering of application dashboard statistics to be asynchronous, which alleviated a number of deadlocking hotspots.
- Steered, as the database architecture specialist, the database design and implementation delivered by three separate suppliers across four separate projects.
- Established processes to ensure that the back-end database solutions are maintainable, robust, and capable of performing in line with challenging availability and performance requirements over the long-term lifecycle of the system.
- Oversaw the migration of databases from the previous cloud service provider to AWS (RDS).
- Designed an exhaustive audit superstructure using shadow tables and triggers to be attached to the existing database design with minimal changes to both the database and the application stack above it.
Systems Architect | Administrator
Moorfields Eye Hospital
- Architected a high availability managed service platform for the OpenEyes project, based on RedHat Enterprise Linux 6/RedSleeve, Linux 6, and VServer.
MySQL Database Engineer
- Optimized and improved the database infrastructure containing approximately 100 TB of data, based on RedHat Enterprise Linux 6 and MySQL (variants including Percona, MySQL, MariaDB, and MySQL Cluster).
- Worked with compressed archive databases residing on a GlusterFS storage pool. Automated tasks using Perl and Bash scripts.
- Implemented a selective, versioned backup system for MySQL database structures.
- Developed an in-database job scheduler using stored procedures and scheduled events to facilitate parallelization of stored procedures to better leverage multi-core hardware.
- Designed and implemented a new database ingress solution to boost the data throughput capacity from the old bottleneck of 170,000 transactions/second to several times that figure.
- Worked on improving and optimising performance of the firmware update system for broadband devices.
MySQL Developer and Database Administrator (DBA)
- Developed stored procedures and optimized the MySQL database performance of the client's business intelligence data warehouse system.
- Tuned MySQL server and Linux OS; optimized indexes, rewrote queries and implemented materialized views maintained by triggers.
- Delivered performance improvements of around 24x (2,400%).
Unix Platform Architect
- Designed and implemented new systems for the BBC. Projects involved load balancing technologies (Inlab's Balance and BalanceNG and Linux kernel level load balancing using LNLB). The platforms used were Solaris and RedHat Linux.
- Updated LNLB code to be compatible with later kernels.
- Resolved a major BBC iPlayer outage and rectified the complex MySQL database problem that caused it.
Senior Database Administrator (DBA)
- Resolved stability issues, improved the performance, and redesigned the server estate to ensure long term supportability of a client's replicated MySQL databases.
- Resolved a long-term recurring table corruption issue.
- Improved the performance of the database stack by over 20x (2,000%) on the same hardware and same VMware ESX platform. This enabled the massive reduction in size (and cost) of the MySQL server estate while still providing better performance.
- Upgraded MySQL servers from 5.0 running on Debian Linux to 5.1 running on RedHat Enterprise Linux 6 with negligible downtime.
MySQL Database Architect
- Optimized MySQL databases to meet the performance requirements in time for the launch of the software product.
- Tuned the entire application stack including VMware configuration, Solaris and RedHat Linux, NAS MySQL, table structures, queries, and stored procedures.
- Achieved performance improvements of several orders of magnitude.
Senior Database Administrator (DBA)
- Tuned MySQL databases running on Debian Linux systems.
- Handled the migrations to new hardware.
- Implemented a redundant fail-over database solution based on block device mirroring (DRBD) and RedHat clustering, with secondary backups using MySQL replication.
- Worked in a team of system administrators responsible for the day-to-day running and maintenance of various messaging platforms.
- Looked after systems running Sendmail, Mailman, Brightmail, and PureMessage spam filtering, PostgreSQL and bespoke messaging solutions on Linux and Solaris (9, 10, zones) with LDAP authentication.
BT Global Services
- Worked as a part of the team performing day-to-day administration and maintenance of a large Linux and Solaris based service delivery platform running bespoke software.
Griffin Information Systems
- Built a new email storage system based on RHEL and SAN-based clustered GFS storage with MySQL for metadata storage.
- Wrote calibration software for measurement probes in C++.
- Produced a calibration certificate generation system using Perl, with data stored in MySQL.
- Resolved a number of performance issues impacting the email system using MySQL clustering for authentication and metadata storage.
- Introduced the use of virtualization for product testing.
- Assisted with a large-scale data centre migration.
- Maintained a MySQL database containing metadata for all of the available downloads.
- Developed additional interfaces for providing downloads to customers in Perl.
- Introduced PersistentPerl to improve performance of the HTTP front-end.
Lorien Customer Focus
- Wrote software for supply chain management for a major car manufacturer.
- Wrote the software in Perl while preserving the data in a PostgreSQL database.
- Optimization of queries to meet performance goals.
Hanover Park Services
- Maintained and audited software for the customer's insurance selling platform.
- Redesigned the system architecture to streamline the server estate and improved availability by introducing hot failover capability between servers.
- Developed and maintained software for client's internal use.
- Architected the platform for a new group-wide data and document sharing project, backed by FreeBSD servers running a Coda distributed file system and MySQL backed metadata storage.
- Worked on the development of a sports management system for the clients' foreign customers.
The Real Adventure
- Improved the reliability of the legacy systems.
- Resolved and mitigated complex issues surrounding the legacy code's inability to cleanly handle transaction interruptions.
Selected Financial Investments
- Developed software for heavily customizable news data aggregation.
- Built software for stock market data aggregation.
I backported support for pool versions 27 and 28 from OpenZFS (ZFSonLinux and Illumos) so zfs-fuse is now at parity with other implementations (OpenZFS and Solaris) in terms of maximum on-disk format that is interoperable with other implementations. This is particularly useful when it comes to attempting data recovery where other implementations cause a kernel crash when importing a pool. I also backported the mount.zfs helper and added support for using zfs-fuse as the root file system.
ROLE: Current Maintainer
PMM 1.x Maintenancehttps://github.com/shatteredsilicon
Perl, SQL, Bourne Shell, Stored Procedure, C++, C
*nux Shells, VMware, KVM/Qemu, RPM, Systemd
Linux, Linux RHEL/CentOS, Percona, Unix, CentOS, Amazon Web Services (AWS), Solaris, Xen, FreeBSD, KVM, ARM Linux, CentOS 6, Fedora
MySQL, PostgreSQL, Linux File Systems, MariaDB, SQL Stored Procedures, SQL Triggers, Database Triggers, InnoDB, MyISAM, Databases, DRBD, MySQL Clustering
RHEL, ZFS, Shell Scripting, Triggers, Galera Cluster, MySQL DBA, VMware ESXi, XFS, Relational Database Services (RDS), RPM Packaging, Performance Optimization, Query Optimization, Performance Tuning, Optimization, Computer Science, Amazon RDS
Bachelor of Science (BSc) Degree in Computer Science
Royal Holloway, University of London - Egham, Surrey, England
Certified MySQL Developer
Certified MySQL Database Administrator