58
Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

Embed Size (px)

Citation preview

Page 1: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

Komplexpraktikum DIPBench

Computer Science Faculty, System Architecture, Database Technology Group

Dresden, 14.11.2007

Page 2: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 14.11.07 Komplexpraktikum DIPBench Folie 2 von 58

Gliederung

01 Einführung02 Vorstellung des Komplexpraktikums03 Aufgaben und Ergebnisse

Teil 1 Katrin BraunschweigTeil 2 Dirk AlsfaßerTeil 3 Romain Treboux

04 Zusammenfassung

Page 3: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 14.11.07 Komplexpraktikum DIPBench Folie 3 von 58

Zeitraum: 10.09. – 21.09. 2007 (Blockpraktikum)

Teilnehmer: Katrin Braunschweig

Dirk Alsfaßer

Romain Treboux

Aufgabe: Erweiterung des DIPBench-Initializers

02 Komplexpraktikum DIPBench

Page 4: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 14.11.07 Komplexpraktikum DIPBench Folie 4 von 58

02 Komplexpraktikum DIPBench

DIPBench Macro Architecture

Page 5: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 14.11.07 Komplexpraktikum DIPBench Folie 5 von 58

02 Komplexpraktikum DIPBench

Page 6: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 14.11.07 Komplexpraktikum DIPBench Folie 6 von 58

02 Komplexpraktikum DIPBench

Initializer (alter Zustand)

Page 7: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 14.11.07 Komplexpraktikum DIPBench Folie 7 von 58

02 Komplexpraktikum DIPBench

Aufgabenstellung

Woche 1: Realisierung von verschiedenen Erweiterungen

• neue Konfigfurationsmöglichkeiten• Ist/Soll Vergleich: Erhebung von Ist-Werten• Platformunabhängigkeit: Anpassung von TORQUE• Modelierung von Einschränkungen (Constraints)

und Speicherung der Schemata als XML-Dateien• Implementierung einer Verbindung zur CSV Dateien• Einbindung einer Log-Funktionalität mithilfe des Frameworks Log4j

Woche 2: Realisierung von Verteilungsfunktionen

Page 8: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 14.11.07 Komplexpraktikum DIPBench Folie 8 von 58

Aufgabenstellung

Woche 1: Realisierung von Verwaltungsfunktionalitäten

Angabe von Dateneigenschaften mit SOLL/IST-Vergleich

Erweiterung der Konfigurationsmöglichkeiten

Woche 2: Realisierung von Verteilungsfunktionen

Normalverteilung

Poissonverteilung

03 Aufgaben und Ergebnisse

Page 9: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 14.11.07 Komplexpraktikum DIPBench Folie 9 von 58

Angabe von Dateneigenschaften mit SOLL/IST-Vergleich

Dateneigenschaften

Anzahl unterschiedlicher Werte (selectivity)

Prozentsatz an Nullwerten (zero_percentage)

Parameter der Verteilungsfunktionen (mean, variance, skewness)

Angabe in Metadaten (TableMetadata)

Eingabe über Konstruktor setDistributionParameters(…)

keine Angabe setDefaultDistribution()

Default-Werte: in Initializer.properties

Verwaltungsfunktionalitäten

Page 10: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 14.11.07 Komplexpraktikum DIPBench Folie 10 von 58

Angabe von Dateneigenschaften mit SOLL/IST-Vergleich

Ausgabe des Ist-Zustandes in Log-Datei

für verschiedene Connections (CSV, JDBC, XML)

CSV: Ist-Zustand von Funktionsparametern wird dokumentiert

JDBC: bisher nur selectivity

XML: bisher noch nicht implementiert

Verwaltungsfunktionalitäten

Page 11: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 14.11.07 Komplexpraktikum DIPBench Folie 11 von 58

Erweiterung der Konfigurationsmöglichkeiten

Konfigurationsmöglichkeiten

batch processing + batch-size

multiple concurrent connections

number of concurrent tuplestreams

tuplestream buffer size

Verwaltungsfunktionalitäten

Page 12: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 14.11.07 Komplexpraktikum DIPBench Folie 12 von 58

Normalverteilung und Poissonverteilung

Funktionsverlauf sehr ähnlich

nicht gemeinsam implementiert

Verteilungsfunktion

Normalverteilung

kontinuierlich

Schiefe ist immer 0

Poissonverteilung

diskret (+ nur für pos. Werte definiert)

Schiefe ist variabel

Page 13: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 14.11.07 Komplexpraktikum DIPBench Folie 13 von 58

Normalverteilung (Gauß-Verteilung)

