Tarantool is one of the newest, most sophisticated players to the DBMS game in North America. In a few short months, Tarantool has become a highly sought-after technology due to its powerful stored procedures, SQL support, smart cache, and the speed of one million ACID transactions on a single CPU core. I had the opportunity to chat with Tarantool’s General Manager, Dennis Anikin, to learn more about the history of Tarantool, how it works, and what the future plans are for the expanding company.
Tell us a bit about yourself and your background. How did you get into the DBMS space?
I've been working in tech companies for over 20 years. Recent ones are Russian Internet giants Yandex and Mail.Ru Group. So I've experienced a lot about scalability. That is actually one of the worst problems that you could ever face working with technology. The main scalability lesson that I've learned is that you can easily scale a system that does not have state, but it is state-of-the-art to scale a system that does have a state. So, what does have a state? Databases (or DBMS)! So, scaling databases is the cutting-edge of tech companies. Having vast experience in that with Mail.Ru Group and Yandex, I decided to help other companies with this. That's why I started Tarantool as a business.
What is Tarantool and how did it get started?
Tarantool is a near-real-time in-memory database and in-memory data grid. We developed it nine years ago to solve performance issues at volume within Mail.Ru Group, a global Internet company. The first reason to create our own database system was the fact that no database could store and operate large friend graphs with billions of vertices then.
After Tarantool was tested in production, it started to be used in other services across the company. We saw that many other businesses were looking for faster transactions or queries, as well as greater in-memory power. We also wanted their contributions to further our own development. Partnering with the community was excellent, and it has always been part of our model to work with the developer community as well as the enterprise community to develop the product.
The reason was simple: If we enjoy it inside and if other folks enjoy it outside, then let's open commercial services for 24x7 support, offer custom development for those who want more than just a bare open source database, and provide reliable service for those who want the real uptime guarantee and SLA (service license agreement)!
How does Tarantool perform with the speed and reliability of a cache while having ACID transactions and features of a traditional RDBMS?
We’re able to do this because Tarantool keeps the copy of the whole dataset in RAM and persists all the changes to disk in the log file. Writing to the log file is extremely fast because it's append-only writing, which is the best pattern of usage for disks in terms of performance.
The protocol is fully asynchronous, which allows a single network socket to process many queries in parallel. This dramatically decreases the number of syscalls, which alone can improve performance over an order of magnitude. There are other small things that make Tarantool very fast and durable including the efficient code base.
What sets Tarantool apart from competitors like Redis?
People always try to compare Tarantool and Redis. Both are in-memory, fast, and have a good set of features. The major difference is that Tarantool is a full-scale database with transactions, stored procedures, and real persistence. It is not a temporary storage solution but can be a standalone database or a central hub to both store and receive information.
Therefore, you can augment MySQL, PostgreSQL, MS SQL Server, Oracle, and Redis without losing key functionality. It also has a built-in application server which allows an instance to be its own RESTful API, which further allows you to quickly create independent services with your high-performing and highly-available data.
What are your future plans for Tarantool?
In terms of the business, we find a lot of interest in telecommunications, finance, software companies, and industrial and logistics businesses. It’s really for anyone who is processing large amounts of transactions and queries, has a cluttered variety of data stores to manage, or wants to improve performance with less cost.
In addition to traditional mid and larger-size businesses, we are seeing growing interest in IIoT. Agriculture, transportation, and industrial companies are looking to deliver data from edge sensors to hubs and then online for monitoring, predictive maintenance, and logistics optimization.
In my opinion, out of the many exciting uses that we are seeing from the Tarantool community, I find the idea of microservice transformation to be the most exciting. I want to make Tarantool the premier platform for microservices, running building blocks like transactional cache, authentication, user profile 360-view, and developing additional features to solve common IT landscape issues related to a complex architecture, a mix of old and new systems, and growing demand for these systems.