List:Commits« Previous MessageNext Message »
From:mcbrown Date:June 19 2007 2:40pm
Subject:svn commit - mysqldoc@docsrva: r6860 - trunk/falcon
View as plain text  
Author: mcbrown
Date: 2007-06-19 14:40:33 +0200 (Tue, 19 Jun 2007)
New Revision: 6860

Log:
Updating Falcond documenation for the forthcoming beta release, including: 

- Changes as notified by Calvin
- WL#3923 (Arbitrary Precision Divission for BigInt)
- WL#3870 New Falcon @@ options
- Bug #26328
- Bug #26607



Modified:
   trunk/falcon/falcon-installation.xml
   trunk/falcon/falcon-roadmap.xml
   trunk/falcon/falcon.xml
   trunk/falcon/news-falcon.xml
   trunk/falcon/se-falcon.xml


Modified: trunk/falcon/falcon-installation.xml
===================================================================
--- trunk/falcon/falcon-installation.xml	2007-06-19 10:59:38 UTC (rev 6859)
+++ trunk/falcon/falcon-installation.xml	2007-06-19 12:40:33 UTC (rev 6860)
Changed blocks: 3, Lines Added: 3, Lines Deleted: 3; 1285 bytes

@@ -36,7 +36,7 @@
 
     <listitem>
       <para>
-        GNU <command>automake</command> 1.8 (or newer)
+        GNU <command>automake</command> 1.8.1 (or newer)
       </para>
     </listitem>
 

@@ -187,7 +187,7 @@
         For Pentium CPUs, use
         <command>compile-pentium-debug-falcon</command>, for AMD 64
         CPUs, use <command>compile-amd64-debug-falcon</command>. The
-        build scipts are located in the <filename>BUILD</filename>, but
+        build scripts are located in the <filename>BUILD</filename>, but
         they should be executed from the root directory of the tree:
       </para>
 

@@ -215,7 +215,7 @@
 
       <para>
         The above command will create an archive with all the files you
-        need configured to behave as if they were in a directoy named
+        need configured to behave as if they were in a directory named
         according to the version and tag for this release. For example,
         on a Linux Pentium machine, the Falcon release will create an
         archive with the name


Modified: trunk/falcon/falcon-roadmap.xml
===================================================================
--- trunk/falcon/falcon-roadmap.xml	2007-06-19 10:59:38 UTC (rev 6859)
+++ trunk/falcon/falcon-roadmap.xml	2007-06-19 12:40:33 UTC (rev 6860)
Changed blocks: 2, Lines Added: 0, Lines Deleted: 24; 846 bytes

@@ -19,12 +19,6 @@
 
     <listitem>
       <para>
-        Index super-nodes
-      </para>
-    </listitem>
-
-    <listitem>
-      <para>
         XA Transactions including durable two phase commit
       </para>
     </listitem>

@@ -53,24 +47,6 @@
       </para>
     </listitem>
 
-    <listitem>
-      <para>
-        Falcon tablespaces
-      </para>
-    </listitem>
-
-    <listitem>
-      <para>
-        Additional tuning parameters, include log file placement
-      </para>
-    </listitem>
-
-    <listitem>
-      <para>
-        Foreign key support
-      </para>
-    </listitem>
-
   </itemizedlist>
 
 </appendix>


Modified: trunk/falcon/falcon.xml
===================================================================
--- trunk/falcon/falcon.xml	2007-06-19 10:59:38 UTC (rev 6859)
+++ trunk/falcon/falcon.xml	2007-06-19 12:40:33 UTC (rev 6860)
Changed blocks: 1, Lines Added: 1, Lines Deleted: 1; 499 bytes

@@ -58,7 +58,7 @@
 
     <note>
       <para>
-        Thet mysql-6.0-falcon tree may not include all feature or bug
+        The mysql-6.0-falcon tree may not include all feature or bug
         fixes that have been applied to previous releases of MySQL.
       </para>
     </note>


Modified: trunk/falcon/news-falcon.xml
===================================================================
--- trunk/falcon/news-falcon.xml	2007-06-19 10:59:38 UTC (rev 6859)
+++ trunk/falcon/news-falcon.xml	2007-06-19 12:40:33 UTC (rev 6860)
Changed blocks: 5, Lines Added: 53, Lines Deleted: 2; 2701 bytes

