Parameters are configured through the standard MySQL
my.cnf
or my.ini
file.
Parameters can be configured by specifying the parameter name and
the corresponding value, separated by a space. Memory values can be
specified in bytes, or with a number followed by
K
, M
or G
.
You can obtain a list of variables relevant to
Falcon
using SHOW
VARIABLES
:
mysql> SHOW VARIABLES LIKE '%falcon%';
+----------------------------------+------------------------------+
| Variable_name | Value |
+----------------------------------+------------------------------+
| falcon_checkpoint_schedule | 7 * * * * * |
| falcon_checksums | ON |
| falcon_consistent_read | ON |
| falcon_debug_mask | 0 |
| falcon_debug_server | OFF |
| falcon_debug_trace | 0 |
| falcon_direct_io | 1 |
| falcon_gopher_threads | 5 |
| falcon_index_chill_threshold | 4194304 |
| falcon_io_threads | 2 |
| falcon_large_blob_threshold | 160000 |
| falcon_lock_wait_timeout | 50 |
| falcon_page_cache_size | 4194304 |
| falcon_page_size | 4096 |
| falcon_record_chill_threshold | 5242880 |
| falcon_record_memory_max | 262144000 |
| falcon_record_scavenge_floor | 50 |
| falcon_record_scavenge_threshold | 67 |
| falcon_scavenge_schedule | 15,45 * * * * * |
| falcon_serial_log_block_size | 0 |
| falcon_serial_log_buffers | 20 |
| falcon_serial_log_dir | /home/jon/bin/mysql-6.0/var/ |
| falcon_serial_log_file_size | 10485760 |
| falcon_serial_log_priority | 1 |
| falcon_support_xa | OFF |
| falcon_use_deferred_index_hash | OFF |
| falcon_use_sectorcache | OFF |
| falcon_use_supernodes | ON |
+----------------------------------+------------------------------+
Version Introduced | 6.0.0 | |
Command-Line Format | falcon |
|
Config-File Format | falcon |
|
Permitted Values | ||
Type | boolean |
|
Default | yes |
Enables the Falcon
storage engine.
Version Introduced | 6.0.0 | |
Command-Line Format | --skip-falcon |
|
Config-File Format | skip-falcon |
Disables the Falcon
storage engine.
Version Introduced | 6.0.2 | |
Command-Line Format | falcon_checkpoint_schedule |
|
Config-File Format | falcon_checkpoint_schedule |
|
Option Sets Variable | Yes, falcon_checkpoint_schedule
|
|
Variable Name | falcon_checkpoint_schedule |
|
Variable Scope | Global | |
Dynamic Variable | Yes | |
Permitted Values | ||
Type | string |
|
Default | 7 * * * * * |
The checkpoint schedule (the frequency with which
fsync()
is called to synchronize the
in-memory and disk data). Specification is in the form of a
crontab
-style series of values, separated by
spaces. Each specification has six fields, identical to
crontab
, but with the addition of seconds.
Within the specification, from left to right these are:
Seconds (0–59)
Minutes (0–59)
Hours (0–23)
Day of month (1–31)
Month (1–12)
Day of week (0–7, where 0 and 7 are Sunday)
The values specified can either be absolute, or you can specify a range or comma-separated list of matching values. For example, the specification:
7,37 * * * * *
Would checkpoint every 7 and 37 seconds of every minute, of every hour of ever day. The following specification would checkpoint only during 6am and 6pm each day at 0 and 30 seconds of every minute.
0,30 * 6-17 * * *
The default setting is every minute, seven seconds past the minute:
7 * * * * *
Version Introduced | 6.0.6 | |
Command-Line Format | falcon_checksums |
|
Config-File Format | falcon_checksums |
|
Option Sets Variable | Yes, falcon_checksums
|
|
Variable Name | falcon_checksums |
|
Variable Scope | Global | |
Dynamic Variable | Yes | |
Permitted Values | ||
Type | boolean |
|
Default | OFF |
Enable Falcon checksum validation
Version Introduced | 6.0.4 | |
Command-Line Format | falcon_consistent_read |
|
Config-File Format | falcon_consistent_read |
|
Option Sets Variable | Yes, falcon_consistent_read
|
|
Variable Name | falcon_consistent_read |
|
Variable Scope | Both | |
Dynamic Variable | Yes | |
Permitted Values | ||
Type | boolean |
|
Default | ON |
Sets the repeatable read transaction isolation level. Set to On,
repeatable read transactions are truly consistent-read. Changes
made by younger transactions will not be exposed and newer
records cannot be read or written within a repeatable read
transaction. Set to Off, Falcon
works in
read-committed transaction isolation level.
If the currently selected transaction isolation level is
read_committed
and you set the transaction
isolation level to serializable
when using
a Falcon
table then the transaction level
will default to repeatable read, ignoring both the new and
previous settings.
The falcon_consistent_read
variable has only local scope. You can set the global value,
using SET
GLOBAL
, but this affects only the current local scope
and all new connections made after the global variable was set.
Version Introduced | 6.0.2 | |
Command-Line Format | falcon_debug_mask |
|
Config-File Format | falcon_debug_mask |
|
Option Sets Variable | Yes, falcon_debug_mask
|
|
Variable Name | falcon_debug_mask |
|
Variable Scope | Global | |
Dynamic Variable | Yes | |
Permitted Values | ||
Type | Bitmap |
|
Default | 0 |
|
Valid Values |
1 , 2 , 4 , 8 , 16 , 32 , 64 , 128 , 256 , 512
|
Sets the log information that is output to the standard output
of mysqld in the event of an error. The value
is a bit mask; you must combine values to enables different
combinations of error message types. Formerly known as
falcon_log_mask
. The supported values are:
Version Introduced | 6.0.2 | |
Command-Line Format | falcon_debug_mask |
|
Config-File Format | falcon_debug_mask |
|
Option Sets Variable | Yes, falcon_debug_mask
|
|
Variable Name | falcon_debug_mask |
|
Variable Scope | Global | |
Dynamic Variable | Yes | |
Permitted Values | ||
Type | Bitmap |
|
Default | 0 |
|
Valid Values |
1 , 2 , 4 , 8 , 16 , 32 , 64 , 128 , 256 , 512
|
Sets the log information that is output to the standard output
of mysqld in the event of an error. The value
is a bit mask; you must combine values to enables different
combinations of error message types. Formerly known as
falcon_log_mask
. The supported values are:
Value | Name | Description |
---|---|---|
1 | LogLog | Outputs minor errors, index, record and other faults. |
2 | LogDebug | Outputs detailed status and progress information for the purposes of debugging errors. |
4 | LogInfo | Generates general information and status messages |
8 | Unused | Currently unused. |
16 | Unused | Currently unused. |
32 | LogGG | |
64 | LogPanic | |
128 | LogScrub | |
256 | LogException | Logs exceptions and SQL errors. |
512 | LogScavenge | Reports record scavenger statistics. |
Version Introduced | 6.0.2 | |
Command-Line Format | falcon_debug_server |
|
Config-File Format | falcon_debug_server |
|
Option Sets Variable | Yes, falcon_debug_server
|
|
Variable Name | falcon_debug_server |
|
Variable Scope | Global | |
Dynamic Variable | No | |
Permitted Values | ||
Type | boolean |
|
Default | OFF |
Specifies whether the debug server should be enabled.
Version Introduced | 6.0.2 | |
Version Removed | 6.0.4 | |
Command-Line Format | falcon_disable_fsync |
|
Config-File Format | falcon_disable_fsync |
|
Option Sets Variable | Yes, falcon_disable_fsync
|
|
Variable Name | falcon_disable_fsync |
|
Variable Scope | Global | |
Dynamic Variable | Yes | |
Permitted Values | ||
Type | boolean |
|
Default | OFF |
If true, the periodic fsync
operation to
synchronize data on disk is disabled. Setting this value to true
may lead to data loss, but may increase performance.
Default value is false (fsync
is enabled).
Version Introduced | 6.0.4 | |
Command-Line Format | falcon_gopher_threads |
|
Config-File Format | falcon_gopher_threads |
|
Option Sets Variable | Yes, falcon_gopher_threads
|
|
Variable Name | falcon_gopher_threads |
|
Variable Scope | Global | |
Dynamic Variable | No | |
Permitted Values | ||
Type | numeric |
|
Default | 5 |
|
Min Value | 1 |
Number of threads that process committed changes in the serial log to the database.
Version Introduced | 6.0.2 | |
Command-Line Format | falcon_index_chill_threshold |
|
Config-File Format | falcon_index_chill_threshold |
|
Option Sets Variable | Yes, falcon_index_chill_threshold
|
|
Variable Name | falcon_index_chill_threshold |
|
Variable Scope | Global | |
Dynamic Variable | Yes | |
Permitted Values (<= 6.0.6) | ||
Type | numeric |
|
Default | 4 |
|
Range | 1-1024 |
|
Permitted Values (>= 6.0.7) | ||
Type | numeric |
|
Default | 4194304 |
|
Range | 1048576-1073741824 |
The size of the pending index data that should be stored during
a large transaction before the index changes are flushed to the
serial log. If the index is unique, or the transaction regularly
re-reads the index data, then the index data is stored in memory
(for faster access). The flushing of the index data to the
serial log is called chilling. Chilling pending indexes helps
Falcon
to load large data sets in a single
transaction without exhausting memory.
For versions up to MySQL 6.0.6, the value is specified in megabytes, with the minimum accepted value is 1, the maximum is 1024 and the default value is 4.
For versions of MySQL 6.0.7 and later, the value is specified in bytes, with the minimum accepted value is 1048576, the maximum is 1073741824 and the default value is 4194304.
This configuration option is available within mysqld as a server variable.
Version Introduced | 6.0.2 | |
Version Removed | 6.0.6 | |
Command-Line Format | falcon_initial_allocation |
|
Config-File Format | falcon_initial_allocation |
|
Option Sets Variable | Yes, falcon_initial_allocation
|
|
Variable Name | falcon_initial_allocation |
|
Variable Scope | Global | |
Dynamic Variable | Yes | |
Permitted Values | ||
Type | numeric |
|
Default | 0 |
|
Min Value | 10 |
The amount of space, in MB, that should be preallocated on disk
when a new Falcon
tablespace file is created.
This configuration option was removed in MySQL 6.0.6.
Version Introduced | 6.0.3 | |
Command-Line Format | falcon_io_threads |
|
Config-File Format | falcon_io_threads |
|
Option Sets Variable | Yes, falcon_io_threads
|
|
Variable Name | falcon_io_threads |
|
Variable Scope | Global | |
Dynamic Variable | Yes | |
Permitted Values | ||
Type | numeric |
|
Default | 2 |
The number of asynchronous threads to be used when performing writes to disk.
falcon_max_transaction_backlog
Version Introduced | 6.0.2 | |
Version Removed | 6.0.6 | |
Command-Line Format | falcon_max_transaction_backlog |
|
Config-File Format | falcon_max_transaction_backlog |
|
Option Sets Variable | Yes, falcon_max_transaction_backlog
|
|
Variable Name | falcon_max_transaction_backlog |
|
Variable Scope | Global | |
Dynamic Variable | Yes | |
Permitted Values | ||
Type | numeric |
|
Default | 150 |
The maximum number of pending transactions that will be active before the update process is blocked until the number of pending transactions reduces.
This configuration option was removed in MySQL 6.0.6.
Version Introduced | 6.0.4 | |
Command-Line Format | falcon_large_blob_threshold |
|
Config-File Format | falcon_large_blob_threshold |
|
Option Sets Variable | Yes, falcon_large_blob_threshold
|
|
Variable Name | falcon_large_blob_threshold |
|
Variable Scope | Global | |
Dynamic Variable | No | |
Permitted Values | ||
Type | numeric |
BLOB
data below this threshold is stored in
data pages, instead of BLOB
pages. This can
improve performance for smaller blobs because only the serial
log needs to be flushed at the end of a transaction, and not the
serial log and the blob pages.
Version Introduced | 6.0.4 | |
Command-Line Format | falcon_lock_wait_timeout |
|
Config-File Format | falcon_lock_wait_timeout |
|
Option Sets Variable | Yes, falcon_lock_wait_timeout
|
|
Variable Name | falcon_lock_wait_timeout |
|
Variable Scope | Global | |
Dynamic Variable | Yes | |
Permitted Values | ||
Type | numeric |
|
Default | 50 |
The period (in seconds) that a Falcon
transaction will wait for another transaction to complete when
both transactions need access to a locked table. A value 0
indicates that Falcon
will wait indefinitely
for another transaction to complete.
This variable was added in MySQL 6.0.4. (Previously, in 6.0.3,
there was a variable named
falcon_lock_timeout
which was measured in
milliseconds and had a default of 0.)
Version Introduced | 6.0.2 | |
Command-Line Format | falcon_page_cache_size |
|
Config-File Format | falcon_page_cache_size |
|
Option Sets Variable | Yes, falcon_page_cache_size
|
|
Variable Name | falcon_page_cache_size |
|
Variable Scope | Global | |
Dynamic Variable | No | |
Permitted Values (<= 6.0.9) | ||
Type | numeric |
|
Default | 4194304 |
|
Permitted Values (>= 6.0.10) | ||
Type | numeric |
|
Default | 262144000 |
Sets the amount of memory that will be allocated for caching pages from the tablespace file.
Version Introduced | 6.0.2 | |
Command-Line Format | falcon_page_size |
|
Config-File Format | falcon_page_size |
|
Option Sets Variable | Yes, falcon_page_size
|
|
Variable Name | falcon_page_size |
|
Variable Scope | Global | |
Dynamic Variable | No | |
Permitted Values (<= 6.0.5) | ||
Type | numeric |
|
Default | 4096 |
|
Valid Values |
1024 , 2048 , 4096 , 8192 , 16384 , 32768
|
|
Permitted Values (>= 6.0.6) | ||
Type | numeric |
|
Default | 4096 |
|
Valid Values |
2048 , 4096 , 8192 , 16384 , 32768
|
Controls the size of the pages used to store information within the tablespace. Valid sizes are 2, 4, 8, 16 and 32 KB.
The specified page size also affects the maximum index key lengths supported. The table below shows the relationship between the page size and the maximum index key length.
Page Size | Maximum Index Key Length |
---|---|
2K | 540 |
4K | 1100 |
8K | 2200 |
16K | 4500 |
32K | 9000 |
Version Introduced | 6.0.2 | |
Command-Line Format | falcon_record_chill_threshold |
|
Config-File Format | falcon_record_chill_threshold |
|
Option Sets Variable | Yes, falcon_record_chill_threshold
|
|
Variable Name | falcon_record_chill_threshold |
|
Variable Scope | Global | |
Dynamic Variable | Yes | |
Permitted Values (<= 6.0.6) | ||
Type | numeric |
|
Default | 5 |
|
Range | 1-1024 |
|
Permitted Values (>= 6.0.7) | ||
Type | numeric |
|
Default | 5242880 |
|
Range | 1048576-1073741824 |
The number of Mbytes of pending record data that
Falcon
will keep in memory during a large
transaction before flushing these records to the serial log.
This flushing is called chilling since it makes the data not
immediately available. If chilled records are accessed again
during the transaction, they are immediately restored (thawed)
from the serial log. Chilling pending records helps
Falcon
to accomplish very large transactions
without running out of memory.
For versions up to MySQL 6.0.6, the value is specified in megabytes, with the minimum accepted value is 1, the maximum is 1024 and the default value is 5.
For versions of MySQL 6.0.7 and later, the value is specified in bytes, with the minimum accepted value is 1048576, the maximum is 1073741824 and the default value is 5242880.
Version Introduced | 6.0.2 | |
Command-Line Format | falcon_record_memory_max |
|
Config-File Format | falcon_record_memory_max |
|
Option Sets Variable | Yes, falcon_record_memory_max
|
|
Variable Name | falcon_record_memory_max |
|
Variable Scope | Global | |
Dynamic Variable | Yes | |
Permitted Values (<= 6.0.8) | ||
Type | numeric |
|
Default | 20 |
|
Permitted Values (>= 6.0.9) | ||
Type | numeric |
|
Default | 262144000 |
Sets the maximum amount of memory that will be allocated for caching record data.
Version Introduced | 6.0.2 | |
Command-Line Format | falcon_record_scavenge_floor |
|
Config-File Format | falcon_record_scavenge_floor |
|
Option Sets Variable | Yes, falcon_record_scavenge_floor
|
|
Variable Name | falcon_record_scavenge_floor |
|
Variable Scope | Global | |
Dynamic Variable | Yes | |
Permitted Values (<= 6.0.9) | ||
Type | numeric |
|
Default | 50 |
|
Range | 10-90 |
|
Permitted Values (>= 6.0.10) | ||
Type | numeric |
|
Default | 80 |
|
Range | 10-90 |
The percentage of
falcon_record_scavenge_threshold
that will be retained in the record cache after the scavenger
thread has completed execution.
You can determine the minimum size of the record cache using this formula:
min(falcon_record_memory_max * (falcon_record_scavenge_threshold/100) * (falcon_record_scavenge_floor/100))
falcon_record_scavenge_threshold
Version Introduced | 6.0.2 | |
Command-Line Format | falcon_record_scavenge_threshold |
|
Config-File Format | falcon_record_scavenge_threshold |
|
Option Sets Variable | Yes, falcon_record_scavenge_threshold
|
|
Variable Name | falcon_record_scavenge_threshold |
|
Variable Scope | Global | |
Dynamic Variable | Yes | |
Permitted Values (>= 6.0.10) | ||
Type | numeric |
|
Default | 90 |
|
Range | 10-90 |
The percentage of
falcon_record_memory_max
that
will cause the scavenger thread to start removing old
generations of records from the record cache.
Default value is 67. The minimum accepted value is 10, and the maximum is 100.
Version Introduced | 6.0.2 | |
Command-Line Format | falcon_scavenge_schedule |
|
Config-File Format | falcon_scavenge_schedule |
|
Option Sets Variable | Yes, falcon_scavenge_schedule
|
|
Variable Name | falcon_scavenge_schedule |
|
Variable Scope | Global | |
Dynamic Variable | No | |
Permitted Values | ||
Type | string |
|
Default | 15,45 * * * * * |
The record scavenging schedule, specified as a
crontab
style schedule. See
falcon_checkpoint_schedule
.
Version Introduced | 6.0.2 | |
Command-Line Format | falcon_serial_log_buffers |
|
Config-File Format | falcon_serial_log_buffers |
|
Option Sets Variable | Yes, falcon_serial_log_buffers
|
|
Variable Name | falcon_serial_log_buffers |
|
Variable Scope | Global | |
Dynamic Variable | No | |
Permitted Values | ||
Type | numeric |
|
Default | 10 |
|
Range | 10-1000 |
The number of memory windows allocated for the
Falcon
serial log. Each window is 1 MByte in
size. Formerly falcon_log_windows
.
Version Introduced | 6.0.2 | |
Command-Line Format | falcon_serial_log_dir |
|
Config-File Format | falcon_serial_log_dir |
|
Option Sets Variable | Yes, falcon_serial_log_dir
|
|
Variable Name | falcon_serial_log_dir |
|
Variable Scope | Global | |
Dynamic Variable | No | |
Permitted Values | ||
Type | filename |
Sets the directory for storing the serial log. The file names used by the serial log (two files are create for storing serial data) are allocated according to the name of the tablespace.
Version Introduced | 6.0.4 | |
Command-Line Format | falcon_serial_log_priority |
|
Config-File Format | falcon_serial_log_priority |
|
Option Sets Variable | Yes, falcon_serial_log_priority
|
|
Variable Name | falcon_serial_log_priority |
|
Variable Scope | Global | |
Dynamic Variable | Yes | |
Permitted Values | ||
Type | boolean |
|
Default | 1 |
Sets whether the serial log has priority other writes.
Version Introduced | 6.0.4 | |
Command-Line Format | falcon_support_xa |
|
Config-File Format | falcon_support_xa |
|
Option Sets Variable | Yes, falcon_support_xa
|
|
Variable Name | falcon_support_xa |
|
Variable Scope | Global | |
Dynamic Variable | No | |
Permitted Values | ||
Type | boolean |
Specifies whether Falcon
should support
two-phase commit. When set to 0 (default), commits are single
phase. When set to 1, Falcon
reports itself
as a two-phase commit supporting engine and supports two-phase
commits.
falcon_use_deferred_index_hash
Version Introduced | 6.0.4 | |
Command-Line Format | falcon_use_deferred_index_hash |
|
Config-File Format | falcon_use_deferred_index_hash |
|
Option Sets Variable | Yes, falcon_use_deferred_index_hash
|
|
Variable Name | falcon_use_deferred_index_hash |
|
Variable Scope | Global | |
Dynamic Variable | No | |
Permitted Values | ||
Type | boolean |
|
Default | OFF |
Enable the deferred index hash.
Default is off
Version Introduced | 6.0.6 | |
Command-Line Format | falcon_use_sectorcache |
|
Config-File Format | falcon_use_sectorcache |
|
Option Sets Variable | Yes, falcon_use_sectorcache
|
|
Variable Name | falcon_use_sectorcache |
|
Variable Scope | Global | |
Dynamic Variable | No | |
Permitted Values | ||
Type | boolean |
|
Default | off |
Use the sector cache. When enabled, disk reads are in blocks of
64KB. When switched off, disk reads are based on the page size
(as set by falcon_page_size
.
Default is off
Version Introduced | 6.0.5 | |
Command-Line Format | falcon_use_supernodes |
|
Config-File Format | falcon_use_supernodes |
|
Option Sets Variable | Yes, falcon_use_supernodes
|
|
Variable Name | falcon_use_supernodes |
|
Variable Scope | Global | |
Dynamic Variable | No | |
Permitted Values | ||
Type | boolean |
|
Default | on |
Use supernodes within the Falcon index. Supernodes are an array of 16 vectors into each index page to keys that are fully expanded with noprefix compression. This allows the page to be searched quicker using a binary search of supernode keys followed by the normal sequential search. Without enabling supernodes, the whole page has to be searched sequentially.
Default is on
The relationship between the record cache and the page cache is
driven by the information that is cached by each system. Whole
records that are in active use (being read or updated) are stored
within the record cache, however,
BLOB
data is stored only within the
page cache.
The page cache is used to store database metadata,
BLOB
data and table indexes.
Falcon
parameters can be also be set on the
command-line to mysqld using the following
command-line options:
--falcon-max-record-memory=#
--falcon-min-record-memory=#
--falcon-page-cache-size=#
You can also enable and disable the Falcon
storage engine at startup by supplying these options to
mysqld, providing that the
mysqld
binary includes the
Falcon
Storage Engine.
--falcon
enables the Falcon
storage engine.
--skip-falcon
disables the
Falcon
Storage Engine.