Percolator Large-scale Incremental Processing Using Distributed Transactions and Notifications Daniel Peng and Frank Dabek 1
Ausgangslage 10 12 10 16 10 9 Webseiten Byte Daten Updates/Tag 2
MapReduce Batch-Job über gesamte Daten Ein Schritt nach dem anderen 3
Aktualität ist wichtig Quelle: http://commons.wikimedia.org/ 4
Benötigt Verwaltung großer Datenmengen Random-Access Nebenläufigkeit 5
Bigtable Quelle: Chang, Fay, et al. "Bigtable: A distributed storage system for structured data." ACM Transactions on Computer Systems (TOCS) 26.2 (2008): 4. 6
Percolator-Features Multi-Row-Transaktionen ACID-Transaktionen Snapshot Isolation Observer 7
Observer Ausgelöst duch eine Änderung an der beobachteten Tabelle Observer lösen weitere Observer aus 8
Percolator 9
Spezielle Spalten Spalte c:lock c:write c:data c:notify c:ack_o Verwendung Eine noch nicht committete Transaktion schreibt hier den Ort des primären Locks rein Speichert den Zeitstempel von committeten Daten Enthält die Daten Hinweis darauf, dass ein Observer ausgeführt werden sollte Observer O wurde ausgeführt. Enthält Zeitstemplel der letzten erfolgreichen Ausführung 10
Ablauf Phase 1 key bal:data bal:lock bal:write Bob $10 data @ 5 Joe $2 data @ 5 11
Ablauf Phase 1 key bal:data bal:lock bal:write Bob 7: $3 $10 7: I am primary 7: data @ 5 Joe $2 data @ 5 12
Ablauf Phase 1 key bal:data bal:lock bal:write Bob 7: $3 $10 7: I am primary 7: data @ 5 Joe 7: $9 $2 7: primary @ Bob.bal 7: data @ 5 13
Ablauf Phase 2 key bal:data bal:lock bal:write Bob 8: 7: $3 $10 8: 7: 8: data @ 7 7: data @ 5 Joe 7: $9 $2 7: primary @ Bob.bal 7: data @ 5 14
Ablauf Phase 2 key bal:data bal:lock bal:write Bob 8: 7: $3 $10 8: 7: 8: data @ 7 7: data @ 5 Joe 8: 7: $9 $2 8: 7: 8: data @ 7 7: data @ 5 15
Abgeschlossene Transaktion key bal:data bal:lock bal:write Bob 8: 7: $3 $10 8: 7: 8: data @ 7 7: data @ 5 Joe 8: 7: $9 $2 8: 7: 8: data @ 7 7: data @ 5 16
Fehlerbehandlung Roll-Forward Nach Commit Sekundäre Locks durch Writes ersetzen Roll-Back Vor Commit Locks löschen 17
Änderungen Finden Worker scannen notify-spalte Pro Änderung wird maximal ein Observer erfolgreich durchlaufen 18
Platooning 19
Platooning 20
Performance MapReduce Percolator DBMS 21
Evaluation 22
Benchmark TPC-E Vergleich: IBM System x3850 X5 mit Microsoft SQL Server 2012 mit 8 Prozessoren / 80 Cores / 160 Threads 23
Fehlerrecovery 24
Abgrenzung Keine Query-Language Keine relationalen Operationen Mehr Aufwand wegen Nebenläufigkeit Nicht systemnah Aber: extrem Skalierbar 25
Erfolge Percolator 100x schneller im einbringen von Suchergebnissen Nur 10 Observer 26
Andere Systeme Earlybird: Twitters Echtzeitsuche Incoop: MapReduce für inkrementelle Berechnungen 27
Quellen Peng, Daniel, and Frank Dabek. "Large-scale Incremental Processing Using Distributed Transactions and Notifications." OSDI. Vol. 10. 2010. Chang, Fay, et al. "Bigtable: A distributed storage system for structured data." ACM Transactions on Computer Systems (TOCS) 26.2 (2008): 4. Ghemawat, Sanjay, Howard Gobioff, and Shun-Tak Leung. "The Google file system." ACM SIGOPS Operating Systems Review. Vol. 37. No. 5. ACM, 2003. http://www.tpc.org/4063 (abgerufen am 12.11.2013) Busch, Michael, et al. "Earlybird: Real-time search at twitter." Data Engineering (ICDE), 2012 IEEE 28th International Conference on. IEEE, 2012. Bhatotia, Pramod, et al. "Incoop: MapReduce for incremental computations." Proceedings of the 2nd ACM Symposium on Cloud Computing. ACM, 2011. 28
Vergleichbarkeit? Ressourcenverbrauch DBMS > MapReduce > Percolator Latenz DBMS > Percolator > MapReduce Datenmenge MapReduce Percolator > DBMS 29