Architektur und Implementierung von Apache Derby

Ähnliche Dokumente
OPERATIONEN AUF EINER DATENBANK

MS SQL Server: Index Management. Stephan Arenswald 10. Juli 2008

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Anforderungen an die HIS

Technische Beschreibung: EPOD Server

Im Original veränderbare Word-Dateien

Was ist PDF? Portable Document Format, von Adobe Systems entwickelt Multiplattformfähigkeit,

Informatik 12 Datenbanken SQL-Einführung

Step by Step Webserver unter Windows Server von Christian Bartl

Treffpunkt Internet Reutlingen, B.Schüle 1

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

ACDSee Pro 2. ACDSee Pro 2 Tutorials: Übertragung von Fotos (+ Datenbank) auf einen anderen Computer. Über Metadaten und die Datenbank

Mehrere PDF-Dokumente zu einem zusammenfügen

1 Einleitung. Lernziele. Symbolleiste für den Schnellzugriff anpassen. Notizenseiten drucken. eine Präsentation abwärtskompatibel speichern

Whitepaper. Produkt: address manager David XL Tobit InfoCenter AddIn für den address manager Zuordnung

Um ein solches Dokument zu erzeugen, muss eine Serienbriefvorlage in Word erstellt werden, das auf die von BüroWARE erstellte Datei zugreift.

4. BEZIEHUNGEN ZWISCHEN TABELLEN

Anleitung über den Umgang mit Schildern

mobilepoi 0.91 Demo Version Anleitung Das Software Studio Christian Efinger Erstellt am 21. Oktober 2005

Der beste Plan für Office 365 Archivierung.

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

SharePoint Demonstration

How-to: Webserver NAT. Securepoint Security System Version 2007nx

DB2 Kurzeinführung (Windows)

E-TIME ADVANCED Dokumentation zum Vorgehen bei der elektronischen Zeiterfassung. Geben Sie folgende Internetadresse ein:

MdtTax Programm. Programm Dokumentation. Datenbank Schnittstelle. Das Hauptmenü. Die Bedienung des Programms geht über das Hauptmenü.

Import und Export von Übergängern

Umzug der abfallwirtschaftlichen Nummern /Kündigung

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

ESB - Elektronischer Service Bericht

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Datenexport aus JS - Software

Artikel Schnittstelle über CSV

IBM Software Demos WebSphere Dashboard Framework

Version 1.0 Merkblätter

Dokumentation für Lehrstühle

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Umstellung News-System auf cms.sn.schule.de

Adminer: Installationsanleitung

K-TAG Master. Dateientschlüsselung/ Dateiverschlüsselung für Slaves. Version 1.0

Anleitung zum Einspielen der Demodaten

Die Online-Bestandserhebung im LSB Niedersachsen

3. Neuen Newsbeitrag erstellen Klicken Sie auf das Datensatzsymbol mit dem +, damit Sie einen neuen Newsbeitrag erstellen können.

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

Frames oder Rahmen im Browserfenster

Outlook Vorlagen/Templates

Professionelle Seminare im Bereich MS-Office

OKB Die MS SQL-Volltextsuche für organice SQL einrichten

Es gibt zwei Wege die elektronischen Daten aus Navision zu exportieren.

Persönliches Adressbuch

Konzepte der Informatik

Leichte-Sprache-Bilder

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

CompuMaus-Brühl-Computerschulung Anleitung CMS-Joomla Version 2.5

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Anleitung zur Bearbeitung von Prüferkommentaren in der Nachreichung

IBM Software Demos Tivoli Provisioning Manager for OS Deployment

ICS-Addin. Benutzerhandbuch. Version: 1.0

Konvertieren von Settingsdateien

Agentur für Werbung & Internet. Schritt für Schritt: Newsletter mit WebEdition versenden

Mallux.de CSV-Import Schnittstellen von Mallux.de. Beschreibung für den Import von CSV-Dateien. Stand: 01. Januar von Mallux.

