Yabomsat!
Yet Another Blog On MySQL® Server Administration, monitoring and Tuning!

HoneyMonitor v.1.0.14-alpha - New Features Preview

August 30, 2008 - 8:30 pm - by Santo Leto

The second public alpha version (1.0.14-alpha) of HoneyMonitor Audit Pro - the Edition of the HoneySoftware’s GUI for MySQL™ mainly oriented to Server Administration, Monitoring and Tuning - will be released soon.

In this article I’ll try to describe the new features implemented and the most important bugs fix of this version.

You will find the complete list of bugs fix and improvements in a next post - when we will release v.1.0.14-alpha - and in the Release Notes File included in the build.

Your questions, enhancement requests and comments are welcome.

Contents:

A. New Features

1. Audit System
1.0. Introduction
1.1. Replication
1.1.1. STMT - New connection Option
1.2. Support for the Maria Engine
1.3. Other bugs fix

2. Performance Reports
2.0. Introduction
2.1. Custom Reports
2.2. Report Templates

3. Other
3.1. Audit Statistics
3.2. Server Objects List
3.3. FALCON

B. Other Bugs Fix

C. Other

A. New Features

1. Audit System

1.0. Introduction

As you (probably) already know, the Audit Pro Edition of HoneyMonitor uses a database (hs_audit_schema) to collect the “status data” of the server and store, manipulate and use them to create performance reports thus let you monitoring your servers.

The monitoring system that HoneyMonitor let you install and use is a “SQL-based monitoring” system - this means that no Agents are required to run on your Servers and we don’t need a Central Repository Server. All data are collected by a Scheduled Event and stored on your server.

You use a Windows™ Client (HoneyMonitor) installed for example on your laptop, to connect to your MySQL™ Server (in a direct way or through a SSH Tunneling Connection) and open the Performance Tuning Monitor to view the most common derived performance metrics and create reports to see how the ratios are changing over time.

No automated alerts are included - so far - in the HoneyMonitor Audit Pro Edition. The SQL monitoring system does not alert you - for example with an email - if a slave is down or you are reaching the maximum number of allowed connections (so far).

The Performance Tuning Monitor as well as the Replication Monitor and other tools included in HoneyMonitor are developed to help your every-days DBA activities - this is our aim - and they do not (and can’t) replace your (human) supervision of the server activities.

1.1. Replication

The most important bug fix in v.1.0.14-alpha is related to replication. Our SQL scripts now use SET SQL_LOG_BIN = 0 so no errors occur if you start the installation of the audit system (using the Audit Installation Wizard) on a Master. Audit data of the master are not replicated on slaves of course. Previously (v.1.0.13-alpha) we were asking you to filter replication by using “-replicate-ignore-table=db_name.tbl_name” and similar options but beginning with the new version 1.0.14-alpha, you don’t need to filter replication anymore (just because now we use SET SQL_LOG_BIN = 0).

1.1.1. STMT - New connection Option

Please note that now you can set a STMT (statement) option when you create a connection in HoneyMonitor. This improvement has been added in all Editions of our tool (from the Lite Free to the Network Edition). The STMT option is a SQL statement that will be executed every time the software connects to the server. A typical STMT is “SET NAMES…” (already included in early versions of the software) or “SET SQL_LOG_BIN = 0″ (if you want to connect to a master and you want that tasks performed using HoneyMonitor do not affect replication).

Connection Window - STMT Option

Fig. 1: Connection Window - STMT Option

1.2. Support for the Maria Engine

We are developing the tools you need to have a better experience with the new engine Maria (as well as Falcon). In particular, in next versions of HoneyMonitor (Standard, Enterprise and Network Editions) we plan to improve our “Create Table Wizard” to support the new Maria options.

