O_DSYNC Flush Method for MySQL on Google Cloud
On my previous article, I tested ZFS with Google Compute engine using persistent disks and local SSDs. ZFS shows better performance with the help of a fast dedicated SLOG using the local SSD and NVMe driver – though the cloud, especially Google Cloud may not be the best platform for these tests. Fast forward to …
Testing ZFS vs ext4 with sysbench (Google Cloud)
I’ve had a chance to revisit ZFS lately and decided to take some more notes. One highlight of this test is revalidating a quick performance test against ext4. This test is ran on Google Compute Engine n1-highmem-8 (8 vCPU, 52GB RAM) with 2x375G local SSD attached via NVMe and 4x500G standard persistent disks using the …
MongoDB: No host in new replica set maps to this node
In the “trivial-errors” category, I imagine one will encounter this error when setting up MongoDB replica sets. > rs.initiate(rsconfig) { "ok" : 0, "errmsg" : "No host described in new configuration 1 for replica set replset maps to this node", "code" : 93 } What this means is that the current instance cannot connect to …
Assigning Limited Set of Floating IPs with Your DevStack
Recently, I wanted to use the public IPs assigned to my server to the devstack environment. The hosting company has allocated a /29 subnet for the server I am renting. In my local.conf I can either specify FLOATING_RANGE=204.xx.xxx.10/29 to so I can use 204.xx.xxx.10-14 as floating IPs for the VMs. However, I do not want …
Does Python MySQLdb Make You Wait?
Recently while writing a data loading application for a customer, we’ve come into a problematic situation with the Python MySQLdb module that can be installed with base RHEL repository or DVD. As a little background, this application uses an HA architecture where a Virtual IP can be assigned to different servers during a failover scenario. …
Percona Replication Manager – Renaming Cluster Hostnames
Recently I’ve had to rename a node on a production cluster – however, I did not have an experience on this yet so I decided to try on a sandbox and establish a known procedure. Without further ado, assuming we have 3 nodes and we want to rename ha3’s hostname to ha03. [root@ha01 ~]# crm …
Speaking at RubyConf Philippines
I will be speaking about High Performance Rails with MySQL on RubyConfPH. If you use Ruby on Rails with MySQL and in Manila on March 28-29, you should register for the event!
Sandboxed MySQL Utilities – HowTo
Often I would need to work on customer servers where MySQL Utilities would be a really good fit for the tools I need. However, I would not want to mess around with the customer servers just to have it running so I would have the tools built and sandboxed on its own directory where I …
XtraBackup Complains of Missing perl-DBD-MySQL
I was busy testing a PXC cluster today when suddenly was buffled with a confusing error: 140108 23:33:39 innobackupex: Connecting to MySQL server with DSN 'dbi:mysql:;mysql_read_default_group=xtrabackup' (using password: NO). innobackupex: Error: Failed to connect to MySQL server as DBD::mysql module is not installed at /usr/bin/innobackupex line 2913. OK, so my first though was DBD::mysql is …
RDS Migration from 5.5 to 5.6 with mysqldump
Amazon recently announced support for 5.6, unfortunately, direct upgrade from lower versions is not yet supported. On a recent migration work – running mysqldump flat out would’ve meant 6+hrs of downtime. How did we cut it off to 1h45m? Simple, run dump per table and pipe it directly to the new 5.6 instance in parallel …
Limit The Size of Your Core Files on Linux
So we all know that when troubleshooting MySQL crashes or any other processes in that regard, we simply enable core files to be dumped when the appropriate signal it triggered. To get the best results, we’d set the core file size limit everywhere to unlimited and be done with it, but what if you want …
Default RDS Account Privileges
I was searching looking for the PRIVILEGES that comes with the primary MySQL account on RDS, but it looks like this is not documented anywhere nor blogged about yet. So for the sake of other users, here it is: GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY …
Zend_Paginator Without Adapter Data
If you simply want to take advantage of Zend_Paginators page generation function without feeding it actual data, how do you do it? Simple, implement Zend_Paginator_Adapter_Interface in your custom class and override three functions like below: <?php class Dotmanila_Paginator_Adapter_Null implements Zend_Paginator_Adapter_Interface { private $_count = 0; public function __construct(array $data) { if(isset($data['count']) AND $data['count'] > 0) …
Optimizing MIN and MAX MySQL Functions
MySQL can optimize aggregate functions like MIN and MAX as long as the columns specified are indexed. This means that, in the case of MIN and MAX, the optimizer should be able to identify the highest and lowest values of an indexed column from the B-Tree index. Say I have a table like below: CREATE …
Pacemaker Failed Actions ‘not installed’ And ‘not configured’
Playing around with Percona Replication Manager, and being new to Pacemaker, some errors were somewhat cryptic. May 26 09:53:39 [2181] ha01.localdomain pengine: notice: unpack_rsc_op: Preventing p_mysql from re-starting on ha02.localdomain: operation monitor failed 'not installed' (rc=5) May 26 09:53:39 [2181] ha01.localdomain pengine: notice: unpack_rsc_op: Preventing op from re-starting on ha02.localdomain: operation monitor failed 'not installed' …
MySQL Backups, The Tools So Far
Backups is one of the most important part of any MySQL deployment, and nowadays, there’s a number of tools to choose from depending on how your organization implements them. The purpose of this post is to enumerate the main tools and some helpers that makes backing up and testing/restoring your backups more convenient. By all …
Reduce Stack Frame Depth from XDebug Trace Output
Earlier, I’ve written about how to dump code trace from your PHP application using XDebug, however, more often that not, you get lengthy results and you simply want to get an overview up to certain depth. I’ve created a simple PHP for that which you can find here. It’s fairly easy to use, simply feed …
Check (Rough) Progress of Your CSV Import to MySQL
If you are importing large CSV or SQL dumps to MySQL, chances are you were looking for ways to see how far the import has gone. If you know how many rows there are from the file being imported, you can do a SELECT COUNT(*) but that would take sometime for the query to finish …
Identify Bottleneck on your PHP Scripts with XDebug Code Trace
XDebug has been around for a while and I have been looking to try its features for a while. This time, I was able to poke around briefly with dumping code traces for my PHP code. 1. Make sure to have XDebug extension installed, you can either do so from your OS package management or …
Achieve 100% Uptime, The Ultimate Solution
. . . you did not just fall for this 🙂