The world's most popular open source database
Within Falcon, all data within one database is
stored within a within a single file within the MySQL directory
structure. The file contains the Falcon data
and will be stored in a file with the name of the
Falcon database with the extension
.fts. For example, Falcon
tables defined within the database test will be
stored within the file test.fts within the
main MySQL data directory.
Falcon also supports named tablespaces which
allow you to store tables within specific files that may be
different to the default Falcon storage file
for that database. Three Falcon tablespaces are
created automatically when the Falcon storage
engine is enabled within the server. These tables are:
An unnamed internal tablespace used to hold system tables.
falcon_user, used as the default location
for user defined tables.
falcon_temporary, used to hold temporary
tables.
All tablespaces share the same log files, memory and threads. Transactions run transparently across all tablespaces. There is no inherent relationship between a tablespace and the database/schema to which it relates.
To create a new tablespace, use the CREATE
TABLESPACE statement:
CREATE TABLESPACEtablespace_nameADD DATAFILE 'file_name' ENGINE [=] Falcon
Two further files are created by Falcon, and
these contain the on-disk copy of the Falcon
serial log. These are also created within the realm of the
corresponding database. In a future release, you will be able to
specify an alternate location for these log files. So with the
preceding example data file test.fts the log
files will be named test.fl1 and
test.fl2.
Table definitions are, as with the other MySQL engines, stored
within a .frm file within a database specific
directory. For example, the table falcontest
within the test database will create the table
definition file falcontest.frm within the
directory test.


User Comments
It is said that the Falcon Storage Engine has been designed with modern database requirements in mind, and particularly for use within high-volume web serving or other environment that requires high performance, while still supporting the transactional and logging functionality required in this environment.
With high-volume web serving usually also comes high volume of data (see Live Journal, Slashdot or others as examples), having all data in a single file does not seem optimal in terms of ease of data management, especially to set up backups, why not have a version of the Falcon engine with a possible limit in file size? Exceeding this limit would create another data file.
Kind of late here on the follow up comment, but I would presume that if file size becomes an issue, the administrator could partition the tables using the horizontal partitioning in MySQL. I'm presuming that would result in multiple files within Falcon.
Add your own comment.