Symmetrie

Parameter

Verteilungsfunktion

Page 14: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 14.11.07 Komplexpraktikum DIPBench Folie 14 von 58

Normalverteilung (Gauß-Verteilung)

Allgemeine Umsetzung

Verteilungsfunktion

selectivity bestimmt das Intervall und die Standardabweichung bzw. Varianz

cardinality gibt Gesamtanzahl an zu generierenden Werten an

getProbability(position, index) liefert Wahr-scheinlichkeitswert nach Verteilungs-funktion

Page 15: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 14.11.07 Komplexpraktikum DIPBench Folie 15 von 58

Verteilungsfunktion

selectivity bestimmt das Intervall und die Standardabweichung bzw. Varianz

cardinality gibt Gesamtanzahl an zu generierenden Werten an

getProbability(position, index) liefert Wahr-scheinlichkeitswert nach Verteilungs-funktion

Normalverteilung (Gauß-Verteilung)

Allgemeine Umsetzung

Page 16: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 14.11.07 Komplexpraktikum DIPBench Folie 16 von 58

Verteilungsfunktion

selectivity bestimmt das Intervall und die Standardabweichung bzw. Varianz

cardinality gibt Gesamtanzahl an zu generierenden Werten an

getProbability(position, index) liefert Wahr-scheinlichkeitswert nach Verteilungs-funktion

Normalverteilung (Gauß-Verteilung)

Allgemeine Umsetzung

Page 17: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 14.11.07 Komplexpraktikum DIPBench Folie 17 von 58

Verteilungsfunktion

selectivity bestimmt das Intervall und die Standardabweichung bzw. Varianz

cardinality gibt Gesamtanzahl an zu generierenden Werten an

getProbability(position, index) liefert Wahr-scheinlichkeitswert nach Verteilungs-funktion

Normalverteilung (Gauß-Verteilung)

Allgemeine Umsetzung

Page 18: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 14.11.07 Komplexpraktikum DIPBench Folie 18 von 58

Verteilungsfunktion

selectivity bestimmt das Intervall und die Standardabweichung bzw. Varianz

cardinality gibt Gesamtanzahl an zu generierenden Werten an

getProbability(position, index) liefert Wahr-scheinlichkeitswert nach Verteilungs-funktion

Normalverteilung (Gauß-Verteilung)

Allgemeine Umsetzung

Page 19: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 14.11.07 Komplexpraktikum DIPBench Folie 19 von 58

Verteilungsfunktion

selectivity bestimmt das Intervall und die Standardabweichung bzw. Varianz

cardinality gibt Gesamtanzahl an zu generierenden Werten an

getProbability(position, index) liefert Wahr-scheinlichkeitswert nach Verteilungs-funktion

Normalverteilung (Gauß-Verteilung)

Allgemeine Umsetzung

Page 20: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 14.11.07 Komplexpraktikum DIPBench Folie 20 von 58

Verteilungsfunktion

selectivity bestimmt das Intervall und die Standardabweichung bzw. Varianz

cardinality gibt Gesamtanzahl an zu generierenden Werten an

getProbability(position, index) liefert Wahr-scheinlichkeitswert nach Verteilungs-funktion

Normalverteilung (Gauß-Verteilung)

Allgemeine Umsetzung

Page 21: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 14.11.07 Komplexpraktikum DIPBench Folie 21 von 58

Verteilungsfunktion

selectivity bestimmt das Intervall und die Standardabweichung bzw. Varianz

cardinality gibt Gesamtanzahl an zu generierenden Werten an

getProbability(position, index) liefert Wahr-scheinlichkeitswert nach Verteilungs-funktion

Normalverteilung (Gauß-Verteilung)

Allgemeine Umsetzung

Page 22: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 14.11.07 Komplexpraktikum DIPBench Folie 22 von 58

Normalverteilung (Gauß-Verteilung)

Datentypen-spezifische Umsetzung:

- INTEGER / BIGINT siehe Vorgehensweise

- DOUBLE / FLOAT Schrittweite 0,01, wie INTEGER, skaliert

- CHAR / VARCHAR Spaltenname + INTEGER

- BOOLEAN 50/50 (da Symmetrie)

- DATE Referenzdatum = Mittelwert (mean), Berechnen der Tage nach Verteilungsfunktion

range, value list

- value list: Verteilung der Indizes nach Verteilungsfunktion.

- range: Überprüfung, ob Werte innerhalb von Range liegen

Verteilungsfunktion

Page 23: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 14.11.07 Komplexpraktikum DIPBench Folie 23 von 58