Übung - Datenmigration in Windows 7

mywms Vorlage Seite 1/5 mywms Datenhaltung von Haug Bürger

Handbuch ECDL 2003 Basic Modul 3: Textverarbeitung Serienbrief erstellen - Datenquelle

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Registrierungsanleitung Informatik-Biber

Proseminar: Website-Managment-System. NetObjects Fusion. von Christoph Feller

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

Diese Programm ist für Hausverwaltungen, Kleingärtner Vereine gedacht und besteht eigentlich aus drei Programmen:

Trackaufzeichnungen können als Active-Logs oder mit eigenen Namen versehene und auf max. 500 Punkte begrenzte Saved-Tracks gespeichert werden.

PCE-USM RS USB Logger

2. Im Admin Bereich drücken Sie bitte auf den roten Button Webseite bearbeiten, sodass Sie in den Bearbeitungsbereich Ihrer Homepage gelangen.

Anleitung für den Zugriff auf Mitgliederdateien der AG-KiM

1. Einschränkung für Mac-User ohne Office Dokumente hochladen, teilen und bearbeiten

7. Übung - Datenbanken

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter

Anleitung mtan (SMS-Authentisierung) mit SSLVPN.TG.CH

Einrichten eines HBCI- Zugangs mit Bank X 5.1

Feiertage in Marvin hinterlegen

Handbuch ECDL 2003 Basic Modul 5: Datenbank Access starten und neue Datenbank anlegen

Tutorials für ACDSee 12: Verschieben von Fotos und Metadaten auf einen anderen Computer

Jede Zahl muss dabei einzeln umgerechnet werden. Beginnen wir also ganz am Anfang mit der Zahl,192.

Kurzanleitung RACE APP

QTrade GmbH Landshuter Allee München Seite 1

macs Support Ticket System

Anwendungsbeispiele Buchhaltung

Installation OMNIKEY 3121 USB

Anleitung Typo3-Extension - Raumbuchungssystem

Dokumentation zur Versendung der Statistik Daten

BitDefender Client Security Kurzanleitung

MSDE 2000 mit Service Pack 3a

Datenbanksysteme 2 Frühjahr-/Sommersemester Mai 2014

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Installation Citrix Receiver

Benutzeranleitung Service Desk Tool Erizone

Zur Konfiguration werden hierbei das Setup-Tool und die Shell verwendet.

12. Dokumente Speichern und Drucken

Öffnen und Hochladen von Dokumenten

Kurzanweisung für Google Analytics

Transkript:

Architektur und Implementierung von Apache Derby Das Zugriffssystem Carsten Kleinmann, Michael Schmidt TH Mittelhessen, MNI, Informatik 16. Januar 2012 Carsten Kleinmann, Michael Schmidt Architektur und Implementierung von Apache Derby 1 / 41

Überblick 1 Kernkomponenten 2 3 Carsten Kleinmann, Michael Schmidt Architektur und Implementierung von Apache Derby 2 / 41

Zugriffssystem Pufferverwaltung Speicherverwaltung Kernkomponenten Zugriffssystem Datensatzformate: Datensätze fixer länge Datensätze variable länge Datensätze sehr großer länge (Blobs) Seitenformate: Seitenformate für Datensätze fixer länge Seitenformate für Datensätze variable länge Seitenformate für Datensätze sehr großer länge Carsten Kleinmann, Michael Schmidt Architektur und Implementierung von Apache Derby 3 / 41

Zugriffssystem Pufferverwaltung Speicherverwaltung Kernkomponenten Zugriffssystem Abbildung von Datensätzen in Dateien: Dateiorganisation Haufendatei Sequenzielle Datei Hash-Datei Systemkatalog Carsten Kleinmann, Michael Schmidt Architektur und Implementierung von Apache Derby 4 / 41

