» tagged pages
» logout

(Feed found, click Add Page to syndicate.) Error finding feed, please try again » Find feed title

A Blog Page allows you to add entries, for news or other time sensitive postings

(Login required to save to your tagged pages.)
(or Cancel)

Make further edits, (or Cancel)

(Login required to save to your tagged pages.)
(or Cancel)

(Editing anonymously: to be credited for your changes, login or register a new account)

Change Page Permissions? Changing these permissions will adjust who can modify this page.

Anonymous (change)
(change)
(or Cancel)
Upload an image from your computer:
or Copy an image from a URL:
or Erase the current icon:
Icon Preview:

or Cancel

Erase falcon? The contents of falcon page and all pages directly attached to falcon will be erased.

or Cancel

(Editing anonymously: to be credited for your changes, login or register a new account)

other page actions:
falcon

falcon

sorted by: recent | see : popular
Content Tagged falcon

Weekly Falcon Test Overview 2008-09-26

WFTO is back in full effect – 2008-09-26

I had a  long summer holiday in August 2008 in Naples/Italy:

after that we had our yearly

This has also been a hot and long summer for our Falcon team and we made a great job by fixing around 58 bugs since my last report in June 2008.

We had quite a boost in our bug fixing rate after some new colleagues from Trondheim joined our Falcon team:

Back to our main topic: compared to our last WFTO in 2008-06-20 we have 6 new tests and 5 tests are not failing anymore. This means that we are at a failed/passed ratio of 4.8%. We are making a steady progress:

  • 4.8% - 10/209 (this report)
  • 7.5% - 15/198 (last report)
  • 8.9% - 17/190 (report before last one)

WFTO graph

News for these weeks:

  • Ann Harrison fixed
    • Bug#37343 Assertion in IndexNode::parseNode, ASSERT(key - (UCHAR*) indexNode < 14);
    • Bug#37344 Crash in IndexWalker::rebalanceDelete
    • Bug#37726 Falcon crash in WalkDeferred::getNext
  • Christopher Powers fixed
    • Bug#38043 Deadlock between server and falcon when executing concurrent ALTER + DML
    • Bug#38039 Assertion lockState == 0 failed in StorageTableShare::deleteTable SyncObject
    • Bug#38041 Bizarre errors when ALTER ADD/DROP KEY on Falcon tables
    • Bug#38044 Falcon crash in StorageTable::compareKey at StorageTable.cpp:412
    • Bug#38566 Falcon crash in RecordVersion::thaw at RecordVersion.cpp:421
    • Bug#39081 Falcon: segfault in StorageInterface::getDemographics()
    • Bug#39347 Falcon online add/drop unique index fails
    • Bug#39349 Falcon: Online drop index conflicts with other index operations
    • Bug#39350 Falcon: Releasing deferred indexes causes crash
    • Bug#39354 Falcon: Rename table corrupts index mapping
  • Jim Starkey fixed
    • Bug#34602 Falcon assertion in Transaction::commitNoUpdates line 364
    • Bug#36296 Falcon: commitNoUpdates is sleeping too often
  • Kelly Long fixed
    • Bug#37749 Falcon assertion at line 36 in file SectorBuffer.cpp
    • Bug#39296 LOAD DATA LOCAL INFILE leads to crash in Bdb::mark()
  • Kevin Lewis fixed
    • Bug#37587 falcon_bug_33404.test hangs forever
    • Bug#39025 Falcon writes key pages to Serial Log in wrong order.
    • Bug#39321 Falcon deadlock between Table::retireRecords and Database::retireRecords
  • Lars-Erik Bjørk fixed
    • Bug#36620 Legacy leftovers in Falcon startup I/O
    • Bug#36825 falcon_index_chill_threshold and falcon_record_chill_threshold have values in MB
    • Bug#36990 Remove unsupported ‘create tablespace’ parameters and falcon_initial_allocation
    • Bug#36991 falcon_max_transaction_backlog has no effect
    • Bug#38304 Data contents becomes NULL if column name in Falcon table uses accented letters
    • Bug#38377 Options falcon_serial_log_dir does not have any effect
  • Olav Sandstaa fixed
    • Bug#35932 Falcon crashes in Transaction::commitNoUpdates for simple SELECT queries
    • Bug#36410 Falcon crashes on 64 concurrent threads
    • Bug#37622 Falcon does not compile on Solaris 9 on SPARC using Sun Studio compiler
    • Bug#37679 Falcon does not compile on OpenSolaris/Nevada using the Sun Studio compiler
    • Bug#38535 AMD64 support for Falcon
    • Bug#38556 Linking error when building Falcon as a shared library using Sun Studio compiler
    • Bug#38766 Falcon hangs during start-up if compiled for 64 bit SPARC
    • Bug#38891 falcon is not supported on sparc
    • Bug#39181 Build error in MemoryManager.h in Pushbuild on sol10-sparc-a-max
  • Sergey Vojtovich fixed
    • Bug#29211 Falcon: information_schema has a falcon_tables view
    • Bug#33575 Backup: crash on shutdown if Falcon table
    • Bug#34705 FALCON_TABLES shows wrong TABLE_NAME
    • Bug#34706 FALCON_TABLES shows wrong information on temporary tables
    • Bug#37668 No error message if tables are created in Falcon tablespaces with special names
  • Vladislav Vaintroub fixed
    • Bug#22165 ALTER crash if two interleaving transactions
    • Bug#35072 Falcon crash in RecoveryObjects::findRecoveryObject, line 103
    • Bug#35939 Drift in Falcon row count reported by SHOW TABLE STATUS
    • Bug#35991 Falcon assertion on TRUNCATE in Section::getSectionPage Section.cpp line 198
    • Bug#37725 Falcon: assertion in waitForTransaction “waitingFor was not NULL”
    • Bug#38186 falcon_bug_31295 fails on pushbuild
    • Bug#38519 Falcon causes massive test failures in embedded mode
    • Bug#38594 Falcon crash in MemMgr and Sync object during exit of mysqld
    • Bug#38743 falcon.falcon_tablespace_priv fails randomly on Windows
    • Bug#38746 Falcon does not build on linux with valgrind enabled
    • Bug#38770 Falcon disregards datadir option and creates files in the current directory
    • Bug#38843 Falcon does not start if datadir is located on home directory on Solaris
    • Bug#38933 Falcon crash in Transaction::hasRecords during concurrent DDL
    • Bug#38947 UPDATE threads in endless Table::fetchForUpdate loop = livelock
    • Bug#39024 Crash in DeferredIndex::detachTransaction
    • Bug#39098 Falcon sometimes reports ‘Invalid serial log directory path’
    • Bug#39138 Falcon total database deletion after CREATE + DROP TABLESPACE + recovery
    • Bug#39421 Uncaught exception EOF in Falcon recovery on Windows

