Record Manager Andreas Bräu, Martin Salzbrenner. Record Manager - Übersicht ● Datenstrukturen – Freispeicherverzeichnis – Datenseiten ● Record Manager.

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen und Datenstrukturen
Advertisements

Object Relational Mapping
Nachtrag zum Vortrag vom Vorbereitung zur Datensicherung
Routing – Routing Protokolle
Vorlesung Programmieren II
So erstellen Sie bei komplexen Animationen Übersichten Ihrer Animationseffekte Herbert Manthei
M a r c – o l i v e r p a h l Informatik II – Kapitel 14 Hashing Zusammenfassung des Kapitel 14 Küchlin, Weber, Einführung in die Informatik, 2.Auflage.
Praktikum Datenbanksystementwicklung – System J – Knut Stolze
1 Spezielle Packages des Java SDK (1.4) java.nio.
Suche in Texten (Stringsuche )
Mein EBSCOhost-Lernprogramm
Objektrelationales Mapping mit JPA Working with Persistent Objects Jonas Bandi Simon Martinelli.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (15 Hashverfahren: Verkettung der Überläufer) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (05 – Elementare Datenstrukturen) Prof. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 6 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
SQL als Abfragesprache
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
1 Linux Paging, Caching und Swapping. 1 Vortragsstruktur Paging – Das Virtuelle Speichermodell –Die Page Table im Detail –Page Allocation und Page Deallocation.
DbjFileManager Paul Fruntzek Michael Stanek. Überblick Unterste Ebene im Schichtenmodell Schnittstelle zum BS (Low-Level) Aufgabenbereich: Persistente.
Vorbereitung: struct SX { int x; struct SX *p; } *px, *ph; px: Zeiger auf Listen- anfang ph: Hilfszeiger px = NULL; px zeigt auf leere Liste px.
Externe Datenstruktur lineare Liste
Erzeugung von Fahrgemeinschaftsplänen für Lehrer
DVG Klassen und Objekte
MeiNetz-Suche Wie kann man in meiNetz etwas suchen? 1.durch Gruppen browsen 2.Suchfunktion.
Einführung in die Programmierung Datensammlung
Der Explorer Programm, das das Inhaltsverzeichnis des Computers anzeigt Heinz Reinlein/ 2001.
Nico Maas, NetworkCalculator. 2 / 15 Nico Maas, Inhalt Überblick über die Software / Struktogramm Überblick über die Software /
Zahlungsantrag Der Zahlungsantrag (ZA) wird von der VB mit einem Abschlussdatum erstellt Über das Abschlussdatum wird gesteuert, welche Bestandteile der.
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
Eine Implementierung einer effiziente externe geordnete (!) lineare Liste Operationen: Search(x) Insert(x) Delete(x)
Willkommen Admin! Use Case 1: Forum-Administration -> Task 2 User erstellen -> Task 1 Anzeige User Liste -> Task 3 User löschen -> Task 5 User sperren.
Einführung in die Programmierung
Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenmanipulation Lehrbuch, Kapitel 4.
Typo 3. INSTALLATION TYPO3 INSTALLTOOL EXTENSIONS UND TEMPLATES INSTALLATION TEMPLAVOILA USERMANAGEMENT Inhalt:
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Übung Datenbanksysteme II Index- strukturen
1 Nutzen Sie diese Powerpoint-Präsentation beim Selbstlernen oder in Veranstaltungen zur Einführung in das jeweilige Thema. Einführung Lernmodul Nutzungsbedingungen:
1 Nutzen Sie diese Powerpoint-Präsentation beim Selbstlernen oder in Veranstaltungen zur Einführung in das jeweilige Thema. Einführung Lernmodul Nutzungsbedingungen:
Lernmodul Einführung Nutzen Sie diese Powerpoint-Präsentation beim Selbstlernen oder in Veranstaltungen zur Einführung in das jeweilige Thema. Nutzungsbedingungen:
WINlearn Technische Spezifikation der Benutzerstruktur Gruppe 4.
Objekte Objekte sind Elemente, die man mit dem Programm bearbeiten kann. Datei, aufgebaut als Tabelle (Relation) Datensatz, entspricht einer Zeile der.
ICT – Modul Textverarbeitung
Einführung TYPO3 free Open Source content management system Grundlagen.
Betriebssysteme Übung Tutorium „TLB & Virtual Memory“
Erstellung eines Newsletters
Einführungstutorial: Linux Konsole
Integritätserhaltung und -Überprüfung in deduktiven Datenbanken
Structured Query Language
1 Erstellung eines Lebenslaufes
Inhaber: Christina Jozwiak, Julia Meister, Ralf Schmitt
Referenzarchitektur Externes Datenmodell Anfragebearbeitung Internes Datenmodell Satz- u. Satzmengenverwaltung Physische Datenstrukturen Zugriffsschicht.
Minimal spannende Bäume
SystemJ AbschlußpräsentationDBJCatalogManager Dennis Heimann + Marcus Hetterle Friedrich Schiller Universität Jena 2005.
Datenbanksystementwicklung – Systemarchitektur & Prozessmodell – Knut Stolze
Binärbäume.
15 Tabellen erstellen und Tabellenstruktur bearbeiten Grundlagen zu Tabellen l Tabelle l Enthält Daten zu einem bestimmten Thema l Beispiele:  Mitarbeiterdaten.
G.Meininghaus, Konstanz1 Bilder auf dem PC ordnen, wiederfinden und zeigen Windows 7.
Arbeiten mit WordSmith 4. Inhalt 1. Arbeiten mit der Funktion Wortliste (im getaggten Korpus) 1. Arbeiten mit der Funktion Wortliste (im getaggten Korpus)
1 Suchprofile erstellen und verwalten. 2 Suchprofile bei Registrierung Hier können Sie bis zu drei Suchprofile einrichten. Diese finden Sie später unter.
Christoph Wirtz | Seminarvortrag EBC | Lehrstuhl für Gebäude- und Raumklimatechnik Ein Tool zum automatisierten Erstellen von Conversion Scripts.
Entwicklung einer Webapplikation mittels HTML, PHP, MySQL, jQuery, und Smarty-Templates am Beispiel einer Studienarbeitsverwaltung.
LSI8204ELP & Onboard SATA Controller Allgemeines: – Nicht konfigurierte Festplatten werden automatisch als Single Disks bzw. Logical Drives (einzelne Laufwerke)
MONITOR - Materialverfolgung...vom Lieferanten über den Wareneingang bis zum Kunden... weiter.
Pointer. * und &  Bei der Definition int var1; ○ // „normale“ Variable int *var2; ○ // Zeiger auf einen Integer int *var2 = NULL; ○ // … incl. Initialisierung.
Dr. Wolfram Amme, Automatische Speicherverwaltung, Informatik II, FSU Jena, SS Automatische Speicherverwaltung.
Sprachumfang von SQL Vier Kategorien DDL (Data Definition Language)
 Präsentation transkript:

