Wednesday, 28 March 2007

Questions and Answers During the First Session

On Server and Storage Engines

Q from Alessandro: What about the filesystem for MyISAM in a small company? Better ReiserFS or EXT3?
As Anders said, it's a matter of taste. XFS is a good alternative too. Ext3 is stable, but sometimes slow and a bit outdated. Many like Reiser, but it is sometimes difficult to manage. XFS often gives you good performance and reliability out of the box.

Q from Florian: MySQL 5.1 == Falcon?
Falcon is available for download today. The current version refers to 5.2 and it's an alpha version. We may change plans, but so far Falcon is related to version 5.2

Q from Henk: Will InnoDB ultimately be replaced by Falcon?
No, it will not. Falcon is an alternative to InnoDB and willl be especially excellent for online applications, but we will continue to support InnoDB for many years ahead.

Q from Paul: Will Falcon include the spatial features of MyIsam?
Anders has clearly replied to this question. Falcon will initially it will support spatial datatypes, but not R.tree indexes. GIS datatypes are available out of MyISAM since 5.0, although R-tree indexes are limited to MyISAM.

Q from Owen: what is the roadmap for myISAM 2.0
We do not have any roadmap for MyISAM 2.0 at the moment.

Q from Owen: Will not myISAM 2.0 support foreign keys?
We are considering to provide FK at an upper layer - ie not in the storage engine - hence every storage engine will support FKs.

Q from Danilo: What's the best storage engine to manage very big data?
We can't simplify too much, but generally speaking we may say that InnoDB and MyISAM are the usual suspects. InnoDB takes little time to recover in case of failure (referring to our HA webinar), but it usually needs more space than MyISAM to store the same data.
Performance-wise can handle high concurrency better, whilst MyISAM might perform better with intensive reads. These of course are only generic guidelines.
At the UC in April we will see new storage engines that might be interesting as well.

Q from Colin: The majority of data warehouses are designed using the Kimball methodology using a star schema. This relies on foreign keys. How is MyISAM ideal for this?
Well, I have spent the last 12 years of my working life on Data Warehouse solutions and I would say exactly the opposite. In 100% of the DW that I have designed there were no FKs. two valid reasons: performance and ETL issues. I tend to consider foreign keys essential in an OLTP environment, specifically when we have different applications relying on the same database or schema. But in a DW, generally speaking, we can control the loading process. Since we are loading a massive amount of data at a time, we need fast import and write - and MyISAM is perfect for that. FKs would slow everything down, checking that the data we are loading is consistent. Also, applying FKs to a DW environment means that we will be forced to load data in a specific order, otherwise we will not find references for new records to load. Hence, no FKs for me in a DW. Integrity must be handled with a good ETL process.

Q from Efrat: If I want to use foreign keys, Do I have other alternative besided InnoDB?
As Anders said, right now, we do not have alternatives, but we are working on that.
A stop-gap-solution is to use triggers.

Q from Andrew: What is the expected time frame for this FK support in the sql layer of all storage engines?
We are considering to implement FK support in 5.2 or future versions - hence, not in 5.1.

Q from Tero: Can you back up data in a single instance while reading and writing?
We will cover the backup strategies in one of the next sessions. In the meantime, Anders has answered to this question: there are some different ways for doing this. A logical backup can do the job, specifically if we use InnoDB - since we can handle concurrency and isolation. Another alternative is the use of storage engine specific backup solutions, such as the one that is included with NDB or inno backup.

Q from Andrea: Which is the Best Management and Monitoring tool to work with Mysql?
The Monitoring and Advisory Service included in MySQL Enterprise acts as a "Virtual DBA Assistant" and interface to popular monitoring tools such as HP Open View, Tivoli etc via SNMP traps

Q from Alessandro: What SMP stands for?
Symetric Multi Processing: The technology that supports multiple CPU cores to work together.

Q from Henk: Is there a list available of business applications that each need a specific type of of all the types of scaling that Ivan speaks of?
Please contact your sales rep, who will get you in contact with an SE that can help you out.



On Connectors and Development Environments

Q from Fabio: what is the VB connector?
It is a .NET native provider - http://dev.mysql.com/downloads/connector/net/5.0.html
There is also a Visual Studio plugin available for development - http://dev.mysql.com/downloads/visual-studio-plugin/index.html

Q from Wenter: How about ASP?
.NET is the connector to use here

Q from Alessandro: Is it possibile to use InnoDB features (transactions) inside VB applications (e.g. inside an Access project)? Is there any documentation around?
Yes. There are some Access - MySQL migration docs, and there is also a forum on forums.mysql.com on Access