What about you?

We are interested in you! Where do you use Falcon? What do you do with Falcon? Are there any features you want to see in Falcon? You can test Falcon and get famous by providing valuable bug reports or even test cases for Falcon!

Resources:

MySQL: Planet MySQL

What happened to Falcon?

I don’t think I have heard anything from the Falcon team for a while. What’s new? Did the project really stall when Jim Starkey left, as Vadim Tkachenko wondered might happen?

MySQL: Planet MySQL

HoneyMonitor v.1.0.14-alpha - New Features Preview

The second public alpha version (1.0.14-alpha) of HoneyMonitor Audit Pro - the Edition of our MySQL? GUI 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 does 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.

MySQL: Planet MySQL

Falcon Transactional Characteristics

It’s time to continue our series on the transactional storage engines for MySQL. Some might question why I even include Falcon because it is very much beta at this time. MySQL, however, has made quite an investment into Falcon, and while it is currently beta, the code is improving and it looks like that it will be production-worthy when MySQL server 6.0 hits GA.

If this is the case, it is important to begin to understand what Falcon was designed for and how it differs from other transactional engines such as InnoDB. I am going to concentrate quite a bit on the Falcon/InnoDB comparison as that is what everyone wants to talk about. This is despite my having heard MySQL employees repeatedly make statements to the effect of, “Falcon is not going to replace InnoDB,” or “Falcon is not competing with InnoDB.” Well, take that with a grain of salt. It certainly seems to me that they are competing for the same spot.

Warning

As I said, Falcon is beta. First off, don’t even try to use it in production. Using it in production means you will also be using MySQL Server 6.0, which itself is considered alpha. Your data will explode, be corrupted, or eaten by jackals. It won’t be pretty. It will cause great pain.

In addition, the features of Falcon are still changing. What I say here might or might not be accurate in the future.

End of Warning

So, why was Falcon even created?

(more…)

MySQL: Planet MySQL

Discovering FALCON Metadata in MySQL® v. 6.0.5-alpha

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.

MySQL: Planet MySQL

Weekly Falcon Test Overview 2008-06-20

It has been almost a month since my last WFTO posting.

This time my delay was due to our migration from BitKeeper to Bazaar. You can read about the background and reasoning in our move to Bazaar in

An excellent introduction about using Bazaar with MySQL you will find at

Compared to our last WFTO we have 6 new tests and 2 tests are not failing anymore. This means that we are at a failed/passed ratio of 7.5%. We are making a steady progress:

  • 7.5% - 15/198 (this report)
  • 8.9% - 17/190 (last report)
  • 10.4% - 19/182 (report before last one)