@@ -23,6 +23,35 @@
     <title>Changes in release 6.0.1 (Not yet released)</title>
 
     <para>
+      Functionality added or changed:
+    </para>
+
+    <itemizedlist>
+
+      <listitem>
+        <para>
+          64-bit Windows support.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          Support for tablespaces.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          New performance settings,
+          <literal>falcon_log_windows</literal>,
+          <literal>falcon_index_chill_threshold</literal>, and
+          <literal>falcon_record_chill_threshold</literal>.
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
+    <para>
       Bugs fixed:
     </para>
 

@@ -30,6 +59,21 @@
 
       <listitem>
         <para>
+          Queries could fail with a <literal>Can't find record in
+          ...</literal> error. (Bug #26328)
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          <literal>DECIMAL</literal> columns with large widths did not
+          work, either during <literal>INSERT</literal> or
+          <literal>SELECT</literal>. (Bug #26607).
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
           Renaming a database would raise error <literal>ERROR 1030
           (HY000): Got error 157 from storage engine</literal>. (Bug
           #22182)

@@ -153,6 +197,13 @@
         </para>
       </listitem>
 
+      <listitem>
+        <para>
+          Performance diagnostics are available through
+          <literal>INFORMATION_SCHEMA</literal>.
+        </para>
+      </listitem>
+
     </itemizedlist>
 
     <para>

@@ -216,7 +267,7 @@
           Creating a table with a 19 digit <literal>DECIMAL</literal>
           column would cause incorrect data to be stored. This is due to
           current limitation in Falcon where you cannot create a table
-          with a column with greateer than 18 digits precision (i.e.
+          with a column with greater than 18 digits precision (i.e.
           <literal>DECIMAL(18,9)</literal>). Creating a column with
           larger than this specification will fail and raise an error.
           (Bug #27962)

@@ -489,7 +540,7 @@
 
         <listitem>
           <para>
-            Performance improvements: thread bottleneckes have been
+            Performance improvements: thread bottlenecks have been
             reduced when a larger number of parallel auto-commit threads
             executed a trivial query in a hard loop.
           </para>


Modified: trunk/falcon/se-falcon.xml
===================================================================
--- trunk/falcon/se-falcon.xml	2007-06-19 10:59:38 UTC (rev 6859)
+++ trunk/falcon/se-falcon.xml	2007-06-19 12:40:33 UTC (rev 6860)
Changed blocks: 9, Lines Added: 302, Lines Deleted: 64; 18843 bytes

@@ -11,7 +11,7 @@
 
   <para>
     This chapter contains information on using Falcon, including
-    configuration parameters, detals on how Falcon works internally and
+    configuration parameters, details on how Falcon works internally and
     the limitations of the current release.
   </para>
 

@@ -20,7 +20,7 @@
     <title>Configuration Parameters</title>
 
     <para>
-      Parameters are configured through the standard
+      Parameters are configured through the standard MySQL
       <filename>my.cnf</filename> or <filename>my.ini</filename>
file.
       Parameters can be configured by specifying the parameter name and
       the corresponding value, separated by a space. Memory values can

@@ -48,25 +48,93 @@
           Cache Base) sets the minimum amount of memory that will be
           allocated for caching record data. When cache memory is
           scavenged, the process will stop when the cache usage reaches
-          this value. The default is
-          <literal>falcon_max_record_memory</literal>/2 (10MB).
+          this value.
         </para>
+
+        <para>
+          The default is <literal>falcon_max_record_memory</literal>/2
+          (10MB).
+        </para>
       </listitem>
 
       <listitem>
         <para>
+          <literal>falcon_log_windows</literal> &mdash; the number of
+          memory windows allocated for the Falcon serial log. Each
+          window is 1 MByte in size.
+        </para>
+
+        <para>
+          The minimum accepted value is 10, the maximum is 32768 and the
+          default value is 10.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          <literal>falcon_index_chill_threshold</literal> &mdash; the
+          number of megabytes of 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.
+        </para>
+
+        <para>
+          The minimum accepted value is 1, the maximum is 1024 and the
+          default value is 4.
+        </para>
+
+        <para>
+          This configuration option is available within
+          <command>mysqld</command> as a server variable.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          <literal>falcon_record_chill_threshold</literal> &mdash; 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.
+        </para>
+
+        <para>
+          The minimum accepted value is 1, the maximum is 1024 and the
+          default value is 5.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
           <literal>falcon_max_record_memory</literal> &mdash; (Record
           Cache Top) sets the maximum size of memory that will be
-          allocated for caching record data. The default is 20MB.
+          allocated for caching record data.
         </para>
+
+        <para>
+          The default value is 20MB.
+        </para>
       </listitem>
 
       <listitem>
         <para>
           <literal>falcon_page_cache_size</literal> &mdash; (Page Cache
           Size) sets the amount of memory that will be allocated for
-          caching pages from the tablespace file. The default is 4MB.
+          caching pages from the tablespace file.
         </para>
+
+        <para>
+          The default value is 4MB.
+        </para>
       </listitem>
 
 <!--

@@ -198,41 +266,82 @@
 
     <para>
       Within Falcon, all data within one database is stored within a
-      single tablespace, which in turn is stored within a single file
-      within the MySQL directory structure. A single Falcon database
-      will create three main files. One file contains the Falcon data
-      and will be stored in a file with the name of the Falcon database
-      with the extension <filename>.fts</filename>. For example, Falcon
-      tables defined within the database <literal>test</literal> will be
-      stored within the file <filename>test.fts</filename> within the
-      main MySQL data directory.
+      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
+      <filename>.fts</filename>. For example, Falcon tables defined
+      within the database <literal>test</literal> will be stored within
+      the file <filename>test.fts</filename> within the main MySQL data
+      directory.
     </para>
 
     <para>
-      Two further files 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 <filename>test.fts</filename> the log files will
-      be named <filename>test.fl1</filename> and
-      <filename>test.fl2</filename>.
+      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:
     </para>
 
+    <itemizedlist>
+
+      <listitem>
+        <para>
+          An unnamed internal tablespace used to hold system tables.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          <literal>falcon_user</literal>, used as the default location
+          for user defined tables.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          <literal>falcon_temporary</literal>, used to hold temporary
+          tables.
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
     <para>
+      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.
+    </para>
+
+    <para>
+      To create a new tablespace, use the <literal>CREATE
+      TABLESPACE</literal> statement:
+    </para>
+
+<programlisting>CREATE TABLESPACE <replaceable>tablespace</replaceable>
+    ADD DATAFILE <replaceable>'file'</replaceable>
+    ENGINE [=] Falcon</programlisting>
+
+    <para>
+      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
+      <filename>test.fts</filename> the log files will be named
+      <filename>test.fl1</filename> and
<filename>test.fl2</filename>.
+    </para>
+
+    <para>
       Table definitions are, as with the other MySQL engines, stored
       within a <literal>.frm</literal> file within a database specific
       directory. For example, the table <literal>falcontest</literal>
       within the <literal>test</literal> database will create the table
       definition file <filename>falcontest.frm</filename> within the
-      directory test.
+      directory <filename>test</filename>.
     </para>
 
-    <para>
-      When creating a table within a MySQL database where the
-      corresponding Falcon tablespace file does not exist, it will
-      automatically be created with the Falcon data file and log files.
-    </para>
-
   </section>
 
   <section id="se-falcon-createtable">

@@ -272,8 +381,164 @@
 <programlisting>CREATE TABLE t1 (id int NOT NULL,id2 int NOT NULL,id3 int NOT NULL,
 name CHAR(30),primary key (id,id2),index index_id3 (id3))
ENGINE=Falcon</programlisting>
 
+    <para>
+      To create a table within a specific table space, add the
+      <literal>TABLESPACE</literal> definition:
+    </para>
+
+<programlisting>CREATE TABLE names (id INT, fname VARCHAR (20), lname VARCHAR (20))

+    TABLESPACE my_big_tables ENGINE=Falcon</programlisting>
+
+    <para>
+      You can use <literal>ALTER TABLE</literal> to change the
+      tablespace for a given table; Falcon will move the table data to
+      the new tablespace:
+    </para>
+
+<programlisting>ALTER TABLE names TABLESPACE my_small_tables</programlisting>
+
+    <para>
+      You can drop a tablespace when it is empty (i.e. when it no longer
+      contains any tables) using <literal>DROP TABLESPACE</literal>:
+    </para>
+
+<programlisting>DROP TABLESPACE my_big_tables</programlisting>
+
+    <para>
+      You cannot currently alter a tablespace (using <literal>ALTER
+      TABLESPACE</literal>).
+    </para>
+
   </section>
 
+  <section id="se-falcon-stats">
+
+    <title>Obtaining Performance Diagnostics</title>
+
+    <para>
+      Falcon exports internal performance diagnostic information into
+      the global <literal>INFORMATION_SCHEMA</literal> tables.
+      Currently, Falcon generates information into the following tables:
+    </para>
+
+<programlisting>+---------------------------------------+
+| Tables_in_information_schema          |
++---------------------------------------+
+| FALCON_RECORD_CACHE_SUMMARY           |
+| FALCON_SYSTEM_MEMORY_DETAIL           |
+| FALCON_SYSTEM_MEMORY_SUMMARY          |
+| FALCON_SYNCOBJECTS                    |
+| FALCON_RECORD_CACHE_DETAIL            |
+| FALCON_TRANSACTION_SUMMARY            |
+| FALCON_DATABASE_IO                    |
+| FALCON_TRANSACTIONS                   |
+| FALCON_SERIAL_LOG                     |
++---------------------------------------+</programlisting>
+
+    <table>
+      <title>Falcon <literal>INFORMATION_SCHEMA</literal> performance
diagnostic
+        tables</title>
+      <tgroup cols="2">
+        <thead>
+          <row>
+            <entry>I_S Table</entry>
+            <entry>Description</entry>
+          </row>
+        </thead>
+        <tbody>
+          <row>
+           
<entry><literal>FALCON_SYSTEM_MEMORY_DETAIL</literal></entry>
+            <entry>System memory detail; gives a detailed account of the object and
memory
+              usage across the different object instances of classes
+              within Falcon.</entry>
+          </row>
+          <row>
+           
<entry><literal>FALCON_SYSTEM_MEMORY_SUMMARY</literal></entry>
+            <entry>System system memory summary; provides an overview of the memory
usage
+              in Falcon, including the total memory allocated, free
+              space and fragmentation.</entry>
+          </row>
+          <row>
+           
<entry><literal>FALCON_RECORD_CACHE_DETAIL</literal></entry>
+            <entry>Record cache detail; shows the number of active records held in
the
+              record cache and the space they are currently consuming.</entry>
+          </row>
+          <row>
+           
<entry><literal>FALCON_RECORD_CACHE_SUMMARY</literal></entry>
+            <entry>Record cache summary shows the space allocated and available for
record
+              storage, including an indication of fragmentation of the
+              record cache.</entry>
+          </row>
+          <row>
+            <entry><literal>FALCON_TRANSACTIONS</literal></entry>
+            <entry>Transactions; shows the currently active transactions and their
status
+              and dependencies, including the number of records affected
+              and the age of the transaction.</entry>
+          </row>
+          <row>
+           
<entry><literal>FALCON_TRANSACTION_SUMMARY</literal></entry>
+            <entry>Transaction summary for active transactions.</entry>
+          </row>
+          <row>
+            <entry><literal>FALCON_SYNCOBJECTS</literal></entry>
+            <entry>SyncObjects; shows detail on internal Falcon object
usage.</entry>
+          </row>
+          <row>
+            <entry><literal>FALCON_SERIAL_LOG</literal></entry>
+            <entry>Serial log status information. Shows transactions and serial log
object
+              usage per database.</entry>
+          </row>
+          <row>
+            <entry><literal>FALCON_DATABASE_IO</literal></entry>
+            <entry>I/O statistics showing page size, buffer size, and reads/writes
on a per
+              database basis.</entry>
+          </row>
+          <row>
+            <entry><literal>FALCON_TABLES</literal></entry>
+            <entry>Lists all Falcon tables.</entry>
+          </row>
+        </tbody>
+      </tgroup>
+    </table>
+
+    <para>
+      To obtain the diagnostic information you can run a standard
+      <literal>SELECT</literal> statement. Depending on the I_S table
+      you have chosen, the information may be provided on a database or
+      table basis. If the information is based on a table name and that
+      table is stored within a unique tablespace, then the tablespace
+      name is quoted in the table name. For example, you can get
+      statistics on I/O for Falcon databases from the
+      <literal>falcon_database_io</literal> table:
+    </para>
+
+<programlisting>mysql> select * from information_schema.falcon_database_io;
++----------+-----------+---------+-------+--------+---------+-------+
+| DATABASE | PAGE_SIZE | BUFFERS | READS | WRITES | FETCHES | FAKES |
++----------+-----------+---------+-------+--------+---------+-------+
+| RMS      |      4096 |    2560 |     0 |    109 |   98687 |   615 |
+| GIMF     |      4096 |    2560 |   565 |     28 |   56870 |     3 |
++----------+-----------+---------+-------+--------+---------+-------+</programlisting>
+
+    <para>
+      You can also <literal>JOIN</literal> information between tables to
+      obtain more specific statistics information. For example, the
+      statement below will show the list of statements on Falcon tables
+      that are currently blocking during transactions:
+    </para>
+
+<programlisting>mysql> select a.id thread, a.user,b.id txn_id,b.database,a.time,
b.waiting_for, statement
+-> from   information_schema.processlist a, information_schema.falcon_transactions b
+-> where  a.id = b.thread_id;
++--------+------+--------+----------+------+-------------+--------------------------------+
+| thread | user | txn_id | database | time | waiting_for | statement                     
|
++--------+------+--------+----------+------+-------------+--------------------------------+
+|      2 | root |      8 | GIMF     |    0 |           0 |                               
|
+|      3 | root |      9 | GIMF     |   76 |           8 | update rms set c1=5 where c1=1
|
++--------+------+--------+----------+------+-------------+--------------------------------+</programlisting>
+
+  </section>
+
   <section id="se-falcon-principles">
 
     <title>Principles and Terminology</title>

@@ -633,7 +898,7 @@
       <para>
         Falcon was designed to perform best on systems with generous
         amounts of memory. The memory caches utilized by Falcon are
-        similar in some respects with other RDBMS’s and MySQL engines;
+        similar in some respects with other RDBMS's and MySQL engines;
         however, the cache structures offer a number of improvements
         over traditional memory caching strategies. The mechanisms used
         by Falcon with respect to memory caching include:

@@ -709,8 +974,8 @@
         <listitem>
           <para>
             Because of the support the record cache supplies to
-            transactions, a scavenge thread is used to ensure only
-            “hot” data resides in the cache. When the
+            transactions, a scavenge thread is used to ensure only "hot"
+            data resides in the cache. When the
             <literal>falcon_max_record_memory</literal> limit is
             reached, Falcon surveys the demographics of the generational
             data in the cache, and removes the oldest generations. This

@@ -781,39 +1046,28 @@
 
       <listitem>
         <para>
-          Falcon is currently available only for 32-bit Windows and
-          32-bit and 64-bit Linux operating systems.
+          Falcon is currently available only for Windows and Linux
+          operating systerms, both 32-bit and 64-bit.
         </para>
       </listitem>
 
       <listitem>
         <para>
-          Falcon performance is not currently optimized for the Alpha
-          release. Optimization and platform-specific tuning is planned
-          for a future release.
+          The maximum key length is limited 1100 bytes.
         </para>
       </listitem>
 
       <listitem>
         <para>
-          For the Alpha release, the maximum key length is limited 1100
-          bytes.
-        </para>
-      </listitem>
-
-      <listitem>
-        <para>
           Serializable isolation levels are not supported.
         </para>
       </listitem>
 
       <listitem>
         <para>
-          Falcon is currently limited to to support
-          <literal>DECIMAL</literal> columns with a maximum 18 digits
-          and 9 digits precision (<literal>DECIMAL(18,9)</literal>).
-          Creating a table with a specification larger than this will
-          raise an error.
+          Falcon behaves as if the
+          <literal>lower_case_table_names</literal> option has been
+          enabled irrespective of the current platform.
         </para>
       </listitem>
 

@@ -831,22 +1085,6 @@
 
       <listitem>
         <para>
-          There is a limit of 2<superscript>32</superscript> (4.29
-          billion) rows for a single table. By using multiple tables
-          within the same tablespace you can have more than this number
-          of records. In future releases this limit will be removed.
-        </para>
-      </listitem>
-
-      <listitem>
-        <para>
-          Configurable page sizes are not supported, but are planned for
-          a future release.
-        </para>
-      </listitem>
-
-      <listitem>
-        <para>
           Each tablespace has a limit of 2<superscript>32</superscript>
           pages within a single tablespace. Through a combination of the
           page size and the maximum number of pages in a tablespace,


Thread
svn commit - mysqldoc@docsrva: r6860 - trunk/falconmcbrown19 Jun