Q from Fabio: MySQL Visual Studio don't work , it creates many problem to the IDE?
Unfortunately, the Visual Studio Plugin is still a beta version - We would encourage you to post bugs on our bug systems

Q from Henry: Any plans for a connector for Delphi?
I am not a big expert of Delphi, but I think that a connector should be available from Borland to access MySQL through the new DBX4 Layer. The layer is compatible with MySQL 5.0.

Q from Emil-Valentin: How do you have an easy GUI to administer the mysql database, as much as easy as MSAccess?
MySQL administrator is one way, MySQL Enterprise customers have access to MySQL Monitoring and Advisory Service tool. phpMyAdmin is popular in Linux / PHP environemnts. SQLYog is also common. Quest has Toad for MySQL which is also popular in some circles.
MySQL Enterprise includes GUI tools and the Monitoring and Advisory service to help you easily administer all your servers. And you can also use Access as a front end to MySQL.
Check sourceforge.net or forge.mysql.com for tools, there is a lot there. Or ask the forums at forums.mysql.com

Q from Eric: Is there a good php based load balancing script available to select the least loaded mysql (slave) server?
Not as far as I am aware. In many cases, the balancing on multiple web/application server is good enough to provide a consequent balancing on multiple slave servers - associating a round robin mechanism or a different preferred connection for each web server.

Q from Constantinos: Do you know if there is a "high available connector" for perl or php?
I am not aware of any. But for example I have found this comment quite interesting, especially in conjunction with Replication: http://uk3.php.net/function.mysql-pconnect

Q from Andrew: is there an equivalent of esqlc?
Not at the moment. There are some scripting solutions, mainly awk based. You may check this: http://dev.mysql.com/tech-resources/articles/precompiler-for-embedded-sql.html



On Replication

Q from Melvin: Is it possible to have multiple masters and a single slave?
This is not possible, strictly speaking, using a classic configuration. We have planned to have multiple sources for a slave sometimes in the future versions. At the moment, we may use the Federated Storage Engine, as we will cover in the next session.

Q from Jonas and Danilo: What about multi-master replication?
We will cover it in the next session.

Q from Jonas: Is circular replicaiton a good HA option?
Yes, this is often good enough, but not for all the applications. The main drawbacks are conflict detection and the asynchronous nature of replication. But it is definitely an option, and an attractive one.

Q from Danilo: Is there an automatic procedure to swicth a slave to master when the master die?
No, but there is pretty good documentation on the linux-ha.com website on how to do this. Usually, you don't do this though, you set up both systems as being masters AND slave, but only one is active master.

Q from Efrat: How can I make sure that the slave database is identical to the master database?
The slave keeps track of the position on the binary log of the master database and it can provide information on a delay in updating the DB, although this is acceptable only if there are no failures.

Q from Efrat: Is there a mysql command that compares the databases in a master and in the replicated slave?
Not at the moment. The Monitoring and Advisory Service can provide some extra information to prevent delays and problems though.

Q from Juan: How many mysql server clients supports a mysql master host?
This is usually limited by OS resources more than MySQL itself, although the MySQL config may limit this.

Q from Lorenzo: How many server can I use in circular-replicaton (master-master)? Is there a max value?
In theory no, but it will get complex to maintain after a while.

Q from Danilo: what about auto_increment fields... will be a sequence filed like oracle? I am asking this because this is the principal problem of multi master replication.
I agree. As I know, there is nothing planned right now.



On MySQL Cluster

Q from Matthew: When are we likely to see disk based indexing for ndb?
Disk based indexing is planned in one of the future releases, but we can't say when we will implement it. During the webinar, Anders pointed out that he does not see this as an important thing. I tend to agree with Anders, at least considering the current status of the storage engine. At the moment, ndb can perform an unbeatable job (in terms of HA and performance) on small transactions and simple queries and we should not consider it as a full replacement for the whole database, in general. The future versions of ndb will probably be more and more general purpose and at some point a full disk based ndb will be valuable. Please take this as my personal opinion.

Q from Malcolm: Is their any difference between MysQL Cluster and the telecoms version?
As Bertrand said, MySQL Cluster Carrier Grade is a specific version for telecom, developed closely with major equipment manufacturers. During the presentation I have highlighted some differences - such as the availability of more data nodes and so on. We will cover MySQL Cluster and MySQL Cluster Carrier Grade Edition in one of the future sessions.

Q from Fabio: Any plan for MySQL Cluster for Windows?
We are considering it sometimes in the future, but no plans have been made so far.

Q from Andrea: What happen if the Management Console crash in a Mysql Cluster environment?
As Anders said, it's not a big deal. The mgm is not necessary to keep the cluster running in normal cases, and you can have more than one mgm server.