Normalverteilung (Gauß-Verteilung)

Probleme und Einschränkungen

Rundungsfehler

zu wenig unterschiedliche Werte – selectivity wird nicht erreicht

selectivity bestimmt variance – Benutzereingabe wird ignoriert

Open tasks

Poissonverteilung anpassen

Verbesserungsvorschläge

evtl. Prioritäten der Parameter ändern (variance)

Verteilungsfunktion

Page 24: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 01.11.07 Komplexpraktikum DIPBench Folie 24 von 58

03. Teil 2

Aufgabenstellung

Woche 1: Realisierung von Verwaltungsfunktionen

-Erweiterung der Metadaten um Constraints

-Definition XML Schema für Tabellendefinition

-Adaption der PlatformModels von Torque

Woche 2: Realisierung der Verteilungsfunktion “Logarithmische Normalverteilung”

Page 25: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 01.11.07 Komplexpraktikum DIPBench Folie 25 von 58

Erweiterung der Metadaten um Constraints

Page 26: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 01.11.07 Komplexpraktikum DIPBench Folie 26 von 58

Erweiterung der Metadaten um Constraints

Page 27: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 01.11.07 Komplexpraktikum DIPBench Folie 27 von 58

Definition XML Schema für Tabellendefinition

Page 28: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 01.11.07 Komplexpraktikum DIPBench Folie 28 von 58

Adaption des PlatformModels von Torque

Ziel : DBMS-Unabhängigkeit

Verschiedene DBMS verwenden unterschiedliche Datentypen

--> dies muß bei der Erzeugung der Tabellen berücksichtigt werden (wenn man DBMS-unabhängig sein will)

--> mit Hilfe des PlatformModels von Torque werden beim Erstellen der “Create Table”-Statements die im Programm verwendeten Datentypen auf die entsprechenden Datentypen des Ziel-DBMS gemapped

Page 29: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 01.11.07 Komplexpraktikum DIPBench Folie 29 von 58

Unterstützte DBMS

- Axion

- Cloudscape

- DB2-AS400

- DB2

- Derby

- HSQLDB (Hypersonic)

- Interbase

- MS Acces

- MS SQL

- MySQL

- Oracle

- PostgreSQL

- SAP DB

- Sybase

Page 30: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 01.11.07 Komplexpraktikum DIPBench Folie 30 von 58

Realisierung der Verteilungsfunktion “Logarithmische Normalverteilung”

Verteilungsdichtefuntion:

Dichtefunktion der Lognormalverteilung (mit μ = 0)

Page 31: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 01.11.07 Komplexpraktikum DIPBench Folie 31 von 58

Verteilungsfunktion

Verteilungsfunktion der

Lognormalverteilung (mit μ = 0)

Page 32: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 01.11.07 Komplexpraktikum DIPBench Folie 32 von 58

Erste Idee: Umkehrung der Verteilungsfunktion

Page 33: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 01.11.07 Komplexpraktikum DIPBench Folie 33 von 58

Nachteile / Gründe für das Verwerfen der ersten Idee

-insbesondere bei kleineren Datenmengen können die erzeugten Daten (zum Teil stark) von der gewünschten Verteilung abweichen

-(Pseudo-)Zufall überflüssig oder sogar hinderlich beim Erzeugen eines gewünschten Testdatensatzes

Page 34: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 01.11.07 Komplexpraktikum DIPBench Folie 34 von 58

Umgesetzte Lösung

-Berechnung der Anzahl der verschiedenen Werte aus Selektivität und Kardinalität

-Einteilung des Wertebereichs in Intervalle

-Schrittweise Abarbeitung von links nach rechts: an jeder Intervallgrenze wird berechnet, wieviele Exemplare des aktuellen Wertes (Intervallgrenze) gemäß der Warscheinlichkeit des Wertes erzeugt werden müssen

Page 35: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 01.11.07 Komplexpraktikum DIPBench Folie 35 von 58

Beispiel

Datentyp: IntegerWertebereich (Range): 0-10

Page 36: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 01.11.07 Komplexpraktikum DIPBench Folie 36 von 58

Beispiel

Page 37: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 01.11.07 Komplexpraktikum DIPBench Folie 37 von 58

Beispiel

Page 38: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 01.11.07 Komplexpraktikum DIPBench Folie 38 von 58

Beispiel

Page 39: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 01.11.07 Komplexpraktikum DIPBench Folie 39 von 58

Beispiel

Page 40: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 01.11.07 Komplexpraktikum DIPBench Folie 40 von 58

Beispiel

