Showing entries 91 to 100 of 174
« 10 Newer Entries | 10 Older Entries »
Displaying posts with tag: Tokutek (reset)
How We Spent a Tuesday Fixing a MySQL Replication Bug

We found a simple XA transaction that crashes MySQL 5.5 replication. This simple transaction inserts a row into an InnoDB table and a TokuDB table. The bug was caused by a flaw in the logging code exposed by the transaction’s use of two XA storage engines (TokuDB and InnoDB). This bug was fixed in the TokuDB 6.0.1 release.

Here are some details.  Suppose that a database contains the following tables.

create table t1 (a int) engine=InnoDB
create table t2 (a int) engine=TokuDB

 The following transaction

insert into t1 values (1)
insert into t2 values (2)

causes the replication slave to crash.

The crash occurs when mysqld tries to dereference a NULL pointer.

#4  0x000000000088e203 in MYSQL_BIN_LOG::log_and_order (this=0x14b8640, thd=0x7f7758000af0, xid=161, all=true, need_prepare_ordered=false, need_commit_ordered=true) at …

[Read more]
My Talks at MySQL Connect and Percona Live NYC

Solving the Challenges of Big Databases with MySQL

When you’re using MySQL for big data (more than ten times as large as main memory), these challenges often arise: loading data fast; maintaining indexes under insertions deletions, and updates; adding and removing columns online; adding indexes online; preventing slave lag; and compressing data effectively.

This session shows why some of these challenges are difficult to solve with storage engines based on B-trees, how Fractal Tree® data structures work, and why they can help solve these problems. Tokutek sells a transaction-safe Fractal Tree storage engine for MySQL, but the presentation is primarily about the underlying technology. It includes a discussion of both the theoretical and practical aspects of Fractal Tree indexes.

I have the privilege of being able to give this talk at both conferences, so please stop by my presentation at …

[Read more]
Balada Para Un Loco – A Review of the MySQL, NoSQL, and Cloud Conference

… Ya se que estás piantao, piantao, piantao…

For my lastest blog, a review of the MySQL, NoSQL and Cloud Conference, I’ll continue to use the tango metaphor. Balada para un loco (ballad for a crazy one) is a Piazzola classic and explains what I think of Santiago Lertora from Binlogic for single handedly putting together this event; he had to be piantao (slang for ‘crazy’) to pursue his vision to kick start the Open Source database community in South America into becoming as active as it is in the US and Europe. He was able to gather some renowned speakers such as our own Martin Farach-Colton, Sheeri Cabral from Mozilla, Max Mether and Massimo Brignoli from SkySQL, Colin Charles from Monty Program, Alejandro Kojima from the MySQL team at Oracle, Oracle ACE director Ronald Bradford, and many more. Among the firms attending, some …

[Read more]
How to Stop Playing “Hop and Seek”: MySQL Cluster and TokuDB, Part 2

In my last post, I wrote that I observed many similarities between TokuDB and MySQL Cluster. Many features that benefit TokuDB also benefit MySQL Cluster, and vice versa, with Hot Column Addition and Deletion (HCAD) being an example. Over my next few posts, I expand on some more of these possibly unexpected similarities.

Today I want to focus on optimizer support for clustering keys. Both MySQL Cluster and TokuDB can benefit from the MySQL optimizer supporting clustering keys. For TokuDB, the benefit is obvious, as TokuDB supports clustering keys. A non-negligible part of our effort is changing the …

[Read more]
Hot Table Optimization with MySQL

Table optimization is a necessary evil; tables sometimes need to be optimized to reclaim space or to improve query performance.  Unfortunately, MySQL blocks writes to a table while it is being optimized.  Because optimization time is proportional to the table size, writes can be blocked for a long time.  Fractal Tree indexes support online optimization; however, the MySQL metadata lock gets in the way of writing while optimizing.  We will describe a simple patch to MySQL that enables online optimization of TokuDB tables.

