datenbankanwendung - wintersemester...
TRANSCRIPT
DatenbankanwendungWintersemester 2014/15
Prof. Dr.-Ing. Sebastian MichelTU Kaiserslautern
MapReduce, NoSQL MapReduce
MapReduce - Veranschaulichung der Phasen
Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 2 / 44
MapReduce, NoSQL MapReduce
Formal: Map und Reduce Funktionen
� map(k1, v1) → list(k2, v2)
� reduce(k2, list(v2)) → list(k3, v3)
Schlussel (Keys) erlauben Daten Maschinen zu zuordnen.
Beispiel fur Schlussel
� k1 = Id eines Dokuments (oder Offset in Datei)
� v1 = Inhalt des Dokuments (oder Zeile in Datei)
� k2 = Wort
� v2 = Zahler
� k3 = Wort
� v3 = Zahler
Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 3 / 44
MapReduce, NoSQL MapReduce
SQL in MapReduce: Selektion und Projektion
Gegeben eine Relation R mit sch(R) = (A,B, . . .). Tupel sind in einerDatei gespeichert (z.B. als CSV-Datei). Wie konnen typische SQLAnfragen ausgefuhrt werden?
Selektion
� WHERE Klausel kann leicht in Map-Phase uberpruft werden.
� Wie bei dem Grep-Beispiel.
� Kein Reducer erforderlich.
Projektion
� Ebenfalls offensichtlich: Nur gewunschte Attribute der Tupel werdenausgegeben (emit).
� Auch hier ist kein Reducer notwendig.
Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 4 / 44
MapReduce, NoSQL MapReduce
SQL in MapReduce: Group-By, Aggregate, Having
select abteilung, avg(gehalt)from gehaeltergroup by abteilunghaving avg(gehalt) > 50000
Group-By, Aggregate
� Map: Sendet Tupel zu Reducer anhand des Attributs, nach demgruppiert wird, hier der Abteilung, als Schlussel.
� Reducer erhalt somit alle Tupel die gleichen Wert fur Abteilunghaben und kann dann gruppieren.
Having
� Having ist ein Uberprufung einer Eigenschaft auf den Daten einerGruppe, wird also auch im Reducer ausgefuhrt.
Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 5 / 44
MapReduce, NoSQL MapReduce
SQL in MapReduce: Joins in MapReduceEin einfacher Equi-Join (hier sogar Naturlicher-Join) zwischen zweiRelationen R und S mit sch(R) = (A,B) und sch(S) = (B,C), also
select *from R, Swhere R.B=S.B
Beispielauspragung der Relationen:
RA B
x 18y 9w 64. . . . . .
SB C
6 w5 e9 r. . . . . .
Wie kann dieser Join mit Hilfe von MapReduce realisiert werden?Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 6 / 44
MapReduce, NoSQL MapReduce
Joins in MapReduce
� Offensichtlich muss geschaut werden welche Tupel aus R und Sverbunden (gejoint) werden konnen.
� Im Fall des Naturlichen-Joins bzw. Equi-Joins ist dies besonderseinfach: Ergebnisse mussen, hier im Beispiel, im Attribut Bubereinstimmen, also R.B = S.B.
� Wie kann man erreichen, dass Tupel mit gleichem Attributwert fur Bauf der gleichen Maschine landen?
Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 7 / 44
MapReduce, NoSQL MapReduce
Reduce-Side Join (Equi-Join)
Map
� Sende Tupel t zu Reducer anhand Schlussel t.B
� Zusatzlich zum Tupel wird auch noch mitgeschickt ob t aus R oderaus S ist. Wieso?
Reduce
� Joine Tupel t1, t2 falls t1.b = t2.b und t1 aus R ist und t2 aus S.
Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 8 / 44
MapReduce, NoSQL MapReduce
Map-Side Join - Spezialfall
� Fur den Fall, dass eine der beiden Relationen klein ist, sagen wir R:
Map
� Gesamte Relation R ist bekannt
� Join kann also im Map-Prozess durchgefuhrt werden.
� Ausgabe ist das verbundene Tupel
Reduce
� Es ist kein Reducer erforderlich!
Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 9 / 44
MapReduce, NoSQL MapReduce
Reduce-Side Join mit Optimierung durch Semi-Join-Trick
� Wie zuvor, Relationen R und S mit sch(R) = (A,B) undsch(S) = (B,C)
und auch wieder Equi-Join, d.h. Join uber gleiche Werte von B
� Nun, Annahme: Anzahl der distinct B Werte in R ist klein.
Map
� Alle distinct Werte des Attributs B der Relation R sind bekannt;nennen wir die Menge D
� Sende Tupel aus R anhand des Schlussels R.B
� Aber: Sende Tupel t aus S anhand Schlussel t.B falls t.B ∈ D
Reduce
� hier wird der tatsachliche Join (das Verbinden von Tupeln) ausgefuhrt
Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 10 / 44
MapReduce, NoSQL MapReduce
Die Geschichte von MapReduce
Ursprung bei Google
� Beschrieben in einem Artikel aus 2004: Prinzip, Anwendungsfalle,Google-File-System, etc.
� Jeffrey Dean, Sanjay Ghemawat: MapReduce: Simplified DataProcessing on Large Clusters. OSDI 2004:
Nachfolgearbeiten/Implementierungen
� Es gibt einige z.T. frei verfugbare MapReduce Implementierungen.
� Am wohl bekanntesten ist Hadoop (Apache), ursprunglich bei Yahooentwickelt; frei verfugbar.
� Tipp: Hortonworks bietet Virtual Machine (VM) zum Herumspielenmit Hadoop und anderen neuen Technologien an
http://hadoop.apache.org/
http://hortonworks.com/products/hortonworks-sandbox/Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 11 / 44
MapReduce, NoSQL MapReduce
Code: WordCount in Hadoop (Ausschnitt!)1 p u b l i c s t a t i c c l a s s Map e x t e n d s Mapper<
LongWri tab le , Text , Text , I n t W r i t a b l e > {2
3 p u b l i c v o i d map( L o n g W r i t a b l e key , Text v a l u e ,Context c o n t e x t ) throws IOExcept ion ,I n t e r r u p t e d E x c e p t i o n {
4 S t r i n g l i n e = v a l u e . t o S t r i n g ( ) ;5 S t r i n g T o k e n i z e r t o k e n i z e r = new
S t r i n g T o k e n i z e r ( l i n e ) ;6 w h i l e ( t o k e n i z e r . hasMoreTokens ( ) ) {7 word . s e t ( t o k e n i z e r . nextToken ( ) ) ;8 c o n t e x t . w r i t e ( word , one ) ;9 }
10 }11 }
Wie genau Key und Value ausschauen hangt von Implementierung des
InputFormat ab.Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 12 / 44
MapReduce, NoSQL MapReduce
Code: WordCount in Hadoop (Ausschnitt!) (2)
1 p u b l i c s t a t i c c l a s s Reduce e x t e n d s Reducer<Text ,I n t W r i t a b l e , Text , I n t W r i t a b l e > {
2
3 p u b l i c v o i d r e d u c e ( Text key , I t e r a b l e <I n t W r i t a b l e > v a l u e s , Context c o n t e x t ) throwsIOExcept ion , I n t e r r u p t e d E x c e p t i o n {
4 i n t sum = 0 ;5 f o r ( I n t W r i t a b l e v a l : v a l u e s ) {6 sum += v a l . g e t ( ) ;7 }8 c o n t e x t . w r i t e ( key , new I n t W r i t a b l e ( sum ) ) ;9 }
10
11 }
Quelle: http://wiki.apache.org/hadoop/WordCountProf. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 13 / 44
MapReduce, NoSQL MapReduce
Code: WordCount in Hadoop (Ausschnitt!) (3)
1 p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) throws E x c e p t i o n {2 C o n f i g u r a t i o n c o n f = new C o n f i g u r a t i o n ( ) ;3
4 Job j o b = new Job ( conf , ” wordcount ” ) ;5
6 j o b . s e t O u t p u t K e y C l a s s ( Text . c l a s s ) ;7 j o b . s e t O u t p u t V a l u e C l a s s ( I n t W r i t a b l e . c l a s s ) ;8
9 j o b . s e t M a p p e r C l a s s (Map . c l a s s ) ;10 j o b . s e t R e d u c e r C l a s s ( Reduce . c l a s s ) ;11
12 j o b . s e t I n p u t F o r m a t C l a s s ( Text InputFormat . c l a s s ) ;13 j o b . s e t O u t p u t F o r m a t C l a s s ( TextOutputFormat . c l a s s ) ;14
15 F i l e I n p u t F o r m a t . addInputPath ( job , new Path ( a r g s [ 0 ] ) ) ;16 F i l e O u t p u t F o r m a t . setOutputPath ( job , new Path ( a r g s [ 1 ] ) ) ;17
18 j o b . w a i t F o r C o m p l e t i o n ( t r u e ) ;19 }
Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 14 / 44
MapReduce, NoSQL MapReduce
Screenshot Hadoop Distributed File System Web UI
Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 15 / 44
MapReduce, NoSQL MapReduce
Screenshot Hadoop Web UI (Monitoring)
Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 16 / 44
MapReduce, NoSQL MapReduce
Typische Topologie
Node 1
Disks
Node 2
Disks
Node 3
Disks
Node 4
Disks
Node 5
Disks
Node 6
Disks
Rack 1 Rack 2
Switch
Topology kann/muss in einer Konfigurationsdatei mitgeteilt werden.Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 17 / 44
MapReduce, NoSQL MapReduce
Rack Awareness
Data-local, rack-local und off-rack Map-Prozesse.
node
rack
data center Map task HDFS block
Kostenmodell gibt Kosten fur diese einzelnen Falle an.Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 18 / 44
MapReduce, NoSQL MapReduce
Ein Zusatzlicher “Combiner” - Probleme
Beobachtung
� In der Map-Phase konnen große Mengen an Zwischenergebnissenanfallen
� Da Netzwerk-Bandbreite oft kritisch fur Performance ist sollteversucht werden diese Zwischenergebnisse zu reduzieren(!)
� Dies funktioniert fur Funktionen wie max:max(1, 2, 6, 2, 1, 9) = max(max(1, 2, 6),max(2, 1, 9))
Der Combiner
� Wird auf die Ausgabe eines (jeden) Map-Prozessen angewendet
� Normalerweise identisch zu dem Reducer (im Sinne von“Code”)
� Aber: Kein Ersatz fur den Reducer!
� Wieso? Der Combiner sieht nur Zwischenergebnisse!Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 19 / 44
MapReduce, NoSQL MapReduce
Ein Zusatzlicher “Combiner”
Achtung: Manche Aggregationen (Funktionen) konnen nicht lokalausgefuhrt werden.
� Beispiel: Gib Ausgabe aus falls sum(value) > τ
� Wieso geht das i. Allg. schief? Combiner kann diese Entscheidungnicht treffen, da er nur lokale Informationen sieht. Und nicht obglobal die Summe uber oder unter Grenzwert liegt.
� Trotzdem macht hier evtl. ein Combiner Sinn, dann aber nuraufsummieren und nicht entscheiden ob uber oder unter Grenzwert
Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 20 / 44
MapReduce, NoSQL MapReduce
Bewertung von MapReduce
Positiv
� Einfaches Modell
� Skalierbar
� Zielt auf hohen Durchsatz
� Implementierung tolerant gegenuber Ausfallen von Knoten
Negativ
� Sehr einfache Routinen; Implementierung komplexerer Algorithmenwird leicht umstandlich
� Fur komplexe Dingen sind oft mehrere Iterationen von MapReducenotig
� Schreiben von komplexen Anfragen ebenso. SQL (oder so etwas inder Art) nicht unterstutzt
� Langsame Antwortzeit (schlecht fur individuelle, kleine Arbeiten)Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 21 / 44
MapReduce, NoSQL MapReduce
Ausblick auf weitere MapReduce Themen (in DDMVorlesung)
Hadoop
� Realisierung Hadoop Distributed File System
� Realisierung Hadoop MapReduce, Ausfallsicherheit, etc.
� Partitionierer, Composite Keys, Sortierung (secondary sort)
Auf MapReduce aufbauend
� Pig (mit Anfragesprache PigLatin): ubersetzen von komplexerenDatenverarbeitungsbefehlen in MapReduce Workflow
� Hive: Machtigere Sprache (∼SQL), wird auf MapReduce abgebildet.
Daten-Analyse-Algorithmen
� Graphalgorithmen, insbesondere PageRank
� Statistiken zu Worthaufigkeiten
� ...Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 22 / 44
MapReduce, NoSQL NoSQL
NoSQL
Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 23 / 44
MapReduce, NoSQL NoSQL
Was steckt hinter NoSQL?
� Beobachtung/Hypothese: Es gibt kein one-size-fits-allDatenbanksystem!
� NoSQL = Not Only SQL (nicht unbedingt “no” SQL)
� Steht als Bezeichner fur eine Vielzahl von nicht traditionellenDatenmanagement-Systemen, die stark auf die Anwendungzugeschnitten sind:
- Key-Value-Datenbanken- Graph-Datenbanken- Dokument-Datenbanken
Uberblick gibt es unter: http://nosql-database.org/
Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 24 / 44
MapReduce, NoSQL NoSQL
Charakteristika von NoSQL Systemen
� Kein relationales Datenmodell
� System sind ausgelegt horizontal zu skalieren (scale out), also Datenund Datenverarbeitung uber mehrere Maschinen zu verteilen.
� Kein Schema oder nur sehr lose beschrieben.
� Einfache API (normalerweise keine Unterstutzung von SQL): CRUD(create, read, update, delete).
� Ublicherweise keine ACID Semantik. Stattdessen: BASE ;)
� Oftmals sind diese System open-source.
Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 25 / 44
MapReduce, NoSQL NoSQL
NoSQL: Key/Value Datenbanken
� Speichern von Key-Value Paaren
� Values konnen komplexe(re) Datentypen sein
� Beispiele von Systemen: Amazon Dynamo, Redis, Voldemort
� Zugriff via CRUD-Operationen: Create, Read, Update, Delete
� Einige Systeme unterstutzen auch machtigere/komplexereAnfragetypen.
Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 26 / 44
MapReduce, NoSQL NoSQL
Beispiel: Key-Value-Store: Redis
� Online Tutorial: http://try.redis.io
Get und Set
SET name ”Datenbankanwendung”
GET name → Datenbankanwendung
Operationen auf Listen
LPUSH meineListe ”a”
LPUSH meineListe ”b”
LLENGTH → 2
LRANGE meineListe 0 1 → ”b”,”a”
Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 27 / 44
MapReduce, NoSQL NoSQL
Dokumenten Datenbanken
� Speichern JSON (JavascriptObject Notation), siehe Beispiellinks, oder XML Dokumente
� Systeme: MongoDB oderCouchDB
{
"firstName":"John",
"lastName":"Smith",
"age":25,
"address":{
"street":"21 2nd Street",
"city":"New York",
"state":"NY",
"postalCode":10021
},
"phoneNumbers":[
{
"type":"home",
"number":"212 555-1234"
},
{
"type":"fax",
"number":"646 555-4567"
}
]
}Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 28 / 44
MapReduce, NoSQL NoSQL
Beispiel: MongoDB
� Online Tutorial: http://try.mongodb.org
var student = {name:'Jim', scores:[75,99,87.2]};
db.lecture.store(student);
db.lecture.find(); --liefert alle Eintraege
db.lecture.find({name:'Jim'}); --spezielle Suche
db.users.update({name:'Johnny'},{name:'Cash',
languages:['english']});
� MongoDB unterstutzt MapReduce http:
//docs.mongodb.org/manual/tutorial/map-reduce-examples/
Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 29 / 44
MapReduce, NoSQL NoSQL
CAP Theorem
� Ein System kann nichtgleichzeitig die folgenden dreiEigenschaften unterstutzen:
- Consistency (Konsistenz)
- Availability (Verfugbarkeit)
- Partition Tolerance(Daten/verarbeitung verteilt aufmehrere Maschinen)
C A
P
C A
P
C+A
C+P A+P
http://webpages.cs.luc.edu/~pld/353/gilbert_lynch_brewer_
proof.pdf
Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 30 / 44
MapReduce, NoSQL NoSQL
Consistent + Available
� Beispiel: Traditionelle(zentralisierte)Datenbanksysteme
C AC AC+A
Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 31 / 44
MapReduce, NoSQL NoSQL
Partition Tolerant + Available
� Beispiel: Domain Name Service(DNS)
A
P
A
P
A+P
Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 32 / 44
MapReduce, NoSQL NoSQL
Consistent + Partition Tolerant
� Beispiel: Verteilte Datenbankenmit verteiltem Locking/Commit
C
P
C
P
C+P
Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 33 / 44
MapReduce, NoSQL NoSQL
Und nun?
Ohne ”P” geht es nicht
� Es sind große Datenmengen zu verarbeiten
⇒ Horizontela Skalierung
D.h. das System muss Partitionierung der Daten/Verarbeitung aufverschiedene Maschinen unterstutzen.
� Also ist ”P” gegeben. Was ist nun zu tun?
Abwagung (Tradeoff) zwischenKonsistenz und Verfugbarkeit.
C A
P
C A
P
C+A
C+P A+P
Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 34 / 44
MapReduce, NoSQL NoSQL
Idee
Tradeoff zwischen Consistency und Availability.
� Repliziere Daten, d.h. mehrere Versionen pro Datensatz
� Replikate werden auf Maschinen verteilt
� Sende Updates an alle Replikate aber warte nicht aufAcknowledgement.
� Lesen Daten von Teilmenge der Replikate.
� D.h. sehr effizient aber nicht unbedingt garantiert konsistent (mankann alte Antworten erhalten)
� Erst nach einiger Zeit konsistent (wenn alle Replikate aktualisiertwurden): Eventual Consistency
Bemerkung zu Consistency� Consistency hier anders definiert als im DB-Kontext (in ACID).
� Hier, generell um Konsistenz von Replikaten (Kopien) einzelnerDatenobjekte; dem Erzwingen bzw. nicht Erzwingen von garantierterSynchronisation.Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 35 / 44
MapReduce, NoSQL NoSQL
BASE
Basically Available
Soft State
Eventual Consistency
http:
//www.allthingsdistributed.com/2008/12/eventually_consistent.html
Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 36 / 44
MapReduce, NoSQL NoSQL
Veranschaulichung Inkonsistenz
� Client schickt Schreibanweisung an Manager� Dieser schickt Schreibanweisung an alle Replikate.� Zeitstempel (im einfachsten Fall) beschreibt Zeitpunkt des Schreibens.� Und schickt Acknowledgement zuruck an Client sobald garantiertW Replikas aktualisiert wurden.
Maschinen mit Replikas des Datenobjekts
Manager
Client
wri
te
Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 37 / 44
MapReduce, NoSQL NoSQL
Veranschaulichung Inkonsistenz (2)
� Client schickt Leseanweisung an Manager.� Dieser leitet Anweisung an R Replikas. D.h. von N existierenden
Replikaten werden R gelesen.� Antworten werden an Client weiter geleitet.
Maschinen mit Replikas des Datenobjekts
Manager
Client
read
Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 38 / 44
MapReduce, NoSQL NoSQL
Veranschaulichung Inkonsistenz: Read
� N = 7 Replikate� W = 3 und R = 2� Grun markiert sind Replikate, die die neue Version des Objekts
besitzen
Maschinen mit Replikas des Datenobjekts
Manager
Client
read
Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 39 / 44
MapReduce, NoSQL NoSQL
Veranschaulichung Inkonsistenz: Read - OK
� N = 7 Replikate� W = 3 und R = 2� Grun markiert sind Replikate, die die neue Version des Objekts
besitzen
Maschinen mit Replikas des Datenobjekts
Manager
Client
Alles super!
read
read read
Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 40 / 44
MapReduce, NoSQL NoSQL
Veranschaulichung Inkonsistenz: Read - OK
� N = 7 Replikate� W = 3 und R = 2� Grun markiert sind Replikate, die die neue Version des Objekts
besitzen
Maschinen mit Replikas des Datenobjekts
Manager
Client
Immer noch alles super!Zeitstempel (o.a.) bestimmt neueste Version.re
ad
read
read
Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 41 / 44
MapReduce, NoSQL NoSQL
Veranschaulichung Inkonsistenz: Read - Nicht Korrekt
� N = 7 Replikate� W = 3 und R = 2� Grun markiert sind Replikate, die die neue Version des Objekts
besitzen
Maschinen mit Replikas des Datenobjekts
Manager
Client
Alte Version gelesen!
read
read read
Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 42 / 44
MapReduce, NoSQL NoSQL
Eventual Consistency und Konfigurationen
Konfiguration: R +W > N
� In diesem Fall kann garantiert werden, dass immer die aktuelleVersion gelesen wird.
� Da sich die Mengen der aktualisierten Replikate und die derangefragten Replikate uberlappen mussen!
Konfiguration: R +W ≤ N
� In diesem Fall liegt Eventual Consistency vor.
Eventual Consistency
� Eventual (auf Deutsch: letztendlich) Consistency beschreibt, dassnach einer gewissen Zeit alle Replikate aktualisiert sind. Aber abdem Schreibvorgang bis zu diesem Zeitpunkt ist nicht garantiert, dassLesevorgange die zuvor geschriebene Version sehen.
Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 43 / 44
MapReduce, NoSQL NoSQL
Ausblick VL Distributed Data Management (DDM)
wwwlgis.informatik.uni-kl.de/cms/courses/
distributeddatamanagement/Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 44 / 44