Page 41: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 01.11.07 Komplexpraktikum DIPBench Folie 41 von 58

Beispiel

Page 42: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 01.11.07 Komplexpraktikum DIPBench Folie 42 von 58

Behandlung der verschiedenen Datentypen

Integer + Bigint: s. Beispiel

Float + Double: wie Integer, nur Intervallberechnung für reelle Zahlen angepasst

Char + Varchar: Spaltenname + Integer

Boolean: 50/50 (keine sinnvolle Anwendung der Verteilungsfunktion möglich)

Date: Referenzdatum + x tage (x --> Bigint)

Page 43: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 01.11.07 Komplexpraktikum DIPBench Folie 43 von 58

Probleme

- Rundungsfehler

- teilweise zu wenig unterschiedliche Werte (selectivity wird nicht erreicht)

Page 44: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 01.11.07 Komplexpraktikum DIPBench Folie 44 von 58

03. Teil 3

Aufgabenstellung

Woche 1:

• Implementierung einer „CSV Connection“Verbindung zu einer CSV Datei

• Einbindung von Log4jAnpassung des Quellkode vom Initializer

Woche 2:

Implementierung der Zipfsche Verteilungund der Verteilung von Pareto

Page 45: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 01.11.07 Komplexpraktikum DIPBench Folie 45 von 58

CSV Datei

