Percona Live featured talk with Konstantin Osipov: Tarantool – a Lua Based Database Engine and In-Memory Data Grid

Percona Live featured talk with Konstantin OsipovWelcome to the next installment of our talks with Percona Live Data Performance Conference 2016 speakers! In this series of blogs, we’ll highlight some of the speakers that will be at this year’s conference, as well as discuss the technologies and outlooks of the speakers themselves. Make sure to read to the end to get a special Percona Live registration bonus! This blog is Percona Live featured talk with Konstantin Osipov.

In this installment, we’ll meet Konstantin Osipov, Developer and Architect at His talk is Tarantool – a Lua based database engine and in-memory data grid, and will focus on a task queue application using Tarantool as an application server and a database.

I got a chance to discuss Konstantin’s talk with him:

Percona: Give me a brief history of yourself: how you got into database development, where you work, what you love about it.

Konstantin: I am a computer science graduate of the Moscow State University, 2001. In 2003 I joined MySQL AB (at that time a small Swedish company!) as a server engineer. The first release I took part in was MySQL 4.1, and I stayed with the company till MySQL 5.5 (released by Oracle).

MySQL journey was a bumpy and fun ride. First of all, it was a lot of work to make a quality product. I still have a souvenir clock from 2008 with the inscription “666 bugs fixed” (the actual number of bugs fixed in 5.1 before it became generally available). As MySQL development shifted focus from multi-engine architecture to better integration with InnoDB, I left since I felt my technical vision was at odds with the product priorities as set by Oracle.

Though I left MySQL team, I didn’t leave the open source community. MySQL 5.7 ships with a feature I contributed (new user level locks).

Tarantool, the project I joined in 2010, endorses the open source values not only with its source code license (it’s 2-clause BSD) but also in the governance of the trademark and in working with the contributors.

It’s a shot at a few big ideas that have been emergent for quite a while:

  • It’s an in-memory database since more and more workloads are fitting in memory and can be served with in-memory This lowers latency, and makes it more predictable – at a lower cost.
  • It’s built around a shared-nothing architecture to perform better on current and future hardware that is massively parallel.
  • We’re one of the few databases following the tenets of Michael’s Stonebraker paper “The End of an Architectural Era (It’s Time for a Complete Rewrite).”
  • It’s highly extensible. Tarantool has pluggable storage, making it relatively easy to add custom storage engines. It has a public programming API which we use to implement many of the features of the product.

Having said that, myself and the team have always had the focus on production quality software. Mail.Ru, the founder of the project and its anchor customer, has thousands of instances in production use, many of which are on mission critical business paths.

Perhaps, if put into a single sentence, this is an attempt to apply good engineering to some of the past decade’s great ideas circulating in the open source and academic communities.

Percona: Your talk is going to be on “Tarantool – a Lua based database engine and in-memory data grid.” So, I don’t know that Tarantool is as common a solution as MySQL or MongoDB – can you describe it relation to how it compares to other database engines?

Konstantin: We have placed ourselves quite a bit apart from other databases by the way we make database technology available to the end user. From a user perspective, Tarantool is not a database management server – it’s a programming language. Tarantool is a Lua execution environment and is fully compatible with Lua syntax, packages and tools. A typical application for Tarantool is a custom business logic first, and persistent and replicated state second.

In a typical deployment, Tarantool replaces not another database but a custom C++ application server with its database back-end (whatever it is). Some users compare us to Redis, others to RabbitMQ, and others use Tarantool to replace multiple overloaded MySQL instances.

Percona: Where does it work best? What types of workloads is it suited for and why would you suggest it as a solution, as opposed to something more “mainstream”?

Konstantin: Our main use is as an in-memory database which is a reliable, primary data source. You might want to put all data in memory for many reasons:

  • To provide better end-user experience, by lowering the latency and making it stable
  • To scale to serve hundreds of thousands of requests
  • Your application requires complicated business logic while demands on performance are still near real-time.

Many beginner users confuse in-memory database technology and caching, be it built into a database engine or standalone. The key to understanding the difference is the observation that many modern workloads are CPU or concurrency bound.

In the famous paper “OLTP Through the Looking Glass, and What We Found There,” by Stavros Harizopoulos et al, the authors demonstrate that 88% of the execution time of a disk-based database is in activities, not fetching the data from disk.

Tarantool perhaps does not solve different problems, but it does unleash the power of hardware – making it possible to solve existing data problems at higher performance and lower cost.

Percona: What would you say Tarantool needs to do to compete with some of the more recognized solutions? What keeps you up at night with regard to the future of Tarantool?

Konstantin: I prefer working on the future to talking about it! For the past five years, Tarantool has been focused on making the single core transaction processing great. In future releases, we will put more focus on making the technology more useful to a broader community, and this includes better support for clustering, query languages, management software, etc.

Percona: What are you most looking forward to at Percona Live Data Performance Conference 2016?

Konstantin: MySQL has always been a technological diversity pioneer, with different storage engines and replication technology. So I really love the shift to more broad data performance needs. I can’t stress it enough.

I also see this as a transition for MySQL and the community into a new era of diverse data management approaches. And thanks to this shift, Tarantool got a chance to get known by a great community of DBAs and data engineers.

I am also looking forward to the high-quality content. At conferences, my personal agenda is always less marketing and more education. I love that the conference is by engineers, for engineers. In talks, I’m always looking forward to learning the how not what, and I think Percona’s conference has a lot of it. I try to make my own talks follow this spirit as well.

You can read more about Tarantool and Konstantin’s thoughts about it at his personal blog on LiveJournal, or at the Tarantool Facebook page. He also tweets regularly on Twitter.

Come and see the Percona Live featured talk with Konstantin Osipov. To see Konstantin’s talk, register for Percona Live Data Performance Conference 2016. Use the code “FeaturedTalk” and receive $100 off the current registration price!

The Percona Live Data Performance Conference is the premier open source event for the data performance ecosystem. It is the place to be for the open source community as well as businesses that thrive in the MySQL, NoSQL, cloud, big data and Internet of Things (IoT) marketplaces. Attendees include DBAs, sysadmins, developers, architects, CTOs, CEOs, and vendors from around the world.

The Percona Live Data Performance Conference will be April 18-21 at the Hyatt Regency Santa Clara & The Santa Clara Convention Center.

Share this post