Bug #36990 Remove unsupported 'create tablespace' parameters and falcon_initial_allocation
Submitted: 26 May 2008 21:32 Modified: 8 Jan 2009 11:23
Reporter: Philip Stoev
Status: Closed
Category:Server: Falcon Severity:S3 (Non-critical)
Version:6.0-falcon-team OS:Any
Assigned to: Lars-Erik Bjørk Target Version:
Triage: D4 (Minor)

[26 May 2008 21: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 21: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 17: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 17: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 15: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 14: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 10: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 15: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 6: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 6: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 21:31] Kevin Lewis
Fix is in version 6.0.7
[14 Sep 2008 2: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 11: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 11: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.