Author Archives: Rich Prohaska

Why TokuDB does not use the...

Posted on by Rich Prohaska

The ‘uint3korr’ function inside of the mysqld server extracts a 3 byte unsigned integer from a memory buffer. One use is for ‘mediumint’ columns which encode their value in 3 bytes. MySQL 5.6 and MariaDB 10.0 claims to have optimized…

Leave a comment

Uninitialized data in the TokuDB recovery log

Posted on by Rich Prohaska

A TokuDB MySQL test run with valgrind reported an uninitialized data error when writing into the TokuDB recovery log.
==1032== Syscall param write(buf) points to uninitialised byte(s)
==1032== at 0x3EFA60E4ED: ??? (in /lib64/libpthread-2.12.so)
==1032== by 0xB894038: toku_os_full_write(int, void const*, unsigned…

Leave a comment

Lock Escalation and Big Transactions in TokuDB and...

Posted on by Rich Prohaska

We have seen TokuDB lock escalation stall the execution of SQL operations for tens of seconds. To address this problem, we changed the lock escalation algorithm used by TokuDB and TokuMX so that the cost of lock escalation only affects…

Leave a comment

Big trouble with zero-length character columns in...

Posted on by Rich Prohaska

What good is a zero-length character column in a MySQL table? A zero-length character column has type of ‘char(0)’. If it is nullable, then it can at least store one bit. If it is not nullable, then the value for…

Leave a comment

What does the ‘Incorrect key file for...

Posted on by Rich Prohaska

What does it mean if MySQL returns the ‘Incorrect key file for table’ error for one of my queries? The answer is complicated and depends on which storage engine is returning the error. We have debugged two cases which we…

Leave a comment

Problems with Multiple XA Storage Engines in MySQL...

Posted on by Rich Prohaska

While integrating TokuDB into MySQL 5.6, we found that MySQL 5.6 does not support more than one XA storage engine. For example, there is an assert in the ha_recover function that fires when the total number of XA storage engines…

1 Comment

Interactive Debugging of Transaction Conflicts...

Posted on by Rich Prohaska

I am developing a concurrent application that uses TokuDB to store its database. Sometimes, one of my SQL statements returns with a ‘lock wait timeout exceeded’ error. How do I identify the cause of this error? First, I need to…

4 Comments

A TokuDB Stall Caused by Conflicting Transactions...

Posted on by Rich Prohaska

One of our customers reported that ‘create table select from’ statements stall for a period of time equal to the TokuDB lock timeout.  This indicated a lock conflict between multiple transactions.  In addition, other MySQL clients that were opening unrelated…

Leave a comment

A TokuDB Stall Caused by a Big Transaction and How...

Posted on by Rich Prohaska

One of our customers sometimes observed lots of simple insertions taking far longer than expected to complete. Usually these insertions completed in milliseconds, but the insertions sometimes were taking hundreds of seconds. These stalls indicated the existence of a serialization…

2 Comments

Fast Updates with TokuDB

Posted on by Rich Prohaska

With TokuDB v6.6 out now…, I’m excited to present one of my favorite enhancements: fast updates with TokuDB. Update intensive applications can have their throughput limited by the random read capacity of the storage system. The cause of the

2 Comments