Record Manager Andreas Bräu, Martin Salzbrenner

Record Manager - Übersicht ● Datenstrukturen – Freispeicherverzeichnis – Datenseiten ● Record Manager – Funktionen ● Record Iterator ● Record

Freispeicherverzeichnis ● currentEntries momentan nicht in Benutzung ● 2043 Einträge pro FSI-Seite bei 4kB Seitengröße

Freispeicherverzeichnis ● Seitennummern werden implizit mitgeführt ● Funktionen zur Manipulation des FSI: – addFsiPage(...) – addFreeSpaceInventoryEntry(...) – editFreeSpaceInventoryEntry(...) ● Abfrage des FSI: – findFreeSpaceInventoryEntry(...) – findFreeMemoryBlock(...) ● Suche über alle FSI-Seiten, bis entsprechende Seite gefunden

Datenseiten ● 255 Records pro Seite ● freeSpace, biggestFreeBlock jeweils genaue Angabe der verwendeten Bytes ● TID Konzept (tableId, pageId, slotId)

Funktionen RM ● insert – einfügen eines Records in eine angegebene Tabelle – die pageId und die slotId der TID wird ermittelt – d.h. suchen einer passenden Seite / eines Slot – einfügen – FSI updaten ● getNewPageId unperformant – ermitteln einer noch nicht vergebenen pageId – Schleife pageId solange erhöhen bis eine ungenutzte pageId gefunden – derzeit mit findFreeSpaceInventoryEntry – >unperformant für jede pageId einzeln

Funktionen RM ● freeAvailableSpaceInPage – berechnen des freien Speichers auf einer Datenseite – Summe des PageHeader und der Länge der Records – wenn 255 Records in Seite, dann wird der freie Speicher auf 0 gesetzt ● findLargestFreeBlockInPage – ermitteln des größten freien Blockes einer Seite und dessen Offset – ordnen der Recordslots nach Offset – berechnen der freien Zwischenräume

Funktionen RM ● createTable: – neues Segment erstellen – und erste FSI-Seite (Seite 0) ● dropTable: – nur durchreichen von oben ● commit: – Schreiben aller veränderten Daten – Freigabe aller Sperren ● rollback: – zurücksetzten aller Änderungen – Freigabe aller Sperren

Funktionen RM ● get: – springt zu der in TupleId angegebenen Seite – sperrt Seite – liest Record aus angegebenen Slot ● remove – löschen eines Records – im Slotpagearray wird recordLength des zu löschenden Records 0 gesetzt – FSI Eintrag aktualisieren