Verwendung der API OpenCSV (http://opencsv.sourceforge.net/):

au.com.bytecode.opencsv:„A very simple CSV parser for Java released under a commercial-friendly license.“

im Projekt schon eingebunden wegen der Konfigurationsdateien

einfache und gut dokumentierte Schnittstelle

Ziel: Umsetzung einer ähnliche Funktionalität vie JDBCConnection

(transparente Nützung von JDBC oder CSV)

Page 46: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 01.11.07 Komplexpraktikum DIPBench Folie 46 von 58

CSV Datei: Schnittstelle

Page 47: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 01.11.07 Komplexpraktikum DIPBench

Erhebung von IST-Werten

• Keine Anfragemöglichkeit

• Durchschnitt, Varianz, Schiefe werden „on the fly“ ermittelt:ausgehend von (X1, ..., Xi,... Xn)

– X1 + ... + Xi

+... + Xn = 1

– X12 + ... + Xi

2 + ... + Xn2 =

– X13 + ... + Xi

3 + ... + Xn3 =

– Durchschnitt: m = 1 / n

– Varianz: v = ( 2 / n) / n

– Schiefe: s = (3 / n 3.1. / n2 + 4.1

3 / n3) / sqrt(v)

Page 48: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 01.11.07 Komplexpraktikum DIPBench

CSV Datei: E/A Leistung

Skalierungsfaktor Größe der Datei (MB) Zeit (s)

0,1 7,6 2,64

1 77,4 25,45

10 786 258,78

Generierung von 350.000 gleichverteilten Tupeln (f = 1)

Page 49: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 01.11.07 Komplexpraktikum DIPBench

Log4j - http://logging.apache.org/log4j

Framework für eine leicht einstellbare Protokollierung

• Begriffe:Hierarchie von „Loggers“: 1 Logger für jeden Knoten der KlassenhierarchieAppender

• Konfiguration:– hartkodiert– mit einer XML-Datei– mit einer Properties-Datei

• Aufruf:getLogger() gibt eine Referenz über ein Logger zurückdebug, info, warn, log Methoden

Page 50: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 01.11.07 Komplexpraktikum DIPBench

Log4j – Konfigurationsdatei: Beispiellog4j.appender.console=org.apache.log4j.ConsoleAppenderlog4j.appender.console.layout=org.apache.log4j.PatternLayoutlog4j.appender.console.layout.ConversionPattern=(%-10r)[%-15t]%-5p %-20c{1} - %m%n

log4j.appender.fileAppender=org.apache.log4j.FileAppenderlog4j.appender.fileAppender.File=log/demo.loglog4j.appender.fileAppender.layout=org.apache.log4j.PatternLayoutlog4j.appender.fileAppender.layout.ConversionPattern=%d [%-10t] %-5p %c{2} %x - %m%n

log4j.appender.null=org.apache.log4j.varia.NullAppender

log4j.logger.org=DEBUG, null

#log4j.logger.org.tud.dipbench.initializer.gen=INFO, console#log4j.logger.org.tud.dipbench.initializer.conn=INFO, console

log4j.logger.org.tud.dipbench.initializer.gen.UniformDataGenerator=DEBUG, consolelog4j.logger.org.tud.dipbench.initializer.conn=INFO, console

...

Page 51: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 01.11.07 Komplexpraktikum DIPBench

Log4j – Konfigurationsdatei: Gliederung (1)

log4j.appender.console=org.apache.log4j.ConsoleAppenderlog4j.appender.console.layout=org.apache.log4j.PatternLayoutlog4j.appender.console.layout.ConversionPattern=(%-10r)[%-15t]%-5p %-20c{1} - %m%n

log4j.appender.fileAppender=org.apache.log4j.FileAppenderlog4j.appender.fileAppender.File=log/demo.loglog4j.appender.fileAppender.layout=org.apache.log4j.PatternLayoutlog4j.appender.fileAppender.layout.ConversionPattern=%d [%-10t] %-5p %c{2} %x - %m%n

log4j.appender.null=org.apache.log4j.varia.NullAppender

log4j.logger.org=DEBUG, null

#log4j.logger.org.tud.dipbench.initializer.gen=INFO, console#log4j.logger.org.tud.dipbench.initializer.conn=INFO, console

log4j.logger.org.tud.dipbench.initializer.gen.UniformDataGenerator=DEBUG, consolelog4j.logger.org.tud.dipbench.initializer.conn=INFO, console

Page 52: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 01.11.07 Komplexpraktikum DIPBench

Log4j – Konfigurationsdatei: Gliederung (2)

log4j.appender.console=org.apache.log4j.ConsoleAppenderlog4j.appender.console.layout=org.apache.log4j.PatternLayoutlog4j.appender.console.layout.ConversionPattern=(%-10r)[%-15t]%-5p %-20c{1} - %m%n

log4j.appender.fileAppender=org.apache.log4j.FileAppenderlog4j.appender.fileAppender.File=log/demo.loglog4j.appender.fileAppender.layout=org.apache.log4j.PatternLayoutlog4j.appender.fileAppender.layout.ConversionPattern=%d [%-10t] %-5p %c{2} %x - %m%n

log4j.appender.null=org.apache.log4j.varia.NullAppender

log4j.logger.org=DEBUG, null

#log4j.logger.org.tud.dipbench.initializer.gen=INFO, console#log4j.logger.org.tud.dipbench.initializer.conn=INFO, console

log4j.logger.org.tud.dipbench.initializer.gen.UniformDataGenerator=DEBUG, consolelog4j.logger.org.tud.dipbench.initializer.conn=INFO, console

Page 53: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 01.11.07 Komplexpraktikum DIPBench

Die Zipfsche Verteilung

• Diskrete Verteilung, Support: {1 , ... , N}

• f(n;k,N)= a(k,N) / ks

• Problem:– Kein einfacher Zusammenhang

zwischen (k,N) und dem Durchschnitt / der Varianz

– Es werden keine Werte sondern Indizes generiert

m = HN,k-1 / HN,k wobei:

Page 54: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 01.11.07 Komplexpraktikum DIPBench

Die Pareto Verteilung

• Kontinuerliche Verteilungsfunktion

• Dichtefunktion :Definitionsbereich: [xm, infinity [

• Nützliche Gleichung (kumulative Dichtefunktion):

Page 55: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 01.11.07 Komplexpraktikum DIPBench

Die Pareto Verteilung:Bestimmung von k und xm

Grundlagen:

• m = k.xm / (k – 1) - (wenn k > 1)

• V = m 2 . 1 / [(k – 2).k] – (wenn k > 2)

Einschränkungen:

• Intervall [xm , xMax]

• xMax / P(x > xMax) ist klein (z.B < 10-3)

• Vorgegebene Varianz V und Durchschnitt m• Selektivität: Anzahl von generierten Werten

Page 56: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 01.11.07 Komplexpraktikum DIPBench

Pareto: Prinzip der Generierung

Anpassung der Schrittweite während der Generierung

Page 57: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 01.11.07 Komplexpraktikum DIPBench

Pareto: Typkonvertierung

Unterstütze Typen:• double, float: wird „natürlich“ von der Verteilung erzeugt

• integer, bigint: Rundung zur nächsten Ganzzahl

• enumeration: eine Ganzzahl wird generiert und den entsprechenden Wert wird ausgewählt

• boolean: zweiwertiges Set

• Date: Referenzdatum + Zeitspanne(Varianz und Durchschnitt in Tagen angegeben)

Page 58: Komplexpraktikum DIPBench Computer Science Faculty, System Architecture, Database Technology Group Dresden, 14.11.2007

TU Dresden, 01.11.07 Komplexpraktikum DIPBench Folie 58 von 58

Zusammenfassung

Initializer (aktueller Zustand)