Title: Gliederung
1 BTW 2001 Sitzung Datenbanken im Internet
Verteilte Metadatenverwaltung für die
Anfragebearbeitung auf Internet-Datenquellen
Markus Keidl1 Alexander Kreutz1 Alfons
Kemper1 Donald Kossmann2
1 Universität Passau D-94030 Passau
ltnachnamegt_at_db.fmi.uni-passau.de
2 TU München D-81667 München
Kossmann_at_in.tum.de
2Gliederung
- Motivation
- Die Metadatenverwaltung MDV
- Architektur
- Publish/Subscribe-Mechanismus
- Regelsystem
- Vorfilter-Algorithmus
- Zusammenfassung
3Motivation
- Ressourcenverwaltung für Internet-
Anfragebearbeitung in ObjectGlobe - Anforderungen
- große Zahl von Klienten? 3-Schichten-Architektur
- Informationen nahe bei den Klienten? Caching,
Replikation - Aktualität der Information
4Das ObjectGlobe-System
Cycle-Provider
thumbnail
Lade Operator
wrap_S
Fct-Provider
thumbnail
Data-Provider A
Data-Provider B
wrap_S
S
5Die Metadatenverwaltung
- Metadaten im RDF-Format
- Metadaten-Schema mit RDF Schema
- 3-Schichten-Architektur Ö-MDVs, L-MDVs und
MDV-Klienten - Caching/Replikation auf lokaler Ebene
- Aktualität durch Publish/Subscribe-Mechanismus
6RDF
- RDF Resource Description Framework
- Dokumente enthalten Ressources, Properties und
Values(? Objekten, Instanzvariablen, Werten) - RDF Schema Klassenhierarchie
- Zukünftiger Standard für Metadaten(MDV ist aber
nicht darauf festgelegt)
7RDF - Beispiel
ltPartition rdfIDpartgt ltcardinalitygt2000lt/car
dinalitygt ltthemegt ltTheme rdfIDthemegt
ltthemeNamegtHotelslt/themeNamegt
lt/Themegt lt/Partitiongt
8Architektur der MDV
Ö-MDV
Ö-MDV
Ö-MDV
Backbone
Publish/Subscribe
L-MDV
L-MDV
Optimierer
9Architektur - Ö-MDVs
- Öffentlichen MDVs (Ö-MDVs)
- Backbone aus Ö-MDVs
- speichern globale Metadaten
- repliziert innerhalb des Backbones
10Architektur der MDV
Ö-MDV
Ö-MDV
Ö-MDV
Backbone
Publish/Subscribe
L-MDV
L-MDV
Optimierer
11Architektur - L-MDVs
- Lokale MDVs (L-MDVs)
- liegen nahe bei den Klienten
- abonnieren globale Metadaten?? Caching
- speichern lokale Metadaten
- Anfrageauswertung abonnierte und lokale
Metadaten - Hinzufügen von L-MDVs ? Skalierbarkeit
12Architektur der MDV
Ö-MDV
Ö-MDV
Ö-MDV
Backbone
Publish/Subscribe
L-MDV
L-MDV
Optimierer
13Architektur - MDV-Klienten
- MDV-Klienten
- stellen Anfragen an L-MDVs
- browsen Metadaten an Ö-MDVs und L-MDVs
- modifizieren die Abonnement-Regeln ihrer L-MDV
14Publish/Subscribe-Mechanismus
- Lokale MDVs abonnieren Metadaten ? Regeln
- Beispielregelsearch Partition p
register pwhere p.cardinality gt '1000' and
p.theme.themeName 'Hotels' - Registrieren, Ändern oder Löschen von
RDF-Dokumenten ? Auswertung - Problem Große Menge von Regeln
15Vorfilter
- Basierend auf Standard-RDBMS
- Idee Auswerten einer Regel-Teilmenge
- Zerlegung in Atome
- RDF Dokumente
- Regeln ? auslösende und abhängige Regeln
- Bestimmung ausgelöster Regeln
- Inkrementelle Auswertung der Regeln
- Ziel Index auf gesamte Regelmenge
16Idee Vorfilter-Algorithmus
RDF-Dokument
Regel
ltPartition rdfIDpartgt ltcardinalitygt2000lt/car
dinalitygt ltthemegt ltTheme rdfIDthemegt
ltthemeNamegtHotelslt/themeNamegt
lt/Themegt lt/Partitiongt
search Partition p register pwhere
p.cardinality gt '1000' and p.theme.themeName
'Hotels'
object_id class predicate value
doc.rdfpart Partition rdfsubject doc.rdfpart
doc.rdfpart Partition cardinality 2000
doc.rdfpart Partition theme doc.rdftheme
doc.rdftheme Theme rdfsubject doc.rdftheme
doc.rdftheme Theme themeName Hotels
Menge aller Abonnement-Regeln Menge aller Abonnement-Regeln Menge aller Abonnement-Regeln
17Publish/Subscribe mit Vorfilter
- Registrierung eines RDF Dokuments
- Zerlegung des RDF Dokuments
- Vorfilter-Lauf? Regeln, die neue Metadaten
abonnieren neue Metadaten - Regeln ?? L-MDVs
- Benachrichtigung der L-MDVs
18Zerlegung RDF-Dokument
object_id class predicate value
doc.rdfpart Partition rdfsubject doc.rdfpart
doc.rdfpart Partition cardinality 2000
doc.rdfpart Partition theme doc.rdftheme
doc.rdftheme Theme rdfsubject doc.rdftheme
doc.rdftheme Theme themeName Hotels
ltPartition rdfIDpartgt ltcardinalitygt2000lt/car
dinalitygt ltthemegt ltTheme rdfIDthemegt
ltthemeNamegtHotelslt/themeNamegt
lt/Themegt lt/Partitiongt
19Zerlegung RDF-Dokument
object_id class predicate value
doc.rdfpart Partition rdfsubject doc.rdfpart
doc.rdfpart Partition cardinality 2000
doc.rdfpart Partition theme doc.rdftheme
doc.rdftheme Theme rdfsubject doc.rdftheme
doc.rdftheme Theme themeName Hotels
ltPartition rdfIDpartgt ltcardinalitygt2000lt/car
dinalitygt ltthemegt ltTheme rdfIDthemegt
ltthemeNamegtHotelslt/themeNamegt
lt/Themegt lt/Partitiongt
20Zerlegung Regeln
search Partition p register p where
p.cardinality gt '1000' and p.theme.themeName
'Hotels'
A search Partition p register pB search
Partition p register p where p.cardinality gt
'1000'C search Theme t register t where
t.themeName 'Hotels'
D search Regel(C) d register dE search
Regel(A) a, Regel(D) d register a where a.theme
gF search Regel(E) e, Regel(B) b register e
where e b
21Zerlegung Regel - Ergebnis
22Zerlegung Auslösende Regeln
search Partition p register p where p.cardinality
gt '1000'
PrefilterRulesGT PrefilterRulesGT PrefilterRulesGT PrefilterRulesGT
query_id class predicate value
1 Partition cardinality 1000
gt
search Theme t register t where t.themeName
'Hotels'
PrefilterRulesEQ PrefilterRulesEQ PrefilterRulesEQ PrefilterRulesEQ
query_id class predicate value
2 Theme themeName Hotels
search Partition p register p
PrefilterRules PrefilterRules
query_id class
3 Partition
23Vorfilter
- Basierend auf Standard-RDBMS
- Idee Auswerten einer Regel-Teilmenge
- Zerlegung in Atome
- RDF Dokumente
- Regeln ? auslösende und abhängige Regeln
- Bestimmung ausgelöster Regeln
- Inkrementelle Auswertung der Regeln
- Ziel Index auf gesamte Regelmenge
24Vorfilter
- Basierend auf Standard-RDBMS
- Idee Auswerten einer Regel-Teilmenge
- Zerlegung in Atome
- RDF Dokumente
- Regeln ? auslösende und abhängige Regeln
- Bestimmung ausgelöster Regeln
- Inkrementelle Auswertung der Regeln
- Ziel Index auf gesamte Regelmenge
25Bestimmung ausgelöster Regeln
object_id class predicate value
doc.rdfpart Partition rdfsubject doc.rdfpart
doc.rdfpart Partition cardinality 2000
doc.rdfpart Partition theme doc.rdftheme
doc.rdftheme Theme rdfsubject doc.rdftheme
doc.rdftheme Theme themeName Hotels
PrefilterRulesGT PrefilterRulesGT PrefilterRulesGT PrefilterRulesGT
query_id class predicate value
1 Partition cardinality 1000
object_id query_id
PrefilterRulesEQ PrefilterRulesEQ PrefilterRulesEQ PrefilterRulesEQ
query_id class predicate value
2 Theme themeName Hotels
Join
PrefilterRules PrefilterRules
query_id class
3 Partition
26Bestimmung ausgelöster Regeln
object_id class predicate value
doc.rdfpart Partition rdfsubject doc.rdfpart
doc.rdfpart Partition cardinality 2000
doc.rdfpart Partition theme doc.rdftheme
doc.rdftheme Theme rdfsubject doc.rdftheme
doc.rdftheme Theme themeName Hotels
PrefilterRulesGT PrefilterRulesGT PrefilterRulesGT PrefilterRulesGT
query_id class predicate value
1 Partition cardinality 1000
object_id query_id
doc.rdfpart 1
PrefilterRulesEQ PrefilterRulesEQ PrefilterRulesEQ PrefilterRulesEQ
query_id class predicate value
2 Theme themeName Hotels
Join
PrefilterRules PrefilterRules
query_id class
3 Partition
27Bestimmung ausgelöster Regeln
object_id class predicate value
doc.rdfpart Partition rdfsubject doc.rdfpart
doc.rdfpart Partition cardinality 2000
doc.rdfpart Partition theme doc.rdftheme
doc.rdftheme Theme rdfsubject doc.rdftheme
doc.rdftheme Theme themeName Hotels
PrefilterRulesGT PrefilterRulesGT PrefilterRulesGT PrefilterRulesGT
query_id class predicate value
1 Partition cardinality 1000
object_id query_id
doc.rdfpart 1
PrefilterRulesEQ PrefilterRulesEQ PrefilterRulesEQ PrefilterRulesEQ
query_id class predicate value
2 Theme themeName Hotels
Join
PrefilterRules PrefilterRules
query_id class
3 Partition
28Bestimmung ausgelöster Regeln
object_id class predicate value
doc.rdfpart Partition rdfsubject doc.rdfpart
doc.rdfpart Partition cardinality 2000
doc.rdfpart Partition theme doc.rdftheme
doc.rdftheme Theme rdfsubject doc.rdftheme
doc.rdftheme Theme themeName Hotels
PrefilterRulesGT PrefilterRulesGT PrefilterRulesGT PrefilterRulesGT
query_id class predicate value
1 Partition cardinality 1000
object_id query_id
doc.rdfpart 1
doc.rdftheme 2
PrefilterRulesEQ PrefilterRulesEQ PrefilterRulesEQ PrefilterRulesEQ
query_id class predicate value
2 Theme themeName Hotels
Join
PrefilterRules PrefilterRules
query_id class
3 Partition
29Bestimmung ausgelöster Regeln
object_id class predicate value
doc.rdfpart Partition rdfsubject doc.rdfpart
doc.rdfpart Partition cardinality 2000
doc.rdfpart Partition theme doc.rdftheme
doc.rdftheme Theme rdfsubject doc.rdftheme
doc.rdftheme Theme themeName Hotels
PrefilterRulesGT PrefilterRulesGT PrefilterRulesGT PrefilterRulesGT
query_id class predicate value
1 Partition cardinality 1000
object_id query_id
doc.rdfpart 1
doc.rdftheme 2
doc.rdfpart 3
PrefilterRulesEQ PrefilterRulesEQ PrefilterRulesEQ PrefilterRulesEQ
query_id class predicate value
2 Theme themeName Hotels
Join
PrefilterRules PrefilterRules
query_id class
3 Partition
30Vorfilter
- Basierend auf Standard-RDBMS
- Idee Auswerten einer Regel-Teilmenge
- Zerlegung in Atome
- RDF Dokumente
- Regeln ? auslösende und abhängige Regeln
- Bestimmung ausgelöster Regeln
- Inkrementelle Auswertung der Regeln
- Ziel Index auf gesamte Regelmenge
31Vorfilter
- Basierend auf Standard-RDBMS
- Idee Auswerten einer Regel-Teilmenge
- Zerlegung in Atome
- RDF Dokumente
- Regeln ? auslösende und abhängige Regeln
- Bestimmung ausgelöster Regeln
- Inkrementelle Auswertung der Regeln
- Ziel Index auf gesamte Regelmenge
32Inkrementelle Auswertung
- ausgelöste Regeln ? Auswerten aller abhängigen
Regeln
object_id query_id
doc.rdfpart 1
doc.rdftheme 2
doc.rdfpart 3
- inkrementelle Auswertung soweit möglich
33Inkrementelle Auswertung
Regel F
e b
Regel E
Regel B
a.theme d
Regel A
Regel D
cardinality gt '1000'
Regel C
themeName 'Hotels'
Partition
Theme
Partition
34Inkrementelle Auswertung
Regel F
e b
Regel E
Regel B
a.theme d
Regel A
Regel D
cardinality gt '1000'
Regel C
themeName 'Hotels'
Partition
Theme
Partition
35Inkrementelle Auswertung
Regel F
e b
Regel E
Regel B
a.theme d
Regel A
Regel D
cardinality gt '1000'
Regel C
themeName 'Hotels'
Partition
Theme
Partition
36Inkrementelle Auswertung
Regel F
e b
Regel E
Regel B
a.theme d
Regel A
Regel D
cardinality gt '1000'
Regel C
themeName 'Hotels'
Partition
Theme
Partition
37Verwandte Arbeiten - 1
- MetadatenEqual Time For Data on the Internet
with WebSemanticsMihaila, Raschid, Tomasic
EDBT '98Automatic Deployment of
Application-Specific Metadata and Code in MOCHA
Rodriguez-Martinez, Roussopoulos EDBT '00
Universal Description, Discovery, and
Integration (UDDI)Ariba, Inc., IBM, Microsoft
http//www.uddi.org - Publish/SubscribeEfficient Matching for
Web-Based Publish/Subscribe Systems Pereira,
Fabret, Llirbat, Shasha CoopIS '00Matching
Events in a Content-Based Subscription
SystemAguilera, Strom, Sturman, Astley,
Chandra PODC '99The SIFT Information
Dissemination System Yan, Garcia-Molina TODS
'99Efficient Filtering of XML Documents for
Selective Dissemination of Information Altinel,
Franklin VLDB '00
38Verwandte Arbeiten - 2
- Continuous QueriesNiagaraCQ A Scalable
Continuous Query System for Internet Databases
Chen, DeWitt, Tian, Wang SIGMOD '00Continual
Queries for Internet Scale Event-Driven
Information Delivery Liu, Pu, Tang IEEE TKDE
'99 - Materialized Views und Semantic
CachingMaintaining Views Incrementally Gupta,
Mumick, Subrahmanian SIGMOD '93Efficiently
Updating Materialized ViewsBlakeley, Larson,
Tompa SIGMOD '00Semantic Data Caching and
Replacement Dar, Franklin, Jónsson, Srivastava,
Tan VLDB '96
39Zusammenfassung
- Metadatenverwaltung MDVArchitektur Ö-MDVs,
L-MDVs, Klienten - Publish/Subscribe-Mechanismus
- Vorfilter-Algorithmus
- Zerlegung von RDF-Dokumenten
- Zerlegung von Regeln
- Bestimmung ausgelöster Regeln
- Inkrementelle Auswertung