Funktionen RM ● replace – ersetzten eine vorhandenen Records nur möglich, wenn neuer Record kleiner oder gleich lang wie der alte Record ist (kein Verändern der TID nötig) – FSI Eintrag aktualisieren ● showPageContent – zeigt die Inhalte der FSI und Datenseiten an

Funktionen RM ┌ ┐ │┌ globaler Pageheader ┐│ ││ Seitennummer: 3 -- Seitentyp: DataPage ││ │┌ Slot Page Header ┐│ ││Anzahl der Slots auf der Seite: 16 ││ ││gesamter freie Speicher der Seite: 3817 ││ ││größter freier Block auf der Seite: 3817 ││ ││offset des Records: laenge des records: slotnummer: 0 ││ ││offset des Records: laenge des records: slotnummer: 1 ││ ││offset des Records: laenge des records: slotnummer: 2 ││ ││offset des Records: laenge des records: slotnummer: 3 ││ ││offset des Records: laenge des records: slotnummer: 4 ││ ││offset des Records: laenge des records: 9 -- slotnummer: 5 ││ ││offset des Records: laenge des records: 9 -- slotnummer: 6 ││ ││offset des Records: laenge des records: 9 -- slotnummer: 7 ││ ││offset des Records: laenge des records: 9 -- slotnummer: 8 ││ ││offset des Records: laenge des records: 9 -- slotnummer: 9 ││ ││offset des Records: laenge des records: 9 -- slotnummer: 10 ││ ││offset des Records: laenge des records: 9 -- slotnummer: 11 ││ ││offset des Records: laenge des records: 9 -- slotnummer: 12 ││ ││offset des Records: laenge des records: 9 -- slotnummer: 13 ││ ││offset des Records: laenge des records: 9 -- slotnummer: 14 ││ ││offset des Records: laenge des records: 9 -- slotnummer: 15 ││ │└ ┘│ └ ┘

Funktionen RM ┌ ┐ │┌ globaler Pageheader ┐│ ││ Seitennummer: 0 -- Seitentyp: FSIPage ││ │└ ┘│ │┌ FSI Pageheader ┐│ ││ currentEntries: 0 -- zur Zeit nicht in Benutzung ││ │└ ┘│ │┌ FSI-Tabelle ┐│ ││ Seite│ GFS │ LFB │ │Seite │GFS │ LFB │ │Seite│ GFS │ LFB │ │Seite│ GFS │ LFB ││ ││ 1 │ 8 │ 0 │ │ 2 │ 0 │ 0 │ │ 3 │ 238 │ 238 │ │ 4 │ --- │ --- ││ ││ 5 │ --- │ --- │ │ 6 │ --- │ --- │ │ 7 │ --- │ --- │ │ 8 │ --- │ --- ││ ││ 9 │ --- │ --- │ │ 10 │ --- │ --- │ │ 11 │ --- │ --- │ │ 12 │ --- │ --- ││ ││ 13 │ --- │ --- │ │ 14 │ --- │ --- │ │ 15 │ --- │ --- │ │ 16 │ --- │ --- ││ ││ ││ ││ 2033│ --- │ --- │ │ 2034│ --- │ --- │ │ 2035│ --- │ --- │ │ 2036│ --- │ --- ││ ││ 2037│ --- │ --- │ │ 2038│ --- │ --- │ │ 2039│ --- │ --- │ │ 2040│ --- │ --- ││ ││ 2041│ --- │ --- │ │ 2042│ --- │ --- │ │ 2043│ --- │ --- │ │----- │ --- │ --- ││ │└ ┘│ │*GFS = Ges. freier Speicher, LFB = Largest free Block, Angabe in 16-Byte-Blöcken │ └ ┘

RecordIterator ● Sperrung der Seiten erfolgt Zug um Zug ● getRecordIterator (im RecordMgr) – sucht nach erstem Record der Tabelle – Festlegung erster Record

RecordIterator ● findNextRecord (im RecordMgr) – Suche nach dem nächsten Record ● keine Ordnung ==> Slots auf Datenseiten werden nacheinander durchgegangen – Unterscheidung, ob nach erstem Record gesucht wird – jede neu aufgeschlagene Seite wird gesperrt – nutzt FSI, um leere Seiten zu überspringen – geringe Performance, da viele get/releasePage, Spielraum für Optimierungen (direktes Operieren auf den FSI-Seiten)

RecordIterator ● getNext – Suche nach nächstem Record ● falls vorhanden, Ausgabe dessen, sonst DBJ_NOT_FOUND_WARN ● hasNext – true, falls nächster Record vorhanden, sonst false

Record ● Record wird bei erstem Gebrauch neu angelegt ● später Wiederverwendung möglich – nur rawData wird zerstört und neu angelegt

Record ● getTupleId, getRecordData, getLength, getBufferLength – öffentliche Funktionen ● setData, setTupleId – private Funktionen, RecordManager darf diese nutzen ● Veränderung der Recorddaten nur über Konstruktor oder setData