Transbase® Architektur & Performanz


Transbase® Architektur

Parallel Processing

Transbase® Server ist als Multiplexer realisiert, der für die Bearbeitung der Client-Anfragen nach Bedarf Transbase® Kernel-Prozesse zuteilt. Diese Zuteilung besteht für die gesamte Transaktion.

Die einzelnen Kernel-Prozesse verarbeiten die Anfragen der Applikationsprogramme und greifen dabei über einen gemeinsamen, globalen Datenbank-Cache auf den Datenspeicher zu. Dadurch können Schreib- und Lesezugriffe transaktionsübergreifend optimiert werden.

Durch seine modulare Architektur ist Transbase® sehr gut skalierbar und passt sich hervorragend an die Möglichkeiten der gegebenen Hardware an. Die parallelisierte Verarbeitung einzelner Anfragen innerhalb eines Transbase® Kernels unterstützt die optimale Nutzung der vorhandenen Ressourcen.

Unterschiediche Tabellentypen für unterschiedliche Zwecke:

  • Standard-Tabellen mit geclusterter Datenspeicherung als primäre B-Bäume
  • Tabellen ohne B-Baum-Index für schnelleres Einfügen (z.B. für Log-Einträge)
  • Remote-Tabellen in anderen Transbase® Datenbanken (Transbase® D).
  • Tabellen in anderen Datenbanken über JDBC oder OCI für Read-Only-Betrieb
  • externe Dateien im CSV-Format (können zum Datenbankaufbau fest eingebunden werden)

Vielfältige Indexierungstechniken für Primär- und Sekundärindizes:

  • Als Standardindex verwendet Transbase® B-Bäume - sowohl für Tabellen (mit Primärschlüssel) als auch für Indizes auf Sekundärschlüsseln.
  • Die kompakte Bitmap-Indexierung wird für einspaltige Sekundärindexe auf INTEGER-Feldern angeboten und unterstützt durch die Bitmap-Algorithmen besonders die Kombination vieler wenig selektiver Merkmale.
  • Der Transbase® Hypercube Spezialindex bietet eine multidimensionale Indexierung für Primär- und Sekundärindizes. Er ist speziell für multidimensionale Daten geeignet, insbesondere für Data Warehouse Applikationen.
  • Transbase® Volltextsuche bietet Volltextindizes zur Indexierung von Texten, mit denen sich auch große Textbasen in kürzester Zeit nach Volltextprädikaten, kombiniert mit strukturellen Prädikaten, durchsuchen lassen.

Folgende Objekte werden zudem von Transbase® unterstützt:

  • Domains zur zentralen Definition applikationsspezifischer Datentypen
  • Sequenzen zur sicheren und eindeutigen ID-Generierung
  • Trigger zur Auslösung weiterer Aktionen bei Datenänderungen
  • Stored Procedures und User-Defined Functions, die in Java oder C formuliert werden können

Transbase® Performanz (Ressourcenbedarf, Skalierbarkeit, Partitionierung)

Transbase® zeichnet sich durch seine ausgezeichnete Performanz aus, die auf folgende Eigenschaften zurückzuführen ist:

Minimaler Ressourcenbedarf

Der Ressourcenbedarf von Transbase® ist durch die Verwendung effizienter Algorithmen und minimaler Datenstrukturen sehr gering - sowohl für die Festplatte als auch für den Hauptspeicher: 2 MB Prozessgröße und 4 MB Cache ergeben bereits ein sehr performantes Gesamtsystem. Die logische und physische Komprimierung der Daten auf Seitenebene reduziert den benötigten Speicherplatz und damit auch die IO-Zeiten signifikant.

Skalierbarkeit (B-Bäume)

Eines der wichtigsten Leistungsmerkmale von Datenbankalgorithmen ist die Skalierbarkeit, also das Verhalten bezogen auf die Größe der auszuwertenden Datenbasis. Bei Transbase® ergibt sich diese vor allem aus dem garantierten Leistungsverhalten der für den Datenzugriff verwendeten B-Bäume. Die Laufzeiten für Schlüsselzugriffe wachsen nur mit der Höhe des Baumes und daher nur logarithmisch bezüglich der gespeicherten Datenmenge. Da die B-Bäume die Basis aller Zugriffspfade sind, ergibt sich insgesamt eine perfekte Skalierbarkeit für Transbase® Datenbanken mit sehr großen Datenbeständen.