News for these weeks:

  • Jim Starkey fixed
    • Bug#37517 falcon -DENGINE conflicts –with-ssl leading to build failure
  • Kevin Lewis fixed
    • Bug#36438 Falcon crash in Record::poke, line 823
  • Chris Powers fixed
    • Bug#36468 Falcon replication failure, engine reports HA_ERR_END_OF_FILE on slave
  • Vladislav Vaintroub fixed
    • Bug#37251 Livelock between UPDATE and DELETE threads
    • Bug#37080 Falcon deadlock on concurrent insert and truncate
    • Bug#36396 Assertion in IO::pread (on closed tablespace file)
  • Olav SandstÃ¥ fixed
    • Bug#36745 falcon crash on solaris
    • Bug#36703 Unknown symbol EncodedDataStream::decode when linking mysqld with Sun Studio
  • Hakan Küçüky?lmaz fixed
    • Bug#37078 falcon_bug_26828 fails sometimes on Pushbuild

What about you?

We are interested in you! Where do you use Falcon? What do you do with Falcon? Are there any features you want to see in Falcon? You can test Falcon and get famous by providing valuable bug reports or even test cases for Falcon!

Resources:

MySQL: Planet MySQL

The Falcon goes by

Jim Starkey with falcon

Jim Starkey, the well known database architect, author of Interbase and Netfrastructure, is leaving MySQL.

Jim's company was acquired by MySQL two and half years ago, to help creating MySQL new transactional engine, Falcon.

Zack Urlocker, reports on the event and says that Falcon is still on track and he is confident that it will be a success.

MySQL: Planet MySQL

The Falcon goes by

Jim Starkey with falcon

Jim Starkey, the well known database architect, author of Interbase and Netfrastructure, is leaving MySQL.

Jim's company was acquired by MySQL two and half years ago, to help creating MySQL new transactional engine, Falcon.

Zack Urlocker, reports on the event and says that Falcon is still on track and he is confident that it will be a success.

GlassFish: The Aquarium

Falcon vs InnoDB

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!

MySQL: Planet MySQL

Weekly Falcon Test Overview 2008-05-23

It has been a while since the last Weekly Falcon Test Overview, also called WFTO.

Our Falcon team was with the Falcon Developers Meeting in London last week. Other than that, I updated my workstation running the WFTO test suite from RHEL4 to RHEL5. This caused some delay in the weekly reporting.

The WFTO test suite now contains RHEL5 64-bit (native), Ubuntu 32-bit (vm), Windows 2003 Server 64-bit (vm), and Mac OS X/PPC 32-bit (native).

We have one new test case falcon_bug_36294 and three tests are not failing anymore.

News for these weeks:

  • Jim Starkey fixed
  • Kevin Lewis fixed
    • Bug#36097 Be sure the highWater index is set to zero when a record is thawed
    • Bug#36636 Move fsync out of the #ifdef HAVE_PREAD scope so that it works in either case.
    • Bug#36603 Adjust age group values to uint32
  • Vladislav Vaintroub fixed
    • Bug#36467 Falcon assertion in ha_partition.cc: virtual int ha_partition::extra()
  • Christopher Powers fixed
    • Bug#36330 Falcon DBT2 crash in Transaction::needToLock
  • Sergey Vojtovich fixed
    • Bug#33607 Falcon allows two mysqld instances to share a tablespace
    • Bug#33404 Falcon ignores partition-level TABLESPACE option
  • Hakan Küçüky?lmaz fixed
    • Bug#36486 Falcon compilation fails on Solaris 10/x86
    • Bug#36400 Compiling Falcon on Solaris 10/x86 fails with Sun Studio 12

What about you?

We are interested in you! Where do you use Falcon? What do you do with Falcon? Are there any features you want to see in Falcon? You can test Falcon and get famous by providing valuable bug reports or even test cases for Falcon!

Resources:

MySQL: Planet MySQL

Running Drupal 6 on MySQL 6 using the Falcon Storage Engine

This article describes how to install the Drupal 6.2 CMS on MySQL 6.0, using the Falcon Storage Engine. The operating system is a default Ubuntu 8.04 "Hardy Heron" (x86) installation.

I will make a few assumptions here, in order to keep the instructions simple: a fresh OS install, no other MySQL databases or web services are running or have already been installed. Both MySQL and the web server are installed on the same host. You should be able to become root to install packages and to have access to the local file system and the system configuration.

This article will explain how to install and configure Apache/PHP, MySQL 6.0 and Drupal 6.2.


Continue reading "Running Drupal 6 on MySQL 6 using the Falcon Storage Engine"

MySQL: Planet MySQL