Bug #36990 Remove unsupported 'create tablespace' parameters and falcon_initial_allocation
Submitted: 26 May 2008 19:32 Modified: 8 Jan 2009 10:23
Reporter: Philip Stoev Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Falcon storage engine Severity:S3 (Non-critical)
Version:6.0-falcon-team OS:Any
Assigned to: Lars-Erik Bjørk CPU Architecture:Any

[26 May 2008 19:32] Philip Stoev
Description:
The falcon_initial_allocation variable does not retain the value that was specified at the command line or using SET GLOBAL.

How to repeat:
mysql> set global falcon_initial_allocation=65535;
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like 'falcon_initial_allocation';
+---------------------------+-------+
| Variable_name             | Value |
+---------------------------+-------+
| falcon_initial_allocation | 0     |
+---------------------------+-------+

But:

mysql> set global falcon_initial_allocation=1024 * 1024;
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like 'falcon_initial_allocation';
+---------------------------+---------+
| Variable_name             | Value   |
+---------------------------+---------+
| falcon_initial_allocation | 1048576 |
+---------------------------+---------+

Suggested fix:
* make falcon_initial_allocation work for all feasible values
* convert parameter from value in MB to value in bytes
* Allow built-in KB, MB, GB modifiers to be used when setting value

The last two items would make this variable consistent with all other mysql variables that pertain to the size of something
[26 May 2008 19:36] Philip Stoev
Even if the falcon_initial_allocation sticks when queried via SHOW VARIABLES, the system tablespaces nor any user-defined tablespaces continue to be created with the usual sizes, as if the option was not specified at all.
[28 May 2008 15:39] Ann Harrison
The variable falcon_initial_allocation was introduced while we were
working out the problems around fsync and the page cache.  Someone
suggested that O_SYNC or O_DIRECT were faster on contiguous files.
That may be correct in some environments, but was not sufficiently 
effective in general to be worth supporting.  The parameter is ignored.
At the time, we wanted to get rid of it but got into a huge argument
about hidden tuning parameters in open source projects so just left
it hanging there, broken.

This is an ineffective tuning parameter, for which the code has been
removed.  Can we just drop it?

Ann
[28 May 2008 15:50] Philip Stoev
Innodb does provide a way for the user to specify the initial size of the tablespace.

It may be a good idea to combine this option with pre-allocating contigious files (including the serial log) under Windows, in case this will improve performance.
[3 Jul 2008 13:41] Lars-Erik Bjørk
What is the current view on this parameter? Should we make it work, or should we drop it?
[11 Jul 2008 12:42] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/49557

2733 lars-erik.bjork@sun.com	2008-07-11
      Fix for bug#36990 - falcon_initial_allocation does not retain desired value
      
      Completely removed all usage of falcon_initial_allocation
[17 Jul 2008 8:05] Lars-Erik Bjørk
After a discussion, it has become clear that not only falcon_initial_allocation must be removed, but also the rest of the parameters for 'create tablespace' that are either not supported by Falcon or NDB only.

These parameters are commented below:

CREATE TABLESPACE tablespace
        ADD DATAFILE 'file'
        USE LOGFILE GROUP logfile_group       // NDB only
        [EXTENT_SIZE [=] extent_size]         // not supported
        [INITIAL_SIZE [=] initial_size]       // not supported
        [AUTOEXTEND_SIZE [=] autoextend_size] // not supported
        [MAX_SIZE [=] max_size]               // not supported
        [NODEGROUP [=] nodegroup_id]          // NDB only
        [WAIT]                                // NDB only
        [COMMENT [=] comment_text]
        ENGINE [=] engine
[17 Jul 2008 13:52] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/49928

2756 lars-erik.bjork@sun.com	2008-07-17
      bug#36990 - Remove unsupported 'create tablespace' parameters and falcon_initial_allocation
      
      * Removed all usage of falcon_initial_allocation
      * Removed all usage of unsupported and NDB only parameters to 'create tablespace' statement
      * Updated test falcon_options and falcon_options2 to reflect the changes
[12 Aug 2008 4:39] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/51372

2755 Davi Arnaut	2008-08-12 [merge]
      Merge mysql-6.0 into mysql-6.0-bugteam
[12 Aug 2008 4:44] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/51373

2755 Davi Arnaut	2008-08-12 [merge]
      Merge mysql-6.0 into mysql-6.0-bugteam
[22 Aug 2008 19:31] Kevin Lewis
Fix is in version 6.0.7
[14 Sep 2008 0:01] Bugs System
Pushed into 6.0.6-alpha  (revid:lars-erik.bjork@sun.com-20080717135217-z3zlwwy465hmc20e) (version source revid:lars-erik.bjork@sun.com-20080717135217-z3zlwwy465hmc20e) (pib:3)
[8 Jan 2009 10:23] MC Brown
A note has been added to the 6.0.6 changelog: 

The falcon_index_chill_threshold and falcon_record_chill_threshold options have been modified so that the specification for the size can be specified in bytes, and support the KB, MB, and GB modifiers.
[8 Jan 2009 10:24] MC Brown
Correction, changelog message is: 

The falcon_initial_allocation has been removed. The option created new tablespace files with the specified size to force allocation on disk of specified block of contiguous space. The option had little effect on the performance of the tablespace files, and has therefore been removed.