Aufgrund seiner schlanken Architektur als Client-Server-Datenbank und seiner ressourcenschonenden Implementierung verfügt Transbase® über eine hervorragende Skalierbarkeit und kann sehr vielseitig eingesetzt werden:

  • Als Datenbank-Server verfügt Transbase® im Multi-User-Betrieb über ausgefeilte Caching-Mechanismen und Sperrprotokolle, die eine effiziente parallele Bearbeitung vieler Client-Abfragen erlauben. Durch Datenbankreplikation kann diese Kapazität noch gesteigert werden. Damit wird nicht nur eine Lastverteilung auf ein Datenbankgrid erreicht, sondern auch die Bereitstellung von Fail-Over-Servern für den Hot-Standby-Betrieb ermöglicht.
  • Als lokale Datenbank zeichnet sich Transbase® vor allem durch seine einfache Einbettungsmöglichkeit in die jeweilige Applikation aus. Dadurch werden auch Installation und Betrieb der jeweiligen Applikation erleichtert und Entwicklunsaufwand eingespart. Transbase® kann sowohl als lokaler Datenbankserver in einem Netzwerk als auch lokal auf dem jeweiligen Client-Rechner betrieben werden. Für kleinere Rechner oder spezielle Geräte steht mit Transbase® Edge eine besonders ressourcenschonende Variante zur Verfügung.

Cache / Partitionierung

Der Transbase® Cache liegt als Shared-Memory-Objekt im Hauptspeicher und dient der Koordinierung der Zugriffe verschiedener Transbase® Kernel-Prozesse und der gemeinsamen, prozessübergreifenden Pufferung häufig benutzter Seiten im Hauptspeicher. Zudem kann jeder Transbase® Kernel-Prozess lokale Speicherbereiche, z.B. für Sortieroperationen oder Zwischenergebnisse dynamisch anlegen.

Um die Möglichkeiten der Parallelverarbeitung noch zu steigern, kann der Transbase® Cache partitioniert werden. Derzeit sind bis zu 128 Partitionen möglich, was bis zu 6.400.000 Seitenoperationen pro Sekunde ermöglicht. Jede Cachepartition ist in ihrer Größe auf maximal 1 GByte beschränkt, wodurch sich für den Transbase Cache eine maximale Gesamtgröße von 128 GByte ergibt.

IO-System

Das Transbase® IO-System nutzt die vom Betriebssystem gegebenen Möglichkeiten und parallelisiert IO-Aufträge, so dass z.B. RAID-Systeme oder auf mehrere Festplatten verteilte Datenbanken mit optimaler Leistung betrieben werden können. Die IO-Transfers werden direkt zwischen Platte und Transbase® abgewickelt, so dass der Betriebssystem-Cache nicht betroffen ist. Die (konfigurierbare) Größe des Transbase® Caches ist für die IO-Leistung entscheidend: je nach Architektur und Leistungsanforderung kann sie zwischen wenigen MB und einigen GB liegen.

Transbase® Query in drei Schritten: P-O-E

P - Übersetzung einer SQL-Query in einen Abarbeitungs-Plan („Operatorbaum“)

O - nachfolgende Optimierung dieses Plans unter besonderer Berücksichtigung von Indexen und Zugriffspfaden

E - anschließende Evaluierung

Im Rahmen der Optimierung werden Teile des Operatorbaums identifiziert, die parallel verarbeitet werden können. Bei der Evaluierung werden dann, lastabhängig Threads generiert, um die Query maximal zu beschleunigen. Damit ist sichergestellt, dass moderne Multi-CPU-Architekturen auch dann wirkungsvoll ausgenutzt werden, wenn nur eine Anfrage im System aktiv ist.


Möchten sie mehr über Transbase® erfahren? Dann kontaktieren Sie uns oder evaluieren Sie 60 Tage kostenfrei und unverbindlich.