{"id":5050,"date":"2019-08-22T02:31:55","date_gmt":"2019-08-22T02:31:55","guid":{"rendered":"http:\/\/www.odbms.org\/blog\/?p=5050"},"modified":"2019-08-24T02:38:45","modified_gmt":"2019-08-24T02:38:45","slug":"on-mariadb-interview-with-michael-widenius","status":"publish","type":"post","link":"https:\/\/www.odbms.org\/blog\/2019\/08\/on-mariadb-interview-with-michael-widenius\/","title":{"rendered":"On MariaDB. Interview with Michael Widenius"},"content":{"rendered":"<blockquote><p><strong>&#8220;The best possible database migration is when you are able to move all your data and stored procedures unchanged(!) to the new system.&#8221; &#8212;\u00a0Michael Widenius.<\/strong><\/p><\/blockquote>\n<p>I have interviewed <strong>Michael \u201cMonty\u201d Widenius, <\/strong>\u00a0<em>Chief Technology Officer at <\/em><a onclick=\"javascript:pageTracker._trackPageview('\/outgoing\/mariadb.com\/');\"  href=\"https:\/\/mariadb.com\/\"><strong><em>MariaDB Corporation<\/em><\/strong><\/a><em>.<\/em><\/p>\n<p>Monty is the \u201cspiritual father\u201d of MariaDB, a renowned advocate for the open source software movement and one of the original developers of MySQL.<\/p>\n<p>RVZ<\/p>\n<p><strong>Q1. What is adaptive scaling and why is it important for a database?<\/strong><\/p>\n<p><strong>Michael Widenius:\u00a0<\/strong>Adaptive scaling is provided to automatically change behavior in order to use available resources as efficiently as possible, as demands grows or shrinks. For a database, it means the ability to dynamically configure resources, adding or deleting data nodes and processing nodes according to demand. This provides both scale up and scale out in an easy manner.<\/p>\n<p>Many databases can do part of this manually, a few can do this semi-automatically. When it comes to read scaling with replication, there are a few solutions, like Oracle RAC, but there are very few relational database systems that can handle true write scaling while preserving true ACID properties. This is a critical need for any company that wants to compete in the data space. That\u2019s one of the reasons why <strong><a onclick=\"javascript:pageTracker._trackPageview('\/outgoing\/mariadb.com\/newsroom\/press-releases\/mariadb-acquires-clustrix-adding-distributed-database-technology\/');\"  href=\"https:\/\/mariadb.com\/newsroom\/press-releases\/mariadb-acquires-clustrix-adding-distributed-database-technology\/\">MariaDB acquired ClustrixDB<\/a>\u00a0<\/strong>last year.<\/p>\n<p><strong>Q2. Technically speaking, how is it possible to adjust scaling so that you can run the database in the background in a desktop with very few resources, and up to a multi node cluster with petabytes of data with read and write scaling?<\/strong><\/p>\n<p><strong>Michael Widenius:\u00a0<\/strong>Traditionally databases are optimized for one particular setup. It\u2019s very hard to be able to run efficiently both with a very small footprint, which is what desktop users are expecting, and yet provide extreme scale out.<\/p>\n<p>The reason we can do that in MariaDB Platform is thanks to the unique separation between the query processing and data storage layers (<a onclick=\"javascript:pageTracker._trackPageview('\/outgoing\/go.mariadb.com\/improve-performance-workload-optimized-storage-engines-Registration.html');\"  href=\"https:\/\/go.mariadb.com\/improve-performance-workload-optimized-storage-engines-Registration.html\">storage engines<\/a>). One can start by using a storage engine that requires a relatively small footprint (Aria or <a onclick=\"javascript:pageTracker._trackPageview('\/outgoing\/mariadb.com\/kb\/en\/library\/innodb-versions\/');\"  href=\"https:\/\/mariadb.com\/kb\/en\/library\/innodb-versions\/\"><strong>InnoDB<\/strong><\/a>) and, when demands grow, with a few commands move all or just part of the data to distributed storage with <a onclick=\"javascript:pageTracker._trackPageview('\/outgoing\/mariadb.com\/docs\/products\/mariadb-columnstore\/');\"  href=\"https:\/\/mariadb.com\/docs\/products\/mariadb-columnstore\/\">MariaDB ColumnStore<\/a>, <a onclick=\"javascript:pageTracker._trackPageview('\/outgoing\/mariadb.com\/kb\/en\/library\/spider\/');\"  href=\"https:\/\/mariadb.com\/kb\/en\/library\/spider\/\">Spider<\/a>, <a onclick=\"javascript:pageTracker._trackPageview('\/outgoing\/mariadb.com\/kb\/en\/library\/myrocks\/');\"  href=\"https:\/\/mariadb.com\/kb\/en\/library\/myrocks\/\">MyRocks<\/a>\u00a0or, in the future, <a onclick=\"javascript:pageTracker._trackPageview('\/outgoing\/mariadb.com\/products\/clustrixdb\/');\"  href=\"https:\/\/mariadb.com\/products\/clustrixdb\/\"><strong>ClustrixDB<\/strong><\/a>. One can also very easily move to a replication setup where you have one master for all writes and any number of read replicas. <strong><a onclick=\"javascript:pageTracker._trackPageview('\/outgoing\/mariadb.com\/docs\/usage\/mariadb-enterprise-cluster\/');\"  href=\"https:\/\/mariadb.com\/docs\/usage\/mariadb-enterprise-cluster\/\">MariaDB Cluster<\/a>\u00a0<\/strong>can be used to provide a fully functional master-master network that can be replicated to remote data centers.<\/p>\n<p>My belief is that MariaDB is the most advanced database in existence, when it comes to providing complex replication setups and very different ways to access and store data (providing OLTP, OLAP and <a onclick=\"javascript:pageTracker._trackPageview('\/outgoing\/mariadb.com\/docs\/usage\/htap\/');\"  href=\"https:\/\/mariadb.com\/docs\/usage\/htap\/\">hybrid OLTP\/OLAP<\/a>\u00a0functionalities) while still providing one consistent interface to the end user.<\/p>\n<p><strong>Q3. How do you plan to use <\/strong><strong><a onclick=\"javascript:pageTracker._trackPageview('\/outgoing\/mariadb.com\/newsroom\/press-releases\/mariadb-acquires-clustrix-adding-distributed-database-technology\/');\"  href=\"https:\/\/mariadb.com\/newsroom\/press-releases\/mariadb-acquires-clustrix-adding-distributed-database-technology\/\">ClustrixDB distributed database technology<\/a>\u00a0<\/strong><strong>for MariaDB?<\/strong><\/p>\n<p><strong>Michael Widenius:\u00a0<\/strong>We will add this as another storage engine for the user to choose from. What it means is that if one wants to switch a table called t1 from InnoDB to ClustrixDB, the only command the user needs to do is:<\/p>\n<p><em>ALTER TABLE t1 STORAGE_ENGINE=ClustrixDB; <\/em><\/p>\n<p>The interesting thing with ClustrixDB is not only that it\u2019s distributed and can automatically scale up and down based on demands, but also that a table on ClustrixDB can be accessed by different MariaDB servers. If you create a ClustrixDB table on one MariaDB server, it\u2019s at once visible to all other MariaDB servers that are attached to the same cluster.<\/p>\n<p><strong>Q3. Why is having <\/strong><strong><a onclick=\"javascript:pageTracker._trackPageview('\/outgoing\/mariadb.com\/kb\/en\/library\/sql_modeoracle-from-mariadb-103\/');\"  href=\"https:\/\/mariadb.com\/kb\/en\/library\/sql_modeoracle-from-mariadb-103\/\">Oracle compatibility in MariaDB<\/a>\u00a0<\/strong><strong>a game changer for the database industry?<\/strong><\/p>\n<p><strong>Michael Widenius:<\/strong>MariaDB Platform is the only enterprise open source database that supports a significant set of Oracle syntax. This makes it possible for the first time to easily move Oracle applications to an open source solution, get rid of single-vendor lock-in and leverage existing skill sets. MariaDB Corporation is also the best place to get <a onclick=\"javascript:pageTracker._trackPageview('\/outgoing\/mariadb.com\/services\/migration-practice\/');\"  href=\"https:\/\/mariadb.com\/services\/migration-practice\/\">migration help<\/a>\u00a0as well as <a onclick=\"javascript:pageTracker._trackPageview('\/outgoing\/mariadb.com\/products\/platform-subscription\/');\"  href=\"https:\/\/mariadb.com\/products\/platform-subscription\/\">enterprise features, consultative support and maintenance<\/a>.<\/p>\n<p><strong>Q4. How do you manage with MariaDB to parse, depending on the case,\u00a0 approximately 80 percent of the legacy Oracle PL\/SQL without rewriting the code?<\/strong><\/p>\n<p><strong>Michael Widenius:\u00a0<\/strong>Oracle PL\/SQL was originally based on the same standard that created SQL, however Oracle decided to use different syntax than what\u2019s used in ANSI SQL. Fortunately, most of the logical language constructs are the same. This made it possible to provide a mapping from most of the PL\/SQL constructs to ANSI.<\/p>\n<p>What we did:<\/p>\n<p>\u2013 Created a new parser, sql_yacc_ora.yy, which understands the PL\/SQL constructs, and map the PL\/SQL syntax to existing MariaDB internal structures.<\/p>\n<p>\u2013 Added support for SQL_MODE=ORACLE mode, to allow the user to switch which parser to use. The mode is stored as part of SQL procedures to allow users to run a stored procedure without having to know if it\u2019s written in ANSI SQL or PL\/SQL.<\/p>\n<p>\u2013 Extended MariaDB with new Oracle compatibility that we didn\u2019t have before such as SEQUENCES, PACKAGES, ROW TYPE etc.<\/p>\n<p>You can read all about the Oracle compatibility functionality that MariaDB supports <a onclick=\"javascript:pageTracker._trackPageview('\/outgoing\/mariadb.com\/kb\/en\/library\/sql_modeoracle-from-mariadb-103\/');\"  href=\"https:\/\/mariadb.com\/kb\/en\/library\/sql_modeoracle-from-mariadb-103\/\"><strong>here<\/strong><\/a>.<\/p>\n<p><strong>Q5. When embarking on a database migration, what are the best practices and technical solutions you recommend?<\/strong><\/p>\n<p><strong>Michael Widenius:\u00a0<\/strong>The best possible database migration is when you are able to move all your data and stored procedures unchanged(!) to the new system.<\/p>\n<p>That is our goal when we are supporting a <a onclick=\"javascript:pageTracker._trackPageview('\/outgoing\/go.mariadb.com\/19Q4-WBN-GLBL-OracletoMariaDBPragmaticMigrationStrategies-2019-08-15.html');\"  href=\"https:\/\/go.mariadb.com\/19Q4-WBN-GLBL-OracletoMariaDBPragmaticMigrationStrategies-2019-08-15.html\">migration from Oracle to MariaDB<\/a>. This usually means that we are working closely with the customer to analyze the difficulty of the migration and determine a migration plan. It also helps that MariaDB supports MariaDB SQL\/PL, a compatible subset of Oracle PL\/SQL language.<\/p>\n<p>If MariaDB is fairly new to you, then it\u2019s best to start with something small that only uses a few stored procedures to give DBAs a chance to get to know MariaDB better. When you\u2019ve succeeded to move a couple of smaller installations, then it\u2019s time to start with the larger ones. Our <a onclick=\"javascript:pageTracker._trackPageview('\/outgoing\/mariadb.com\/services\/migration-practice\/');\"  href=\"https:\/\/mariadb.com\/services\/migration-practice\/\">expert migration team<\/a>\u00a0is standing by to assist you in any way possible.<\/p>\n<p><strong>Q6. Why did you combine your transactional and analytical databases into a single platform, <\/strong><a onclick=\"javascript:pageTracker._trackPageview('\/outgoing\/mariadb.com\/newsroom\/press-releases\/new-mariadb-platform-x3\/');\"  href=\"https:\/\/mariadb.com\/newsroom\/press-releases\/new-mariadb-platform-x3\/\"><strong>MariaDB Platform X3<\/strong><\/a><strong>?<\/strong><\/p>\n<p><strong>Michael Widenius:\u00a0<\/strong>Because thanks to the storage engine interface it\u2019s easy for MariaDB to provide both transactional and analytical storage with one interface.\u00a0 Today it\u2019s not efficient or desirable to have to move between databases just because your data needs grows. MariaDB can also provide the unique capability of using different storage engines on master and replicas. This allows you to have your master optimized for inserts while some of your replicas are optimized for analytical queries.<\/p>\n<p><strong>Q7. You also launched a managed service supporting public and hybrid cloud deployments. What are the benefits of such service to enterprises?<\/strong><\/p>\n<p><strong>Michael Widenius:\u00a0<\/strong>Some enterprises find it hard to find the right DBAs (these are still a scarce resource) and would rather want to focus on their core business instead of managing their databases. The <strong><a onclick=\"javascript:pageTracker._trackPageview('\/outgoing\/mariadb.com\/resources\/datasheets\/mariadb-platform-managed-service\/');\"  href=\"https:\/\/mariadb.com\/resources\/datasheets\/mariadb-platform-managed-service\/\">managed service<\/a>\u00a0<\/strong>is there to help these enterprises to not have to think about how to keep the database servers up and running. Maintenance, upgrading and optimizing of the database will instead be done by people that are the definitive experts in this area.<\/p>\n<p><strong>Q8. What are the limitations of existing public cloud service offerings in helping companies succeed across their diverse cloud and on-prem environments?<\/strong><\/p>\n<p><strong>Michael Widenius:\u00a0<\/strong>Most of the existing cloud services for databases only ensures that the \u201cdatabase is up and running\u201d. They don\u2019t provide database maintenance, upgrading, optimization, consultative support or disaster management. More importantly you\u2019re only getting a watered down version of MariaDB in the cloud rather than the full featured version you get with MariaDB Platform. If you encounter performance problems, serious bugs, crashes or data loss, you are on your own. You also don\u2019t have anyone to talk with if you need new features for your database that your business requires.<\/p>\n<p><strong>Q9. How does MariaDB Platform Managed Service differ from existing cloud offering such as Amazon RDS and Aurora?<\/strong><\/p>\n<p><strong>Michael Widenius:\u00a0<\/strong>In our benchmarks that we shared at our MariaDB OpenWorks conference earlier this year, we showed that <a onclick=\"javascript:pageTracker._trackPageview('\/outgoing\/mariadb.com\/products\/mariadb-platform-managed-service\/');\"  href=\"https:\/\/mariadb.com\/products\/mariadb-platform-managed-service\/\">MariaDB\u2019s Managed Service<\/a>\u00a0offering beats Amazon RDS and Aurora when it comes to performance. Our managed service also unlocks capabilities such as columnar storage, data masking, database firewall and many more features that you can\u2019t get in Amazon\u2019s services. See the full list <a onclick=\"javascript:pageTracker._trackPageview('\/outgoing\/mariadb.com\/products\/mariadb-platform-managed-service\/');\"  href=\"https:\/\/mariadb.com\/products\/mariadb-platform-managed-service\/\">here<\/a>\u00a0for a comparison.<\/p>\n<p><strong>Q10. What are the main advantages of using a mix of cloud and on-prem?<\/strong><\/p>\n<p><strong>Michael Widenius:\u00a0<\/strong>There are many reasons why a company will use a mix of cloud and on-prem. Cloud is where all the growth is and many new applications will likely go to the cloud. At the same time, this will take time and we\u2019ll see many applications stay on prem for a while. Companies may decide to keep applications on prem for compliance and regulatory reasons as well. In general, it\u2019s not good for any company to have a vendor that totally locks them into one solution. By ensuring you can run the exact same database on both on-prem and cloud, including ensuring that you have all your data in both places, you can be sure your company will not have a single point of failure.<\/p>\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\n<a onclick=\"javascript:pageTracker._trackPageview('\/outgoing\/www.odbms.org\/blog\/wp-content\/uploads\/2019\/08\/monty-1.jpeg');\"  href=\"http:\/\/www.odbms.org\/blog\/wp-content\/uploads\/2019\/08\/monty-1.jpeg\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone  wp-image-5068\" src=\"http:\/\/www.odbms.org\/blog\/wp-content\/uploads\/2019\/08\/monty-1.jpeg\" alt=\"monty-1\" width=\"196\" height=\"196\" srcset=\"https:\/\/www.odbms.org\/blog\/wp-content\/uploads\/2019\/08\/monty-1.jpeg 960w, https:\/\/www.odbms.org\/blog\/wp-content\/uploads\/2019\/08\/monty-1-150x150.jpeg 150w\" sizes=\"(max-width: 196px) 100vw, 196px\" \/><\/a><br \/>\n<strong>Michael &#8220;Monty&#8221; Widenius,\u00a0<\/strong> <em>Chief Technology Officer, MariaDB.<\/em><br \/>\n<em><br \/>\nMonty is the \u201cspiritual father\u201d of MariaDB, a renowned advocate for the open source software movement and one of the original developers of MySQL, the predecessor to MariaDB. In addition to serving as CTO for the MariaDB Corporation, he also serves as a board member of the MariaDB Foundation. He was a founder at SkySQL, and the CTO of MySQL AB until its sale to Sun Microsystems (now Oracle). Monty was also the founder of TCX DataKonsult AB, a Swedish data warehousing company. He is the co-author of the MySQL Reference Manual and was awarded in 2003 the Finnish Software Entrepreneur of the Year prize. In 2015, Monty was selected as one of the 100 most influential persons in the Finnish IT market. Monty studied at Helsinki University of Technology and lives in Finland.<\/em><\/p>\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/p>\n<p><strong>Resources<\/strong><\/p>\n<p><a onclick=\"javascript:pageTracker._trackPageview('\/outgoing\/mariadb.com\/newsroom\/press-releases\/mariadbs-restful-nights-release-brings-peace-of-mind-to-enterprise-customers\/');\"  href=\"https:\/\/mariadb.com\/newsroom\/press-releases\/mariadbs-restful-nights-release-brings-peace-of-mind-to-enterprise-customers\/\">MariaDB\u2019s \u201cRestful Nights\u201d Release Brings Peace of Mind to Enterprise Customers<\/a><\/p>\n<p><strong>Related Posts<\/strong><\/p>\n<p><a onclick=\"javascript:pageTracker._trackPageview('\/outgoing\/www.odbms.org\/2019\/06\/on-mariadb-kubernetes-operator-qa-with-saravana-krishnamurthy\/');\"  href=\"http:\/\/www.odbms.org\/2019\/06\/on-mariadb-kubernetes-operator-qa-with-saravana-krishnamurthy\/\" target=\"_blank\">On MariaDB Kubernetes Operator. Q&amp;A with\u00a0Saravana Krishnamurthy. ODBMS.org,\u00a0 June 21, 2019<\/a><\/p>\n<p><a onclick=\"javascript:pageTracker._trackPageview('\/outgoing\/www.odbms.org\/blog\/2019\/04\/on-the-database-market-interview-with-merv-adrian\/');\"  href=\"http:\/\/www.odbms.org\/blog\/2019\/04\/on-the-database-market-interview-with-merv-adrian\/\" target=\"_blank\">On the Database Market. Interview with Merv Adrian, ODBMS Industry Watch,\u00a0April 23, 2019<\/a><\/p>\n<p><strong>Follow us on Twitter: <a onclick=\"javascript:pageTracker._trackPageview('\/outgoing\/twitter.com\/odbmsorg');\"  href=\"https:\/\/twitter.com\/odbmsorg\" target=\"_blank\">@odbmsorg<\/a><\/strong><\/p>\n<p>##<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>&#8220;The best possible database migration is when you are able to move all your data and stored procedures unchanged(!) to the new system.&#8221; &#8212;\u00a0Michael Widenius. I have interviewed Michael \u201cMonty\u201d Widenius, \u00a0Chief Technology Officer at MariaDB Corporation. Monty is the \u201cspiritual father\u201d of MariaDB, a renowned advocate for the open source software movement and one [&hellip;]<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[1488,1487,97,106,1491,858,357,1490,1489,1485,1484,395,435,436,1051,449,1486],"_links":{"self":[{"href":"https:\/\/www.odbms.org\/blog\/wp-json\/wp\/v2\/posts\/5050"}],"collection":[{"href":"https:\/\/www.odbms.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.odbms.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.odbms.org\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.odbms.org\/blog\/wp-json\/wp\/v2\/comments?post=5050"}],"version-history":[{"count":20,"href":"https:\/\/www.odbms.org\/blog\/wp-json\/wp\/v2\/posts\/5050\/revisions"}],"predecessor-version":[{"id":5072,"href":"https:\/\/www.odbms.org\/blog\/wp-json\/wp\/v2\/posts\/5050\/revisions\/5072"}],"wp:attachment":[{"href":"https:\/\/www.odbms.org\/blog\/wp-json\/wp\/v2\/media?parent=5050"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.odbms.org\/blog\/wp-json\/wp\/v2\/categories?post=5050"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.odbms.org\/blog\/wp-json\/wp\/v2\/tags?post=5050"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}