/Yahoos Big-Data-Serving-Engine wird Open-Source-Projekt

Yahoos Big-Data-Serving-Engine wird Open-Source-Projekt

Der Name mutet an das Gefährt rasanter Pizzaboten an. Vespa ist ein zentrales Element von Yahoos Big-Data-Infrastruktur, das Oath nun veröffentlicht hat. Die Software dient dem effizienten Verarbeiten und Bereitstellen großer Datenmengen.

Nachdem Yahoo wesentlich an der Entwicklung von Hadoop beteiligt war, veröffentlicht das inzwischen unter dem Dach der Verizon-Tochter Oath verwaltete Unternehmen einen wichtigen Bestandteil der hauseigenen Big-Data-Software als Open Soruce: Vespa verarbeitet die Daten und verteilt sie über den Server an Endanwender.

Die Motivation beim Entwickeln war für Yahoo, Daten aus Anwendungen, die Suchergebnisse, personalisierte Inhalte oder Empfehlungen verwenden, so schnell wie möglich an Nutzer zu liefern. Als Beispiel nennt der Blogbeitrag die Bearbeitung von Suchanfragen: Dazu muss die Software zunächst die passenden Einträge finden, anschließend mithilfe eines Relevanz- beziehungsweise Empfehlungsmodells bewerten, wie gut der jeweilige Eintrag zur Anfrage passt. Schließlich muss die Anwendung noch Doubletten entfernen und Navigationshilfen hinzufügen, bevor sie die Ergebnisse an den Endanwender ausliefert.

Da die Schritte auf die jeweilige Anfrage und Nutzer zugeschnitten sind, kann die Verarbeitung nicht im Vorfeld geschehen, sondern muss nach dem Anstoßen der Suche erfolgen – so schnell wie möglich, um die Nutzer nicht zu verlieren. Mit Vespa baut Oath Anwendungen, die SQL-ähnliche Anfragen und Textsuche durchführen und sich um die Organisation der Ergebnisse kümmern. Für das Ranking kommen entweder von Menschen oder Machine-Learning-Algorithmen (ML) erstellte Relevanzmodelle zum Einsatz.

Vespa setzt auf ein Push-Modell: Die Software verteilt die Berechnungen über ein Cluster, das auf einen Master als potenziellen Flaschenhals verzichtet. Statt die Daten zur Verarbeitung zu laden, pusht Vespa die Berechnungen zu den Knoten, auf denen die Daten liegen. Es verwaltet Cluster, die im Hintergrund die Daten verteilen, um Ausfällen vorzubeugen und auf ein erhöhtes Anfragevolumen vorbereitet zu sein.


Die Architektur von Vespa zur Verarbeitung der HTTP Requests

Die Architektur von Vespa zur Verarbeitung der HTTP Requests

(Bild: Oath
)

Eine Tabelle auf der Vespa-Website vergleicht die Stärken der Software mit Elasticsearch und relationalen Datenbanken und spricht dabei von einem “Vergleich von Äpfeln mit Orangen”. Danach liegen die Stärken von Vespa unter anderem darin, dass die Software auf das Bereitstellen der Daten optimiert ist, ML-Ranking verwendet und sich live rekonfigurieren lässt. Für Analytics ist die Software dagegen nicht geeignet und bietet auch keine ACID-Transaktionen (Atomarität, Konsistenz, Isolation, Dauerhaftigkeit).

Oath verwendet Vespa intern unter anderem für Yahoo.com, Yahoo News, Yahoo Sports, Yahoo Finance, Yahoo Gemini sowie Flickr und verarbeitet damit laut eigenen Angaben mehrere Milliarden Anfragen täglich, die jeweils Milliarden von Dokumenten durchsuchen. Die Engine blickt insgesamt auf eine lange Geschichte und geht noch auf die Suchmaschine AlltheWeb zurück, die Yahoo 2004 übernommen hatte. In den letzten Jahren hat das Team aber den Großteil komplett neu geschrieben und dabei an aktuelle Software-Stacks angepasst.

Vespa lässt sich sowohl im eigenen Rechenzentrum als auch bei Cloud-Anbietern verwenden. Die Software ist unter anderem als Docker Image und rpm-Package verfügbar, außerdem haben die Macher Anleitungen zum Einsatz vom Laptop bis zum AWS-Cluster veröffentlicht.

Weitere Details lassen sich dem Blogbeitrag und der Vespa-Site entnehmen. Der Quellcode ist auf GitHub verfügbar. Auf der Vespa-Site findet sich eine Starthilfe sowie eine ausführliche Dokumentation.


(rme)