Zugriffssystem Pufferverwaltung Speicherverwaltung Kernkomponenten Zugriffssystem Systempufferverwaltung: Aufgaben Segment-Konzept Abbildung von Segmenten in Dateien Direkte Adressierung Indirekte Adressierung Verwaltung des Systempuffers Auffinden einer Seite Speicherzuteilung Ersetzungsstrategien für Seiten Carsten Kleinmann, Michael Schmidt Architektur und Implementierung von Apache Derby 5 / 41

Zugriffssystem Pufferverwaltung Speicherverwaltung Kernkomponenten Zugriffssystem Datenstrukturen: Tabelle = TableDescriptor Zeile = ValueRow Spalte = DataValueDescriptor Carsten Kleinmann, Michael Schmidt Architektur und Implementierung von Apache Derby 6 / 41

Zugriffssystem Pufferverwaltung Speicherverwaltung Kernkomponenten Zugriffssystem Datenstrukturen Spalte Zeile Tabelle Carsten Kleinmann, Michael Schmidt Architektur und Implementierung von Apache Derby 7 / 41

Zugriffssystem Pufferverwaltung Speicherverwaltung Kernkomponenten Zugriffssystem Schnittstellen Carsten Kleinmann, Michael Schmidt Architektur und Implementierung von Apache Derby 8 / 41

Zugriffssystem Pufferverwaltung Speicherverwaltung Kernkomponenten Pufferverwaltung Komponenten Carsten Kleinmann, Michael Schmidt Architektur und Implementierung von Apache Derby 9 / 41

Zugriffssystem Pufferverwaltung Speicherverwaltung Kernkomponenten Pufferverwaltung Komponenten: Carsten Kleinmann, Michael Schmidt Architektur und Implementierung von Apache Derby 10 / 41

Zugriffssystem Pufferverwaltung Speicherverwaltung Kernkomponenten Pufferverwaltung Algorithmen Uhr-Algorithmus Carsten Kleinmann, Michael Schmidt Architektur und Implementierung von Apache Derby 11 / 41

Zugriffssystem Pufferverwaltung Speicherverwaltung Kernkomponenten Speicherverwaltung Komponenten Carsten Kleinmann, Michael Schmidt Architektur und Implementierung von Apache Derby 12 / 41

Zugriffssystem Pufferverwaltung Speicherverwaltung Kernkomponenten Speicherverwaltung Datenstrukturen Haufendatei (Heap-file) Carsten Kleinmann, Michael Schmidt Architektur und Implementierung von Apache Derby 13 / 41

Zugriffssystem Pufferverwaltung Speicherverwaltung Kernkomponenten Speicherverwaltung Datenstrukturen Carsten Kleinmann, Michael Schmidt Architektur und Implementierung von Apache Derby 14 / 41

: Besteht aus zwei Teilen: Raw Zusammen stellen sie ACID-Eigenschaften von Transaktionen sicher Carsten Kleinmann, Michael Schmidt Architektur und Implementierung von Apache Derby 15 / 41

: Stellt einen row based access -Mechanismus (= Conglomerate) für den SQL Layer bereit Conglomerate (-Interface) sorgt für Tabellen- & Index-Scans, Index-Lookups, Indizierung, Sortierung, Locking, Transaktionen und Isolationslevel Carsten Kleinmann, Michael Schmidt Architektur und Implementierung von Apache Derby 16 / 41

Raw: Stellt die Speicherung von Zeilen einer Tabelle in Dateien bzw. in Pages, Management und Logging von Transaktionen dar Besitzt ein austauschbare File-System-API, um Dateien im Java-Filesystem, in jar-files oder anders zu speichern Bietet JCE-Verschlüsselung auf Page-Ebene Carsten Kleinmann, Michael Schmidt Architektur und Implementierung von Apache Derby 17 / 41