Why do tables need to be optimized?  Here are some reasons.

  • Insertions with random keys can result in a tree with underutilized leaf blocks.  Many tree algorithms split nodes in half when they become full.  If these nodes are stored in fixed sized blocks, like many B-trees do, then there can be a lot of wasted space.  Table optimization of B-trees write blocks with less …
[Read more]
Volver – MySQL, NoSQL, and Cloud Conference Latin America

con la frente marchita,
las nieves del tiempo
platearon mi sien…

Martin’s blog (Mi Buenos Aires Querido) was named after a tango, so I decided to follow his lead. The 4 lines of the refrain make reference to someone returning to Buenos Aires after 20 years, now looking a little bit older. I moved to the US about 15 years ago and have returned many times to visit. However, I have never gone back to participate in an event like this with so many renowned speakers from the MySQL community. The list include many people with whom I have worked with over the past decade. …

[Read more]
How to Stop Playing “Hop and Seek”: MySQL Cluster and TokuDB

As a TokuDB storage engine developer, numerous times I’ve been struck by the similarities between MySQL Cluster and TokuDB. Namely, many times where I find myself thinking, “TokuDB would benefit from this feature”, I also end up thinking “MySQL Cluster would benefit from this feature” as well.

At first glance, one may wonder why. TokuDB is a storage engine designed to work well on big data, providing compression, agility, and performance, while MySQL Cluster is a distributed database solution ( that provides (among many other things) auto sharding and 99.999% availability. TokuDB’s innovation, Fractal Trees® indexes, are designed to drastically reduce the number of disk seeks performed, but TokuDB still operates on a hard disk. MySQL Cluster operates over a network. How can we be two peas in a pod?

But when I …

[Read more]
Mi Buenos Aires Querido

Next week, a couple of us at Tokutek will be heading to Buenos Aires for the MySQL / MariaDB Conference & Expo LA. Gerry Narvaja actually grew up in Buenos Aires. My own family is Argentinian. I spent several years there as a child, and my childhood home in South Carolina was Argentinian in spirit: absolutely no English, and the only grits that entered my house were served with tomato sauce and called polenta!

As some of you get ready to visit Buenos Aires, maybe for the first time, I thought I’d share an abbreviated list of my favorite things to do.

First of all, make sure to watch the really fantastic con movie Nueve Reinas. Not only is it a great movie, but much of it takes place in the Hilton where the conference will be held.

[Read more]
Addressing Hot Schema Changes in MySQL

As ones data model evolves changing the database schema becomes painful, especially for big databases where the table must be taken offline. Fortunately, Tokutek introduced online schema changes starting in TokuDB v5.0.

A typical schema change involves adding or deleting a column from a table. These operations usually require the table to be rebuilt offline since the row format is different. In contrast to other storage engines however, column addition or deletion with TokuDB just inserts a broadcast update message into the fractal tree data structure, rather than rebuilding the table. This message defers changing rows from the old format to the new format and is executed after the alter table operation is long gone. The trick is to allow the storage engine to determine that the column addition or deletion does not require a …

[Read more]
Fractal Tree Indexing and Filesystems – HotStorage 2012

Modern file systems are well equipped to deal with large writes. One area that remains challenging however is to efficiently write out “microdata”, such as metadata and small portions of large files, while showing good I/O utilization when the data is read back. This challenge is evident with mount options like “noatime” which disables updating file access time on reads. This kind of solution avoids the problem altogether. Another approach, delayed allocation, is meant to coalesce small writes in memory as long as possible before writing it out to disk. Filesystems like ext4 and Btrfs use delayed allocation to make a best-effort at reducing fragmentation and random I/O.

Isn’t there a way to fundamentally solve filesystem fragmentation and random I/O?

This week, I’ll be speaking at HotStorage 2012 in Boston. My talk …

[Read more]
Showing entries 91 to 100 of 174
« 10 Newer Entries | 10 Older Entries »