As per Audit Pro Edition, we have tested the monitoring scripts on v.5.1.26-rc and 6.0.6-alpha. Minor bugs fix of next version 1.0.14-alpha are related to the fact that now the new Maria Engine has been put in the 6.x branch of the server (previously it was included in v.5.1.23-maria-alpha-preview. Please note that we don’t support that version anymore. If you want to test the Maria engine, please use v.6.0.6-alpha).

 MySQL™ 6.0.6-alpha - Support for Maria

Fig. 2: MySQL™ 6.0.6-alpha - Support for Maria

1.3. Other bugs fix

In the newer version of the MySQL™ Server, status variables “Com_show_column_types” and “Innodb_buffer_pool_pages_latched” have been deprecated so we don’t use them in our audit table anymore [MySQL™ Bugs #36793 and #5299].

2. Performance Reports

2.0. Introduction

Two important improvements are included in the new version 1.0.14-alpha.

2.1. Custom Reports

You can now create your own reports (a Custom Report Template is included and you can use this as the basis of your own reports). HoneyMonitor Audit Pro includes about 10 Reports (Falcon, InnoDB, MyISAM, Temporay Tables, …) for about 90 charts. With a custom report you can choose to monitor a specific variable not included in the standard reports. We will try to create a video tutorial about this new feature soon.

New “Auditing” Menus

Fig. 3: New entries in the “Auditing” Menu

 Creating a Custom Performance Report - Designer

Fig. 4: Creating a Custom Performance Report - Designer

 Creating a Custom Performance Report - Choosing Variables to add (SQL query)

Fig. 5: Creating a Custom Performance Report - Choosing Variables to add (SQL query)

2.2. Report Templates

You can now edit the Report Templates thus every time you use the Performance Tuning Monitor to create a report your templates will be used (it’s the same when you use the “Audit Report Generation Window ” to create a report in a fast way, by clicking on the menu Auditing / Reports / …). We suggest you backup our templates before editing them so you can restore them if you need (just copy the files included in the directory /audit/reports).

 Customizing Template of the “Query Cache” Report

Fig. 6: Customizing Template of the “Query Cache” Report

3. Other

3.1. Audit Statistics

Minor improvements are included in the Audit Statistics Window. A “Refresh” button has been added; 3 new fields now show the date of the first and last audit record included in the audit table and the date difference.

Audit Statistics Window

Fig. 7: Audit Statistics Window

3.2. Server Objects List

Minor improvements in the Server Objects List. When you create a (stored) connection you can now choose a “Server Group”

Connection Window - Server Group

Fig. 8: Connection Window - Server Group

Server Objects List - Server Groups

Fig. 9:  Server Objects List - Server Groups

3.3. FALCON

Minor improvements for FALCON variables: Description, Type, Handle, …, are now included (like for other “older” system variables).

Performance Tuning Monitor - Falcon Variables

Fig. 10: Performance Tuning Monitor - Falcon Variables

B. Other Bugs Fix

For a bug of version 1.0.13-alpha, some errors occur when opening the Table Editor, View Editor and Queries Window if you are connected through SSH. Now fixed.

C. Other

Similar Posts you could be interested on:

Let us know what you would like us to add in the next versions of our software and, if you would be informed when we will release the new v.1.0.14-alpha, you are welcome to join our newsletter.


Discovering FALCON Metadata in MySQL® v. 6.0.5-alpha

July 11, 2008 - 7:21 pm - by Santo Leto

Introduction
MySQL® 6.0.5-alpha, the latest version of the 6.x branch of the Database Server, is available for download from the SUN|MySQL Web Site.

Metadata (data about the data) are very important, especially for software developers. In this article we will see what’s new in FALCON metadata handling doing some comparison with the old 6.0.4-alpha version.

New tables in the `information_schema` database
As you know, the source for metadata is the database `information_schema`. To start, let’s see which tables related with FALCON metadata are included in that database:

mysql> SELECT VERSION();
+—————————+
| VERSION()                             |
+—————————+
| 6.0.5-alpha-community-log |
+—————————+
1 row in set (0.01 sec)

mysql> USE `information_schema`;
Database changed

mysql> SHOW TABLES LIKE ‘FALCON%’;
+—————————————-+
| Tables_in_information_schema (FALCON%) |
+—————————————-+
| FALCON_TABLES                                               |
| FALCON_SERIAL_LOG_INFO                        |
| FALCON_SYSTEM_MEMORY_DETAIL        |
| FALCON_SYSTEM_MEMORY_SUMMARY  |
| FALCON_VERSION                                             |
| FALCON_TRANSACTION_SUMMARY           |
| FALCON_TABLESPACES                                   |
| FALCON_SYNCOBJECTS                                    |
| FALCON_TRANSACTIONS                                |
| FALCON_RECORD_CACHE_DETAIL             |
| FALCON_TABLESPACE_IO                              |
| FALCON_RECORD_CACHE_SUMMARY       |
| FALCON_TABLESPACE_FILES                       |
+—————————————-+
13 rows in set (0.00 sec)

At a glance, we see that we have thirteen tables while in the old 6.0.4-alpha version the tables were only eleven:

mysql> SELECT VERSION();
+—————————+
| VERSION()                             |
+—————————+
| 6.0.4-alpha-community-log |
+—————————+
1 row in set (0.00 sec)

mysql> USE `information_schema`;
Database changed

mysql> SHOW TABLES LIKE ‘FALCON%’;
+—————————————-+
| Tables_in_information_schema (FALCON%)      |
+—————————————-+
| FALCON_TABLES                                                    |
| FALCON_RECORD_CACHE_SUMMARY            |
| FALCON_SYSTEM_MEMORY_DETAIL            |
| FALCON_SERIAL_LOG_INFO                             |
| FALCON_VERSION                                                 |
| FALCON_TRANSACTION_SUMMARY             |
| FALCON_DATABASE_IO                                      |
| FALCON_SYNCOBJECTS                                      |
| FALCON_TRANSACTIONS                                   |
| FALCON_RECORD_CACHE_DETAIL                 |
| FALCON_SYSTEM_MEMORY_SUMMARY      |
+—————————————-+
11 rows in set (0.00 sec)

The new and very useful tables are `FALCON_TABLESPACES` and `FALCON_TABLESPACE_FILES`.

If you played with version 6.0.4-alpha you probably felt the need of similar tables and, if no, you can see why they were important for me looking at bug #37030 .

Also note that the table `FALCON_DATABASE_IO` has been renamed in `FALCON_TABLESPACE_IO` so, for example, the query for calculating the Falcon Cache Hit Ratio by Tablespace becomes:

mysql> SELECT
    ->  `tablespace` AS `Tablespace`,
    ->  100 * 1-(SUM(`physical_reads`) / SUM(IF(`logical_reads` > 1, `logical_reads`,1))) `Cache Hit Ratio`
    -> FROM `information_schema`.`FALCON_TABLESPACE_IO`
    -> GROUP BY `tablespace`;
+——————+—————–+
| Tablespace       | Cache Hit Ratio |
+——————+—————–+
| FALCON_MASTER          |         99.9660 |
| FALCON_TEMPORARY |         99.0000 |
| FALCON_USER                |         99.0000 |
+——————+—————–+
3 rows in set (0.00 sec)

`FALCON_TABLESPACES` and `FALCON_TABLESPACE_FILES` in details
Let’s see the structure of the new tables:

mysql> DESCRIBE `information_schema`.`FALCON_TABLESPACES`;
+—————–+————–+——+—–+———+——-+
| Field           | Type         | Null | Key | Default | Extra |
+—————–+————–+——+—–+———+——-+
| TABLESPACE_NAME | varchar(127) | NO   |     |         |       |
| TYPE            | varchar(127) | NO   |     |         |       |
| COMMENT         | varchar(127) | NO   |     |         |       |
+—————–+————–+——+—–+———+——-+
3 rows in set (0.33 sec)

mysql> DESCRIBE `information_schema`.`FALCON_TABLESPACE_FILES`;
+—————–+————–+——+—–+———+——-+
| Field           | Type         | Null | Key | Default | Extra |
+—————–+————–+——+—–+———+——-+
| TABLESPACE_NAME | varchar(127) | NO   |     |         |       |
| TYPE            | varchar(127) | NO   |     |         |       |
| FILE_ID         | int(127)     | NO   |     | 0       |       |
| FILE_NAME       | varchar(127) | NO   |     |         |       |
+—————–+————–+——+—–+———+——-+
4 rows in set (0.00 sec)

As you can see a column named `COMMENT` is included in `information_schema`.`FALCON_TABLESPACES`, so, unlike version 6.0.4-alpha and previous, in version 6.0.5-alpha you can now specify a comment for your FALCON tablespaces.

Let’s create two FALCON tablespaces, `test1` and `test2`, and see how those two metadata tables are populated:

mysql> CREATE TABLESPACE `test1`
    ->  ADD DATAFILE ‘test1.fts’
    ->  EXTENT_SIZE = 1M
    ->  INITIAL_SIZE = 10M
    ->  COMMENT=’test1-comment’
    ->  ENGINE = FALCON;
Query OK, 0 rows affected (0.02 sec)

mysql> CREATE TABLESPACE `test2`
    ->  ADD DATAFILE ‘test2.fts’
    ->  EXTENT_SIZE = 1M
    ->  INITIAL_SIZE = 10M
    ->  COMMENT=’test2-comment’
    ->  ENGINE = FALCON;
Query OK, 0 rows affected (0.00 sec)

I’d make you aware of the fact that when you create a FALCON tablespace sometimes you can get the following error: “ERROR 1044 (42000): Access denied for user ‘root’@'localhost’ to database ‘information_schema’”. Frankly, at the moment I don’t know why this error occurs. I am trying to create a reproducible bug report. If you experienced that error and you know why it sometimes occurs, please let me know. By the way, if that error will occur you can try closing your client and reopening it. That fix the error for me.

If we select over the table `FALCON_TABLESPACES` we get the following output:

mysql> SELECT * FROM `information_schema`.`FALCON_TABLESPACES`;
+——————+——————+—————+
| TABLESPACE_NAME  | TYPE             | COMMENT       |
+——————+——————+—————+
| FALCON_USER      | FALCON_USER      |               |
| FALCON_TEMPORARY | FALCON_TEMPORARY |               |
| test1            | USER_DEFINED     | test1-comment |
| test2            | USER_DEFINED     | test2-comment |
+——————+——————+—————+
4 rows in set (0.00 sec)

As you can see, there are two rows for what we now call ’system-tablespaces’ - i.e. the tablespaces ‘FALCON_USER’ and ‘FALCON_TEMPORARY’ - and one row for each tablespace created with the CREATE TABLESPACE syntax (in our example ‘test1′ and ‘test2′).

By looking at that table you can also see that there are three types of FALCON tablespaces. One is the type ‘USER_DEFINED’ - that is the type of the tablespaces created by you using the CREATE TABLESPACE syntax - and two are system-related: ‘FALCON_USER’ and ‘FALCON_TEMPORARY’. We will talk about those ’system’ types later.

If we select over the table `FALCON_TABLESPACE_FILES` we get the following output:

mysql> SELECT * FROM `information_schema`.`FALCON_TABLESPACE_FILES`;
+——————+——————+———+———————-+
| TABLESPACE_NAME  | TYPE             | FILE_ID | FILE_NAME            |
+——————+——————+———+———————-+
| FALCON_USER      | FALCON_USER      |       1 | falcon_user.fts      |
| FALCON_TEMPORARY | FALCON_TEMPORARY |       1 | falcon_temporary.fts |
| test1            | USER_DEFINED     |       1 | test1.fts            |
| test2            | USER_DEFINED     |       1 | test2.fts            |
+——————+——————+———+———————-+
4 rows in set (0.02 sec)

As you see, for each FALCON tablespace the name of the file as well as an ID is shown.

`FALCON_TABLES` in details
The table `FALCON_TABLES`, already included in MySQL® 6.0.4-alpha and previous, lists the FALCON tables created on your server:

mysql> DESCRIBE `information_schema`.`FALCON_TABLES`;
+—————+————–+——+—–+———+——-+
| Field         | Type         | Null | Key | Default | Extra |
+—————+————–+——+—–+———+——-+
| SCHEMA_NAME   | varchar(127) | NO   |     |         |       |
| TABLE_NAME    | varchar(127) | NO   |     |         |       |
| PARTITION     | varchar(127) | NO   |     |         |       |
| TABLESPACE    | varchar(127) | NO   |     |         |       |
| INTERNAL_NAME | varchar(127) | NO   |     |         |       |
+—————+————–+——+—–+———+——-+
5 rows in set (0.00 sec)

mysql> SELECT * FROM `information_schema`.`FALCON_TABLES`;
Empty set (0.00 sec)

In my system I get an empty set because there are no FALCON tables at the moment.

Let’s now try answering to the following question: “why do we have two system-related FALCON tablespaces (’FALCON_USER’ and ‘FALCON_TEMPORARY’)?”

The answer is quite simply. When you create a FALCON table you can specify a FALCON tablespace as a table option (CREATE TABLE … TABLESPACE) but if you don’t set a tablespace the FALCON table being created will use the default system tablespaces.

Let’s see this in action.

mysql> CREATE DATABASE `fdatabase`;
Query OK, 1 row affected (0.05 sec)

mysql> USE `fdatabase`;
Database changed

mysql> CREATE TABLE `fdatabase`.`ftable_generic`
    ->  ENGINE = FALCON
    ->  IGNORE AS SELECT * FROM `mysql`.`user`;
Query OK, 3 rows affected (0.64 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> SELECT * FROM `information_schema`.`FALCON_TABLES`;
+————-+—————-+———–+————-+—————-+
| SCHEMA_NAME | TABLE_NAME     | PARTITION | TABLESPACE  | INTERNAL_NAME  |
+————-+—————-+———–+————-+—————-+
| FDATABASE   | FTABLE_GENERIC |           | FALCON_USER | FTABLE_GENERIC |
+————-+—————-+———–+————-+—————-+
1 row in set (0.00 sec)

As you can see, we now have our FALCON table listed in `information_schema`.`FALCON_TABLES` and we can see that the tablespace used by the table just created is the system-related tablespace ‘FALCON_USER’.

Let’s create a temporary FALCON table (as before, without setting a tablespace) and see that the ‘FALCON_TEMPORARY’ tablespace is used:

mysql> CREATE TEMPORARY TABLE `fdatabase`.`ftable_generic_temporary`
    ->  ENGINE = FALCON
    ->  IGNORE AS SELECT * FROM `mysql`.`user`;
Query OK, 3 rows affected (0.19 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> SELECT * FROM `information_schema`.`FALCON_TABLES`;
+————-+—————-+———–+——————+—————-+

| SCHEMA_NAME | TABLE_NAME     | PARTITION | TABLESPACE       | INTERNAL_NAME  |

+————-+—————-+———–+——————+—————-+

| FDATABASE   | FTABLE_GENERIC |           | FALCON_USER      | FTABLE_GENERIC |

| TEMP        |                |           | FALCON_TEMPORARY | #SQL1FF4_13_0  |

+————-+—————-+———–+——————+—————-+

2 rows in set (0.00 sec)

If we drop the temporary table:

mysql> DROP TABLE `fdatabase`.`ftable_generic_temporary`;
Query OK, 0 rows affected (0.13 sec)

we have:

mysql> SELECT * FROM `information_schema`.`FALCON_TABLES`;
+————-+—————-+———–+————-+—————-+
| SCHEMA_NAME | TABLE_NAME     | PARTITION | TABLESPACE  | INTERNAL_NAME  |
+————-+—————-+———–+————-+—————-+
| FDATABASE   | FTABLE_GENERIC |           | FALCON_USER | FTABLE_GENERIC |
+————-+—————-+———–+————-+—————-+
1 row in set (0.00 sec)

You can now guess what’s happen if you specify a FALCON tablespace in the CREATE TABLE syntax:

mysql> CREATE TABLE `fdatabase`.`ftable1_test1`
    ->  TABLESPACE `test1`
    ->  ENGINE = FALCON
    ->  IGNORE AS SELECT * FROM `mysql`.`user`;
Query OK, 3 rows affected (0.16 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> SELECT * FROM `information_schema`.`FALCON_TABLES`;
+————-+—————-+———–+————-+—————-+
| SCHEMA_NAME | TABLE_NAME     | PARTITION | TABLESPACE  | INTERNAL_NAME  |
+————-+—————-+———–+————-+—————-+
| FDATABASE   | FTABLE_GENERIC |           | FALCON_USER | FTABLE_GENERIC |
| FDATABASE   | FTABLE1_TEST1  |           | test1       | FTABLE1_TEST1  |
+————-+—————-+———–+————-+—————-+
2 rows in set (0.00 sec)

We can see above that the FALCON table `ftable1_test1` uses the tablespace ‘test1′.

Let’s create a second table using the tablespace ‘test1′:

mysql> CREATE TABLE `fdatabase`.`ftable2_test1`
    ->  TABLESPACE `test1`
    ->  ENGINE = FALCON
    ->  IGNORE AS SELECT * FROM `mysql`.`user`;
Query OK, 3 rows affected (0.19 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> SELECT * FROM `information_schema`.`FALCON_TABLES`;
+————-+—————-+———–+————-+—————-+
| SCHEMA_NAME | TABLE_NAME     | PARTITION | TABLESPACE  | INTERNAL_NAME  |
+————-+—————-+———–+————-+—————-+
| FDATABASE   | FTABLE_GENERIC |           | FALCON_USER | FTABLE_GENERIC |
| FDATABASE   | FTABLE1_TEST1  |           | test1       | FTABLE1_TEST1  |
| FDATABASE   | FTABLE2_TEST1  |           | test1       | FTABLE2_TEST1  |
+————-+—————-+———–+————-+—————-+

Filtering FALCON Tables by TableSpaces
Now a common question is: “Which are the FALCON tables that are using a particular tablespace?”. Here’s the possible answer:

mysql> SELECT CONCAT(’`', `SCHEMA_NAME`, ‘`.`’, `TABLE_NAME`, ‘`’) FROM `information_schema`.`FALCON_TABLES` WHERE `TABLESPACE` = ‘test1′;
+——————————————————+
| CONCAT(’`', `SCHEMA_NAME`, ‘`.`’, `TABLE_NAME`, ‘`’) |
+——————————————————+
| `FDATABASE`.`FTABLE1_TEST1`                          |
| `FDATABASE`.`FTABLE2_TEST1`                          |
+——————————————————+
2 rows in set (0.00 sec)

Unfortunately, you should note that this method fails due to bug #35210.
In fact, let’s create a FALCON table with a strange name and see what happen:

mysql> CREATE TABLE `fdatabase`.`ftable_strange_name_#_!_test1`
    ->  TABLESPACE `test1`
    ->  ENGINE = FALCON
    ->  IGNORE AS SELECT * FROM `mysql`.`user`;
Query OK, 3 rows affected (0.23 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> SELECT * FROM `information_schema`.`FALCON_TABLES`\G
*************************** 1. row ***************************
  SCHEMA_NAME: FDATABASE
   TABLE_NAME: FTABLE_GENERIC
    PARTITION:
   TABLESPACE: FALCON_USER
INTERNAL_NAME: FTABLE_GENERIC
*************************** 2. row ***************************
  SCHEMA_NAME: FDATABASE
   TABLE_NAME: FTABLE1_TEST1
    PARTITION:
   TABLESPACE: test1
INTERNAL_NAME: FTABLE1_TEST1
*************************** 3. row ***************************
  SCHEMA_NAME: FDATABASE
   TABLE_NAME: FTABLE2_TEST1
    PARTITION:
   TABLESPACE: test1
INTERNAL_NAME: FTABLE2_TEST1
*************************** 4. row ***************************
  SCHEMA_NAME: FDATABASE
   TABLE_NAME: FTABLE_STRANGE_NAME_@0023_@0021_TEST1
    PARTITION:
   TABLESPACE: test1
INTERNAL_NAME: FTABLE_STRANGE_NAME_@0023_@0021_TEST1
4 rows in set (0.00 sec)

The table `ftable_strange_name_#_!_test1` is stored in the FALCON metadata catalog with the name `FTABLE_STRANGE_NAME_@0023_@0021_TEST1` so the method above fails:

mysql> SELECT CONCAT(’`', `SCHEMA_NAME`, ‘`.`’, `TABLE_NAME`, ‘`’) FROM `information_schema`.`FALCON_TABLES` WHERE `TABLESPACE` = ‘test1′;
+——————————————————+
| CONCAT(’`', `SCHEMA_NAME`, ‘`.`’, `TABLE_NAME`, ‘`’) |
+——————————————————+
| `FDATABASE`.`FTABLE1_TEST1`                          |
| `FDATABASE`.`FTABLE2_TEST1`                          |
| `FDATABASE`.`FTABLE_STRANGE_NAME_@0023_@0021_TEST1`  |
+——————————————————+
3 rows in set (0.00 sec)

We do not get the correct list of FALCON tables: the table `FDATABASE`.`FTABLE_STRANGE_NAME_@0023_@0021_TEST1` does not exist:

mysql> DESCRIBE `FDATABASE`.`FTABLE_STRANGE_NAME_@0023_@0021_TEST1`;
ERROR 1146 (42S02): Table ‘fdatabase.ftable_strange_name_@0023_@0021_test1′ does n’t exist

Indeed, you should note that it is not difficult to avoid such a problem at software-level. For example you can create a function to parse, using defined rules, the name `FTABLE_STRANGE_NAME_@0023_@0021_TEST1`. With this approach you have a function that returns the real name `ftable_strange_name_#_!_test1`.

Conclusion
It’s now time to close this article. New features of the FALCON metadata catalog have been (in part) explained.

For other interesting stuff, you can refer to the articles by Robin Schumacher available on the SUN|MySQL Web Site at dev.mysql.com.


Falcon vs InnoDB

May 31, 2008 - 12:14 pm - by Santo Leto

Yesterday, during the talk of Ivan Zoratti, at the meeting with Marten Mickos and the Italian Team of SUN | MySQL in Rome, there was a question about Falcon performance: a guy pointed out that InnoDB is better than Falcon.

Well, this is not really the truth.

How many processors are you using for Falcon benchmarking?

Falcon is designed to make optimal use of modern large-memory multi-CPU/multi-core hardware. So when comparing performance of Falcon and InnoDB, you can’t leave this out of consideration!

Please, see the shoots below:

falcon1.jpg falcon2.jpg
falcon3.jpg falcon4.jpg

To learn more on the Falcon engine, you can attend this webinar:

Also note please that Falcon is in a beta stage, not alpha. The 6.0 binary may be labeled ‘alpha’ but it does contain the Falcon transaction engine beta!

More Resources on the Falcon Engine:

  1. Falcon Feature Preview: http://forge.mysql.com/wiki/Falcon_Feature_Preview
  2. MySQL Forum dedicated to Falcon: http://forums.mysql.com/list.php?133
  3. MySQL 6.0 download: http://dev.mysql.com/downloads/mysql/6.0.html

Start playing with Falcon today! and thanks to the Falcon Team for their great and very interesting activities!


Re: Weekly Falcon Test Overview 2008-04-25

April 27, 2008 - 8:00 pm - by Santo Leto

Hakan Küçükyilmaz has just posted a new article  about the Falcon Engine.

There he explains that the Falcon Team at MySQL AB has added this week six new tests to the Falcon test suite and he reports (as usual) a time-trend chart of failed and passed Falcon tests.

I have calculated the ratio failed/passed tests and we can see that it is improving:

9%    |  (17:190)  |  207 tests in total  |  the last week
10%  |  (19:182)  |  201 tests in total  |  two weeks ago

Of course the ideal ratio is 0% i.e. 0 test failed.

In that post Hakan was wondering where and how Users use the Falcon Engine, what features they like/not like or want to see in it. Also he solicited Users for testing Falcon and reporting Bugs / Test Cases.

Well, I’m a developer, not a proper DBA which has to manage/store data. However I will try to explain what I am developing with Falcon.

First of all I have to admit that I didn’t find the time to test the new 6.0.5-alpha version. I will do asap as it will be available on the download page of MySQL AB Web Site.

Now, as regard 6.0.4-alpha and earlier, I posted the verified Bugs #30826 and #35210.

Also I posted Feat. Req. #36059 for having a ‘have_falcon’ variable but Sergey replied that as ‘have_engine’ variables are not well suited to work with pluggable architecture he would unlikely do add that variable and also he recalled that bugs like that are open for every 3-d party engine (maybe, he refers to Bug #35192?).

So, as regard testing and bug reports, I am trying to have a my own (very little) part for Falcon improvement.

As regard what I am developing with Falcon, as I posted here I added a new Tab for the Falcon Engine in the Performance Tuning Monitor (Sorry but as today you can’t find on-line no info on that Monitor - I will try to post something as soon as possible on our web site).

Essentially, the Performance Tuning Monitor is a Tool that will be included in the 2 new Editions of HoneyMonitor (the new ‘Pro’ and ‘Audit Pro’ Edition - to be released later in Q2 2008).

It helps you tuning and monitoring the performance of your MySQL® Server. Just to understand what we are talking about, here’s a short list of features of that Monitor:

  • Hit Ratios and dozens of other ratios
  • Complete Derived Performance Metric
  • Suggestions on variables to be changed to get better performance
  • Visual Alerts
  • Simple monitoring of the Linux Machine through SSH Connection
  • Asynchronous generation of Performance Reports

As the Monitor is compatible only with version 5.1.x of the Server, it does not require agents running on your server because it uses a scheduled event to store in an audit database complete derived performance metrics and allows you to generate and see more than 90 performance-charts (and create your own if you don’t like the standard charts).

Indeed, the Monitor is compatible with 5.0.x series and earlier - but for that versions it’s just a static Monitor - without Performance Charts (because Scheduled Events were added only in MySQL® 5.1 and it is the event that take care of storing the data to be used in the charts!).

So, as regard the Falcon Management in our Performance Tuning Monitor, below you find some screenshots:

falcon_alert.jpg falcon_log.jpg
falcon_transactions.jpg falcon_reports.jpg

Other features related to Falcon that I previously implemented in HoneyMonitor are the Creation and Visualization of the Falcon TableSpaces - and the possibility to create, using the Create Table Wizard, a Table that uses a particular TableSpace.

You can find some screenshots and explanations on those 3 features here.

So, hope to see Falcon in production very soon and a greeting to all the Falcon Team. Thank you for your efforts!