Q from Owen: Is it difficult to define memory requirements for MySQL Cluster?
MySQL Cluster configuration is the most important step when you adopt this technology. We have seen several do-it-yourself configurations, running perfectly. But Cluster configuration is not straightforward and we always recommend to get some help from our Professional Services team.

Q from Sebastian: How to commit database structure changes on mysql in mysql cluster, is any tool for this?
I am not sure I understand the question - Sebastian, if you read this blog, feel free to add more details. If you refer to the possibility to change (ALTER) a table structure, this is possible and once you flush the table (FLUSH TABLE) the change is available to all the SQL nodes.

Q from Florian: Can I put an IP load balancer in front of the Interface/SQL layer in Cluster, and address the whole cluster using 1 public IP address?
Yes, this is fine. All SQL-nodes see the same data and are always in read/write mode.

Q from Xabier: how many transactions can stand a clustered mysql db?
It depends on the configuration and the application. Using the low-level NDB API, you could sustain 100's of thousands transactions per second.

Q from Juan: Is the ndb engine avaible for QNX?
Yes, there is a version for QNX 6.2.1

Q from Xabier: does a clustered mysql db require horizonal or vertical partitioning the database?
MySQL Cluster partitions the database automatically. We will cover Cluster in one of the next sessions.

Q from Andrea: When will be available the Mysql Cluster Carrier Grade Edition?
MySQL Cluster Carrier Grade Edition is available now, you can download a free whitepaper on it at: http://www.mysql.com/why-mysql/white-papers/

Q from Alessandro: Is carrier grade avalaible for download?
As Bertrand said, please contact us at http://www.mysql.com/company/contact/ if you are interested in MySQL Cluster Carrier Grade for telecom customers



On Shared Disk Cluster

Q from Efrat: Can I implement a Shared Disk Cluster using the Community Server?
Although we recommend to use MySQL Enterprise, one can use a Community Edition to implement a shared disk cluster. The recommendation to use MySQL Enterprise can be easily explained: since we are looking for High Availability and reliability, it does not make much sense to risk unplanned downtime caused by faults that can be solved using hot patches or escalating bugs. Also, the use of the Monitoring and Advisory Service could help in preventing such faults - we will cover it in one of the next sessions.

Q from Doug: Do shared disk cluster solutions require proprietary OS's? I see no community/free Linux editions stated on the slides?
Normal OS's are fine. Linux supports things like Sistina (owned by RedHat), but not even that is necessary. You can run ext3 on a SAN.
You just need drivers for the SAN. The SAN looks like any disk to the OS after those are installed, and any type of partition can be installed, but an LVM is nearly always used (but this is part of any Linux distro anyway these days).

Q from Tero: what does "External Locking" mean when we talk about Shared Disk Cluster?
As Anders perfectly explained, it is when the OS locks files, even across nodes in a distributed filesystem, like lockd when using NFS.



On DRBD

Q from Fabio: what is DRBD?
DRBD stands for Distributed replicated block device - more info here: http://www.drbd.org/

Q from Fabio: This DRBD is only for Linux ?
Yes it is. It's a Linux kernel module with userspace management tools. It doesn't support other Unices as of today.

Q from Efrat: In DRBD, if the storage of the master is damaged, doesn't it mean that the slave will be damaged too?
DRBD has some fault-detection mechanisms built-in. So disk errors aren't that much of an issue, although errors in the layers above DRBD are of course undetectable by DRBD itself.

Q from Jonas: What is better, MySQL Replication or DRBD?
Well, we can't say that something is better than something else, because it depends on the solution you are looking for. For some applications and specific needs, MySQL Replication is better; for others DRBD is the solution. As Anders pointed out, MySQL Replication is asynchronous, whilst DRBD is synchronous. Also, DRBD replicates anything that can be written on a file system, whilst MySQL Replication is only related to DB write operations. Hence, there is not a straight answer.



More Questions

Q from Efrat: Will you have a conference in Europe too?
We will have customer conferences as last year in Europe, most likely in London, Munich and Paris in Q4

Q from Emil-Valentin: I would like to download trustiness and clear howto's for web enabling and enabling openoffice as frontend for administering. May you help me?
It's not easy to find these information. Our knowledge base and the consultative support provided by MySQL Enterprise Platinum might help, but we would need to know a bit more about your requirements.

Q from Ashok: How can I find a load balancer?
There are many HW and SW load balancers, some of them are open source, others are commercial products. If you are using Linux, I would suggest to check the functionality in your Linux distribution first.

1 comment:

Ivan said...

My colleague Stewart Smith (MySQL Cluster software engineer) has added some info to the Q&A published in this blog.

You can find his comments here.