Komponenten: (Beim Starten:) Es wird das System-Modul DaemonFactory (genauer: SingleThreadDaemonFactory ) geladen sowie das Modul TransactionFactory (genauer: ConcurrentXactFactory ), LockFactory (genauer: ConcurrentPool ), DataFactory (genauer: BaseDataFileFactoryJ4 ) - diese lädt u.a. auch StorageFactory (genauer: DirStorageFactory4 ) sowie CacheFactory (genauer: ConcurrentCacheFactory ). DataFactory & TransactionFactory bzw. dessen konkrete Impl. (siehe oben) kennen die RawStoreFactory bzw. RawStore (über setter()). Dabei wird auch LogFactory (genauer: LogToFile ) geladen. Diese kennt dann auch den RawStore. HeapConglomerateFactory: boot(); dadurch wird UUIDFactory (über Monitor) geladen. Dann erhält dieser Typ von Conglomerat eine eigene UUID. Carsten Kleinmann, Michael Schmidt Architektur und Implementierung von Apache Derby 18 / 41

Aufbau: Carsten Kleinmann, Michael Schmidt Architektur und Implementierung von Apache Derby 19 / 41

Raw Store: Repräsentiert eine Einheit für die transaktionsbasierte Speicherung Einfach ausgedrückt: Alles für Persistenz Besteht aus drei Bereichen: transaction data logging Delegiert alle Anfragen an die entsprechenden Module Carsten Kleinmann, Michael Schmidt Architektur und Implementierung von Apache Derby 20 / 41

Segmente Segmente: Haben innerhalb des RawStore eine eindeutige Id Dienen der Speicherung von Containern Momentan werden alle Container in einem Segment gespeichert als Ordner seg0 im File-System wiedergespiegelt Carsten Kleinmann, Michael Schmidt Architektur und Implementierung von Apache Derby 21 / 41

Container: Container basieren auf Files Abbildung: 1 Container 1 File Konkret: Files basierend auf java.io.randomfile Mehrere IO-Operationen gleichzeitig pro File möglich Page 0 und offset 0 sind hard-codiert für eine Header-Page. Speichert Informationen über den Container Carsten Kleinmann, Michael Schmidt Architektur und Implementierung von Apache Derby 22 / 41

Container: Beinhaltet drei Typen von Pages: Alloc pages - speichern Informationen zu page allocation Data pages - stellen letztlich Daten dar Header pages - spezielle Art der Alloc page Carsten Kleinmann, Michael Schmidt Architektur und Implementierung von Apache Derby 23 / 41

Alloc Page: Spezielle Art einer normalen Data-Page Größe der Page bleibt gleich Page-Header ist jedoch größer Container leiht sich N (max. 256) bytes bei der allerersten Page Daher dient diese Page als Header-Page Weitere Alloc-Pages haben N == 0 Können bis zu 1000 Data-Pages verwalten Carsten Kleinmann, Michael Schmidt Architektur und Implementierung von Apache Derby 24 / 41

Pages: Beinhaltet geordnete Menge an Records Werden meist exklusiv zugegriffen latch / unlatch ID der Pages ist pro Container eindeutig Page kann 0 oder mehr Records enthalten Carsten Kleinmann, Michael Schmidt Architektur und Implementierung von Apache Derby 25 / 41

Pages Format: formatid - 4 bytes array page header - fixe Größe von 56 bytes records - 0 bis n, jeder Record startet mit einem Header slot offset table - 6 oder 12 bytes pro Record (ob pagesize > 64k) checksum - 8 bytes vom Typ java.util.zip.crc32 für gesamte Page (exklusive dieser 8 bytes) Carsten Kleinmann, Michael Schmidt Architektur und Implementierung von Apache Derby 26 / 41

Records: Records = Tupel einer Tabelle Stream von Bytes Zugriff erfolgt per Slot - definiert die Reihenfolge der Records ID - definiert die Identität der Records Hat bestimmte Mindestgröße Beinhaltet ein oder mehrere Fields Carsten Kleinmann, Michael Schmidt Architektur und Implementierung von Apache Derby 27 / 41

Records Format: Carsten Kleinmann, Michael Schmidt Architektur und Implementierung von Apache Derby 28 / 41

