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