Feb 03, 2014 |
MySQL
William Zola over at MongoDB gave a great talk called “The (Only) Three Reasons for Slow MongoDB Performance”. It reminded me of an interesting characteristic of updates in MongoDB. Because MongoDB’s main data store is a flat file and secondary indexes store offsets into the flat file (as I explain here), if the location of […]
Nov 27, 2013 |
MySQL
This past Wednesday, I attended a talk at the Washington DC MongoDB User Group given by John Schulz, a chief architect at AOL. In the talk, TokuMX VS MongoDB Bake Off Based on a Primary AOL Use case, he describes his experiments comparing TokuMX with MongoDB for his use case. The experiments show TokuMX in […]
Nov 07, 2013 |
MySQL
From the application’s perspective, TokuMX behaves very similarly, if not identically, to MongoDB in many ways. But in one subtle yet important way, on non-sharded clusters, TokuMX is different. With MongoDB, operations on each single document are transactional. With TokuMX, each statement is transactional. Although I explain this in my last post, let me reiterate […]
Oct 31, 2013 |
MySQL
Since our initial release last summer, TokuMX has supported fully ACID and MVCC multi-statement transactions. I’d like to take this post to explain exactly what we’ve done and what features are now available to the user. But before beginning, an important note: we have implemented this for non-sharded clusters only. We do not support distributed […]
Oct 11, 2013 |
MySQL
Since introducing TokuMX, we’ve discussed benefits that TokuMX has for existing MongoDB applications that require no changes. In this post, I introduce an extension we’ve made to the indexing API: clustering indexes, a tool that can tremendously improve query performance. If I were to speak to someone about clustering indexes, I think the conversation could […]
Aug 15, 2013 |
MySQL
A common MongoDB tip is to create short field names to save storage space. Because MongoDB does not compress its data on disk and stores field names in each document, using longer field names leads to bigger documents which leads to more storage space usage. The downside here is developers find short field names unintuitive […]
Aug 02, 2013 |
MySQL
On Wednesday night, the Boston MongoDB User group was kind enough to have me speak about TokuMX Internals. I spoke about Fractal Tree® indexes and the technical reasons behind the benefits they provide to MongoDB applications. Although the talk mostly references TokuMX and MongoDB, all the theory applies to TokuDB and MySQL as well. My slides […]
Jul 22, 2013 |
MySQL
A lot is said about the differences in the data between MySQL and MongoDB. Things such as “MongoDB is document based”, “MySQL is relational”, “InnoDB has a clustering key”, etc.. Some may wonder how TokuDB, our MySQL storage engine, and TokuMX, our MongoDB product, fit in with these data layouts. I could not find anything […]
Jul 15, 2013 |
MySQL
Before creating a unique index in TokuMX or TokuDB, ask yourself, “does my application really depend on the database enforcing uniqueness of this key?” If the answer is ANYTHING other than yes, do not declare the index to be unique. Why? Because unique indexes may kill your write performance. In this post, I’ll explain why. […]
Jul 09, 2013 |
MySQL
In my last post, I showed what a Fractal Tree® index is at a high level. Once again, the Fractal Tree index is the data structure inside TokuMX and TokuDB, our MongoDB and MySQL products. One of its strengths is the ability to get high levels of compression on the stored data. In this post, […]
Jul 02, 2013 |
MySQL
With our recent release of TokuMX 1.0, we’ve made some bold claims about how fast TokuMX can run MongoDB workloads. In this post, I want to dig into one of the big areas of improvement, write performance and reduced I/O. One of the innovations of TokuMX is that it eliminates a long-held rule of databases: […]
Jun 03, 2013 |
MySQL
Over several blog posts, Tim has presented performance results on large data sets of TokuMX, our MongoDB product with fractal tree indexes integrated, side by side with MongoDB. Results look good. We’ve shown improved throughput numbers on a sysbench benchmark, faster load times, and high compression. So what is TokuMX, and how does it achieve […]
Apr 24, 2013 |
MySQL
Since we announced that TokuDB is now open source, there has been a lot of positive feedback (thanks!) and also some questions about the details. I want to take this opportunity to give a quick high level guide to describe what our repositories on Github are. Here are the repositories: ft-index. This repository is the […]
Apr 03, 2013 |
MySQL
Earlier, I talked about the transactional semantics we are introducing to MongoDB. As I hinted at the end of the post, we are actually doing more. We are introducing multi-statement transactions. That’s right, multiple queries, updates, deletes, and inserts will be able to run inside of a single transaction. We are working on the details […]
Apr 02, 2013 |
MySQL
People claim that MongoDB is not transactional. It actually is, and that’s a good thing. In MongoDB 2.2, individual operations are Atomic. By having per database locks control reads and writes to collections, write operations on collections are Consistent and Isolated. With journaling on, operations may be made Durable. Put these properties together, and you […]
Sep 18, 2012 |
MySQL
At next week’s Strange Loop conference, I will give a talk on “Understanding Indexing”. The session is 10 am Monday, September 24th, and will be held in the Midland States Room.
Jul 23, 2012 |
MySQL
Three rules on making indexes around queries to provide good performance Application performance often depends on how fast a query can respond and query performance almost always depends on good indexing. So one of the quickest and least expensive ways to increase application performance is to optimize the indexes. This talk presents three simple and […]
Jul 03, 2012 |
MySQL
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 […]
Jun 21, 2012 |
MySQL
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 […]
Nov 21, 2011 |
MySQL
As a storage engine developer, I am excited for MySQL 5.6. Looking at http://dev.mysql.com/tech-resources/articles/whats-new-in-mysql-5.6.html, there has been plenty of work done to improve the performance of reads in MySQL for all storage engines (provided they take advantage of the new APIs). What would be great to add is API improvements to increase the performance of […]