Fields: Fields = Attribute der Tabelle Max. Länge pro Field 2 31-1 Carsten Kleinmann, Michael Schmidt Architektur und Implementierung von Apache Derby 29 / 41

Fields Format: Carsten Kleinmann, Michael Schmidt Architektur und Implementierung von Apache Derby 30 / 41

Komponenten: Carsten Kleinmann, Michael Schmidt Architektur und Implementierung von Apache Derby 31 / 41

Factory: Stellt Acccess-Manager bereit, welcher transaktionsbasierten Zugriff auf Daten im Storage-Manager bietet(hier: RawStore) Hierzu existieren Conglomerate: Heap B-Tree Carsten Kleinmann, Michael Schmidt Architektur und Implementierung von Apache Derby 32 / 41

Conglomerate: abstrakte Speicherstruktur wird in einem oder mehreren Containern gehalten Beinhalten statische & dynamische Informationen statisch: werden in Zugriffspläne eingefügt dynamisch: dienen der Wiederverwendung bei Mehrfach-Ausführung eines Statements Kann komprimiert werden (letztlich: die Tabelle) Kann Kosten (Anzahl an Zeilen + Kosten für Scans,...) zurückgeben Carsten Kleinmann, Michael Schmidt Architektur und Implementierung von Apache Derby 33 / 41

Conglomerate: Carsten Kleinmann, Michael Schmidt Architektur und Implementierung von Apache Derby 34 / 41

Heap-Conglomerate: Zugriff ist Seiten-basierend & beinhaltet einen Container Bieten keinen Mechanismus für einen inhaltsorientierten Zugriff auf Rows in sich Carsten Kleinmann, Michael Schmidt Architektur und Implementierung von Apache Derby 35 / 41

Erstellen einer Tabelle Ausführung einer Select-Anweisung Techniken Erstellen einer Tabelle Starten von Derby Beim Starten: EmbeddedConnection startet Datenbank bzw. bootet diese. Der Monitor startet den Service StorageFactoryService (ist ein TopService) Der TopService beinhaltet in einem Array implementationsets für die jeweiligen Factory-Interfaces. Dieser lädt das Modul BasicDatabase. Diese wierderum lädt dann das Modul PropertyFactory bzw. PropertyValidation (wohl über den TopService). DataValueFactory wird auch durch den Service bzw. BasicDatabase geladen. Genauer wird J2SEDataValueFactory geladen (für J2SE). Danach wird noch das Modul Factory bzw. genauer RllRAMManager (da dieser RamManager erweitert, der wiederrum Factory implementiert; So wird es gefunden.) Der TopService beinhaltet am Ende alle 4 ModuleInstances (BasicDatabase, PropertyValidation, J2SEDataValueFactory und RllRamManager). Es wird auch der Carsten Kleinmann, Michael Schmidt Architektur und Implementierung von Apache Derby 36 / 41

Erstellen einer Tabelle Ausführung einer Select-Anweisung Techniken Erstellen einer Tabelle Hier gehts los: Carsten Kleinmann, Michael Schmidt Architektur und Implementierung von Apache Derby 37 / 41

Erstellen einer Tabelle Ausführung einer Select-Anweisung Techniken Ausführung einer Select-Anweisung Hier gehts los: Carsten Kleinmann, Michael Schmidt Architektur und Implementierung von Apache Derby 38 / 41

Erstellen einer Tabelle Ausführung einer Select-Anweisung Techniken Techniken Hier gehts los: Carsten Kleinmann, Michael Schmidt Architektur und Implementierung von Apache Derby 39 / 41

Zwischenstand Hier gehts los: Carsten Kleinmann, Michael Schmidt Architektur und Implementierung von Apache Derby 40 / 41

Vielen Dank für Ihre Aufmerksamkeit, gibt s noch Klarheiten? Carsten Kleinmann, Michael Schmidt Architektur und Implementierung von Apache Derby 41 / 41