Engineering notes

Field notes

MySQL and MariaDB operations — the URLs the community kept linking to.

networking

6to4: easing the IPv6 transition

6to4 for labs; native dual-stack for database endpoints you care about.

MySQL

Cache preloading after mysqld startup

Warm buffer pools deliberately so the first traffic hour is not a cold-cache outage.

community

Call for papers: Open Source Developers’ Conference

Submit practical talks on databases, systems, and community for OSDC.

operations

Dogfood: making our systems more resilient

Move infra before the public site depends on a single box. Dual masters, proxies, and expendable nodes beat heroics.

MySQL

Error handling for MySQL applications

Retry deadlocks and lock waits; reconnect on gone-away. Design for InnoDB concurrency.

MySQL

Experiment: MySQL tmpdir on tmpfs

Point tmpdir at tmpfs to speed spills — and know the OOM failure mode.

SQL

Fast paging in the real world

Replace OFFSET pagination with keyset (seek) pagination.

Fedora

Fedora MariaDB Test Day

What to validate on a Fedora MariaDB Test Day — install, upgrade, replication, SELinux.

SQL

Finding and grouping contiguous ranges

SQL islands-and-gaps: collapse sparse IDs into min–max ranges.

Galera

Galera pre-deployment check

Network, SST, PKs, and failure drills before trusting wsrep.

SQL

Good practice / bad practice: table aliases

Alias every join; qualify every column; use pronounceable names.

OQGRAPH

GRAPH engine Linux binaries for MySQL 5.0.86-d10

32-bit and 64-bit Linux tarballs for OQGRAPH on the OurDelta MySQL 5.0.86-d10 line.

Linux

Hint: noatime and relatime in fstab

Stop pointless atime writes on database volumes.

Linux

HOST_FLUSH and the myth of userspace disk cache control

Linux will not let userspace invent durability after the fact. Use fsync contracts.

InnoDB

How many files does InnoDB have open?

With innodb_file_per_table, MySQL historically hid open .ibd counts. Use lsof — or Innodb_num_open_files where available.

MySQL

Implementing sequences with a stored function and triggers

Shared sequence numbers in MySQL via a counter table, LAST_INSERT_ID, and triggers.

InnoDB

InnoDB without a PRIMARY KEY

InnoDB invents a hidden clustered key. Give it an explicit PK instead.

MySQL

Joomla CMS and Freeway ecommerce

Notes from a Joomla user-group session: easy CMS uptake, Freeway as an osCommerce-derived shop, and payment-security pressure.

SQL

Levenshtein as a MySQL stored function

Edit distance in SQL works; O(n·m) will punish unfiltered scans.

MariaDB

MariaDB security updates: open patches, fast response

How MariaDB’s public patch process changes CVE response for operators.

InnoDB

Migrating MyISAM applications to InnoDB

Checklist: fulltext, table locks, PKs, online convert, application retries.

architecture

Modular vs integrated architecture

Split services when access patterns force it — not because blogs celebrated microservices.

MySQL

MySQL 5.0 index merge

When the optimizer merges multiple indexes — and when a composite index still wins.

MySQL Cluster

MySQL Cluster on Raspberry Pi

NDB on Pi is a teaching cluster, not a capacity plan.

Arduino

MySQL Connector/Arduino

Fun demos; do not put DB credentials and 3306 on microcontrollers in production.

community

MySQL user groups & Meetup sponsorship

Why Open Query sponsors local MySQL and MariaDB meetups.

architecture

On SQL vs NoSQL

NoSQL is many products, not one architecture. Keep joins where the problem needs them; do not migrate wholesale on fashion.

security

One-way password crypting flaws

MD5 with a two-hex-digit salt is not password storage. Use a modern KDF with per-user salt and iteration.

performance

Optimising web servers

Browser render and network dominate first; then memory, CPU, and I/O on the origin. Proxy buffering and X-Accel cut app concurrency.

OQGRAPH

OQGRAPH examples: paths, reachability, leaves

Runnable OQGRAPH patterns: backing table, Dijkstra, BFS, leaves, weights.

MySQL

Oracle agrees to buy Sun

April 2009: Oracle’s Sun deal landed on the eve of the MySQL Users Conference — MySQL’s ownership path shifted again.

MySQL

Predictive caching in a MySQL-backed infrastructure

Warm caches from known next steps — not only from last hits. Group behaviour is predictable even when individuals are not.

talks

SQL locking and transactions — OSDC notes

Isolation, InnoDB locks, deadlocks, short transactions, ordered updates.

Linux

Storage caching in the Linux 3.9 era

Kernel writeback changes show up as MySQL stalls, not neat SQL errors.

replication

Temporary tables and replication

TEMPORARY TABLE + statement vs row binlog — avoid replica surprises.

MySQL

The actual range and storage size of an INT

INT(2) and INT(11) use the same storage. Display width is not precision — pick TINYINT…BIGINT (and DATE) deliberately.

operations

The flipside of uptime

Long uptime is not a virtue metric. Reboot on your schedule, or discover broken boot paths during an outage.

MariaDB

The MariaDB Foundation

Why governance and compatibility promises matter to operators who sell services, not licences.

culture

The problem with April Fools in the MySQL/web space

Truth already reads like satire. On April 1st people question; the rest of the year they often do not.

OurDelta

This week in OurDelta — Vol 1

Discipline for running enhanced MySQL builds: know your patches, test failover.

MySQL

thread_stack in my.cnf

Set thread_stack to stop stack overflows in routines — it is not a throughput knob.

storage engines

Tokutek Fractal Tree indexes

What Fractal Tree / TokuDB claimed for ingest — and how to evaluate any engine.

Linux

Tool of the day: inotify

Watch config and path changes with inotifywait.

MySQL

Unqualified COUNT(*) speed: PBXT vs InnoDB

SELECT COUNT(*) FROM t with no WHERE forces a PK scan on MVCC engines. Cache ballpark figures; do not run it on every page view.

SQL

Walking trees with SQL

Adjacency lists, nested sets/path enums, and OQGRAPH — pick by access pattern.

ops

What a hosting provider did today

Disk-full cleanups that delete error logs destroy the incident timeline.

MySQL

What to do with the Falcon engine?

After Oracle/Sun, Falcon’s ‘InnoDB replacement’ story faded — keep it as a pluggable niche engine, not a discarded corpse.