Falcon-Storage-Engine

Falcon ist eine transaktionsfähige Storage-Engine für MySQL (neben InnoDB und DBD die ebenfalls transaktionsfähig sind).  Die Objekte werden bei der Falcon Storage Engine mit einer weiteren logischen Ebene verwaltet: den Tablespaces.

Tablespaces
Die Tablespaces werden von Falcon erstellt für Datenbankobjekte wie Tabellen, Indizes oder BLOB-Daten.  Dazu erstellt Falcon genau wie ORACLE oder SQL-Server einen System-Tablespace zur eigenen Verwendung (falcon_masters.fts) sowie einen temporären Tablespace für das Workarea-Handling (falcon_temporary_fts).  Diese Tablespaces werden in dem Standard-MySQL-Daten-Verzeichnis erstellt. Dabei verhalten sich die Tablespaces eher wie bei ORACLE (mit Schemata),  da ein Tablespace für mehrere Datenbanken in der MySQL-Instanz verwendet werden kann. Einen Tablespace erstellt man z.B. auf der Windows-Plattform über:

MySQL> 
create tablespace gimdata
→ add datafile 'c:/dev/falcon/gimdata.fts'
→ engine=falcon; 

Um einen Tablespace zu erstellen, wird ein eindeutiger Name für den Tablespace gebraucht: ein eindeutiger Datafile Name und, falls notwendig, der dazugehörige Pfad. Mit der ENGINE= FALCON Klausel ist es meist getan, da  die NDB/Cluster-Speicher-Engine (NDB= Network Database) auch Tablespaces verwendet.    Tablespaces sind von dynamischer Natur: man kann sie fast beliebig erstellen und löschen ohne dass es eine Auswirkung auf die Ausführung der MySQL-Instanz hat.  Das Erstellen von Tabellen und Indizes erfolgt in Falcon leicht über die CREATE-DDL-Syntax. Damit kann man Tablespace Objekte zuweisen.  Die Kontrolle darüber, welche Objekte den Tablespaces zugewiesen sind erfolgt über die Abfrage von INFORMATION_SCHEMA Objekt FALCON_TABLES. 

MySQL Probleme die die Falcon Storage Engine lösen soll:
Folgende MySQL-Probleme sollen durch die Falcon Storage Engine gelöst werden:  Unzureichende oder schlechte Unterstützung für:
korrekte Fremdschlüssel
Stored Procedures
Transaktionen
Replikation als Master/Slave
Materialized Views

 
Auch die referentielle Integrität soll bei MySQL durch Falcon verbessert werden. Weitere Problempunkte sind die Unicode-Unterstützung und die Handhabung von XML-Dokumenten. 

Features von der Falcon-Storage-Engine
Online Add and Drop Index: Falcon erstellt Indizes im laufenden Betrieb, ohne Unterbrechung des Lese-/Schreib-Zugriffs auf der Tabelle. 
SuperNodes: SuperNodes sind ein Array von 16 Vektoren in jeder Indexseite zu Schlüsseln, die vollständig mit Noprefix Komprimierung erweitert sind.
Weitere neue Features sind: Thread-Signaling, Record Cache Backlogging und einige  Performance-Steigerungen. 

Datafiles
Bei Erzeugung eines Tablespaces kann keine Kontrolle über die Ausgangsgrösse und maximale Grösse von Dateien ausgeübt werden.                     
Siehe auch:    MySQL   InnoDB   MyISAM   datenbank   Multiversion-Concurrency-Control   

  My-SQL-6

MySQL 6.0 soll einige Probleme von MySQL lösen. Neben der Falcon Storage Engine werden folgende Änderungen eingebaut:  Unterstützung der Unicode Zeichensätze UTF-16, UTF-32 und UTF-8 in der 4 Byte Version.  Der Optimizer für Subqueries und Joins wird verbessert. Der Index-Zugriff durch Scripts auf Tabellenreihen für Teile nicht zusammenhängender Bereiche in der MyISAM- und InnoDB-Storage Engine ist ein neues Feature.  Eine neue Tabelle 'PARAMETERS' wird angelegt: diese Tabelle verfügt über Informationen zu Parametern von integrierten Funktionen und Prozeduren.  Der Tabelle 'ROUTINES' werden neue Columns hinzugefügt:  'Data_Type', 'Character_Maximum_Length', 'Character Octet_Length', 'Numeric_Precision', 'Numeric_Scale', 'Character_Set_Name' und 'Collation_Name'.  Diese Columns verfügen über Informationen von Datentypen, die Rückgabewerte von gespeicherten Funktionen annehmen können.  Weitere Neuerungen sind: Reset Slave-Kommando, Lock-Table-Syntax und ein verbesserter Umgang mit XML-Objekten.                                           
Siehe auch:    MySQL   Falcon-Storage-Engine   InnoDB   MySQL-Cluster