Baidu restrukturiert die Feed Stream In-Memory-Datenbank

Mit persistentem Intel® Optane™ DC Speicher erreicht Baidus Feed-Cube geringere Gesamtbetriebskosten (TCO), ohne seinen Leistungsvorteil aufzugeben.

Aufgrund der umfassenden Abdeckung des mobilen Internets heutzutage möchte alle ihre Lieblings-Nachrichtensendung, kurze Videos und Werbeinformationen nutzen, indem sie einfach ihre Handys antippen. Daher werden die Feed Stream Services, die aggregierte Informationen und auf Benutzer abgestimmte Inhalte liefern, für Internetunternehmen ein zunehmend wichtigeres Werkzeug, um Kunden an sich zu binden. Als ein führendes globales Unternehmen in den bereichen Internet will Baidu* die Hightech-Firma werden, die ihre Benutzer am besten kennt. Seine Feed Stream Services, die bereits vor einigen Jahren entwickelt und eingesetzt wurden, sind zu einem der zentralen Wachstumsfaktoren des Unternehmens geworden.

Um Benutzern effizientere und einfachere Feed Stream Services bieten zu können, hat Baidu seine technischen Stärken in den Bereichen Suchmaschinen und künstliche Intelligenz zur Entwicklung einer extrem effizienten zentralen In-Memory-Datenbank genutzt – Feed-Cube*. Feed-Cube bietet Datenspeicher und Zugangsdienste mit hoher Nebenläufigkeit, großer Kapazität und hoher Leistung. In dem Maße, wie sich der Geschäftsbereich von Baidu erweitert, muss Feed-Cube auch mehr Arbeitsspeicher bereitstellen, um das explosive Datenwachstum zu unterstützen. Allerdings führen die hohen Kosten von Dynamic Random-Access Memory (DRAM) zu zunehmenden Druck auf die Gesamtbetriebskosten (TCO) für Arbeitsspeicher.

Um die TCO zu senken und gleichzeitig eine hervorragende Leistung zu gewährleisten, haben Baidu und Intel eine umfassende Zusammenarbeit begonnen, die persistenten Intel® Optane™ DC Speicher einführt und das zentrale Arbeitsszenario von Feed-Cube auf eine neue Arbeitsplattform verlegt, die darauf basiert. Baidus internen Testdaten zeigten, dass der auf persistentem Intel® Optane™ DC Speicher basierende Feed-Cube seinen Leistungsvorteil in einem stark parallelen Feed Stream-Geschäftszenario aufrechterhalten und die Kosten deutlich reduzieren kann. Das regte auch Baidu dazu an, die Machbarkeit und praktische Anwendung von persistentem Intel® Optane™ DC Speicher in kritischeren Anwendungszenarien außerhalb von Feed Stream zu überprüfen und zu testen.

„Die Feed Stream Services erstellen Benutzerprofile und bieten personalisierte Inhalte für Benutzer auf Grundlage ihrer Vorlieben. Das erfordert einen leistungsstarken Online-Speichersupport. Persistenter Intel® Optane™ DC Speicher hilft Feed-Cube, dem Kernmodul von Feed Stream Services, die Gesamtbetriebskosten deutlich zu senken und gleichzeitig eine hohe Nebenläufigkeit, hohe Kapazität und hohe Leistung zu gewährleisten.“ — Tao Wang, Chief Architect, Recommendation Technology Architecture, Baidu

Die Zukunft von Baidu Feed Stream Services

Das mobile Internet hat sich zu einem der wichtigsten Zugangspunkte für die Netzwerkverbindung entwickelt. Laut Statistik von CNNIC* (China Internet Network Information Center*), war der Anteil von Internetnutzern, der über Handys auf das Internet zugreifen, bis Ende 2018 in China auf 98,6 % gestiegen1 Benutzer von Smartphones neigen eher dazu, sich Informationen durch ein Wischen über den Bildschirm zu beschaffen, als durch traditionelle Textmethoden. Das führt zu einer steigenden Nachfrage für Feed Stream Services, die automatische Aggregation und präzise Informations-Feeds bieten.

Feed Stream ist ein Internetservice, der Inhalte aggregiert und sie kontinuierlich seinen Benutzern präsentiert. Das kann über Zeitachse, PageRank oder spezifische KI-Algorithmen erfolgen. Feed Stream Services können Benutzern mehr personalisierte Informationen liefern und helfen, irrelevante Daten zu vermeiden. Gleichzeitig können Werbetreibende auf der Plattform bessere Marketing-Ergebnisse erzielen.

Abbildung 1: Feed Stream Services in Baidu Core Apps.

Da es Hunderte von Millionen von Benutzern hat, muss Baidu Millionen von parallel ausgeführten Diensten und eine geringere Latenz für die Datenverarbeitung berücksichtigen, wenn es sein Feed Stream Servicesystem entwickelt. Der entscheidende Faktor ist dabei der Aufbau seiner Datenspeicher- und Informationsabfragefähigkeiten. Um das zu optimieren, verwendet Baidu die fortgeschrittene In-Memory-Datenbank Feed-Cube, um eine wichtige Unterstützung für Datenspeicher und Informationsabfrage für die Feed Stream Services zu bieten.

Feed-Cube basiert auf Arbeitsspeicher und verwendet die Datenspeicherstruktur „Key-Value Pair“. Wie in Abbildung 2 gezeigt, werden Schlüssel und die Speicher-Offsetwerte der Dateien, in denen sich Schlüssel und Werte befinden, in Hash-Tabellen gespeichert, während die Werte selbst in einer anderen Datei getrennt gespeichert werden. Sowohl Hash-Tabellen als auch Datendateien werden in Arbeitsspeicher gespeichert. Aufgrund der hohen I/O-Kapazität des Arbeitsspeichers bietet Feed-Cube eine ausgezeichnete Lese- und Schreibleistung und extrem geringe Latenz.

Abbildung 2 Baidu Feed-Cube Arbeitsdiagramm.

Wenn die Frontend-Anwendung bestimmte Daten abfragen muss, greift sie ein oder mehrere Male auf die Hash-Tabelle zu, indem sie den Schlüsselwert abfragt, den Offset der Dateispeicherstelle erhält, an welcher der Wert sich befindet und schließlich die Datendatei aufruft, um den gewünschten Wert zu erhalten.

Obwohl der Baidu Feed-Cube auf der Grundlage von DRAM immer eine hervorragende Leistung in einer Umgebung mit hoher/großer Nebenläufigkeit (Millionen von Abfragen pro Sekunde) und massivem Datenspeicher (im Petabyte-Bereich) erzielt hat, muss er sich nun neuen Herausforderungen im Kontext der kontinuierlichen Erweiterung der Baidu Feed Stream Services stellen. Die Verwendung von kostspieligem DRAM zur Entwicklung eines großen Speicher-Pools führte zu ansteigenden Gesamtbetriebskosten für Baidu, während die begrenzte Kapazität von DRAM die Erweiterung der Rechenkapazität des Feed-Cube Streamings weiter einschränkt.

Verbesserung durch persistenten Intel® Optane™ DC Speicher

Als Reaktion auf diese Herausforderungen versuchte Baidu, NVM-Speichergeräte (Non-Volatile Memory) mit höherer Leistung, wie NVMe* SSDs zur Speicherung von Datendateien und Hash-Tabellen in Feed-Cube zu nutzen. Um die Systemleistung mit NVMe SSDs zu überprüfen, führte Baidu Vergleichstests mit zwei Feed-Cube Clusters auf der Basis von DRAM beziehungsweise NVMe SSD durch.

Die Testergebnisse zeigen, dass die folgenden drei zentralen Probleme erscheinen, wenn Feed-Cube mit NVMe SSD im Vergleich zu DRAM betrieben wird:

  • In einem Szenario, in dem eine große parallele Anwendung verwendet wurde, erlebte NVMe SSD eine deutliche Verzögerung in der Warteschlange und die 100 % QoS-Garantie konnte bei einer hohen Warteschlangentiefe (z. B. größer als 1.024) nicht erreicht werden;
  • In einem Szenario, in dem ein Datenspeicher mit großer Kapazität getestet wurde, war die marginale Wirkung der NVMe SSD gering. Je mehr Daten verwendet wurden, desto länger wurde die Ausführungszeit der Abfrage, und der Auslastungsrad des Datenspeichers wurde auch niedriger;
  • Es gibt noch immer eine große Lücke zwischen der I/O Geschwindigkeit der NVMe SSD und der des DRAMs. Daher ist es immer noch erforderlich, eine große Menge von DRAM als Cache im System einzusetzen, um die Leistung zu gewährleisten.

Der persistente Intel Optane DC Speicher bietet eine neue Möglichkeit, diese Probleme zu lösen. Im Vergleich zu SSDs hat dieses neue Produkt, das Arbeits- und Datenspeicherarchitektur revolutioniert, eine höhere Lese- und Schreibleistung, niedrigere Latenz und höhere Dauerbelastbarkeit. Zudem verfügt es über umfassende Anwendungsvorteile in einer Multibenutzerumgebung mit hoher Nebenläufigkeit und hoher Kapazität.

Angesichts dieser Tatsache führte Baidu zunächst persistenten Intel Optane DC Speicher zur Speicherung der Datendateien in Feed-Cube ein, während es immer noch DRAM zur Speicherung der Hash-Tabellen verwendete. Der Zweck dieser Hybridkonfiguration bestand darin, die Leistung von persistentem Intel Optane DC Speicher in Feed-Cube zu überprüfen, während gleichzeitig die Auswirkung auf die Leistung von Feed-Cube minimiert wurde. Dies wurde dadurch erreicht, dass der Arbeitsspeicher für die Datendateien zuerst ersetzt wurde, da die Anzahl der Lesezugriffe von Feed-Cube auf die Hash-Tabellen viel höher ist als das Lesen von Datendateien, wenn Werte abgefragt werden.

Um zu ermöglichen, dass Intel Optane DC Speicher erfolgreich bei Feed-Cube eingesetzt wurde, führten Baidu und Intel eine umfassende Optimierung der System-Hardware, des Betriebssystems, der Kerne und anderer Komponenten durch. Beide Parteien implementierten Feed-Cube auf einer Plattform, die auf skalierbaren Intel® Xeon® Prozessoren der 2. Generation aufgebaut war, die nicht nur eine starke Rechenleistung bieten, sondern auch gut zum persistenten Intel Optane DC Arbeitsspeicher passen. Zweitens hat Intel einen Treiber eingeführt, der persistenten Intel Optane DC Speicher im BIOS des Servers gemäß den Feed-Cube Anwendungsanforderungen unterstützt und hat entsprechende Patches der Basis von Baidus selbstenwickeltem Linux* Kernel 4x zur Verfügung gestellt, um das Leistungspotenzial der neuen Hardware voll zu nutzen.

Nach Abschluss dieser Reihe von Optimierungen hat Baidu einen Vergleichstest zwischen der Konfiguration mit ausschließlich DRAM und der Hybridkonfiguration durchgeführt, um einen parallelen Zugriff in großem Umfang zu simulieren, der in echten Fällen vorkommen kann. Im Test wurde eine Einstellung von 200.000 QPS (Queries Per Second) verwendet, wobei 100 Sätze von Key-Value-Paare pro Zugriff abgefragt wurden und daher der Gesamtdruck auf das System bei 20 Millionen lag. Die Testergebnisse finden sich in Abbildung 3 und Tabelle 1.

Abbildung 3 und Tabelle 1. Vergleich der Testergebnisse zwischen Feed-Cube, das nur mit DRAM ausgeführt wird und in der Hybridkonfiguration mit DRAM + persistenten Intel Optane DC Speicher2

Durch Verwendung der Hybridkonfiguration hat Feed-Cube eine um nur etwa 24 % (30 Millisekunden) höhere durchschnittliche Zugriffszeit unter dem Druck von 20 Millionen gleichzeitigen Zugriffen2 und die CPU-Auslastungsrate steigt um 7 %2, was bedeutet, dass die Leistungsschwankungen für Baidu innerhalb akzeptabler Grenzen liegen. Gleichzeitig sinkt die Single-Server-DRAM-Nutzung um mehr als die Hälfte, was zweifellos die Kosten für die Datenspeicherkapazität von Feed-Cube im Petabyte-Bereich reduzieren wird.

Wie in Abbildung 4 gezeigt, führte der Erfolg der oben genannten Hybridkonfiguration Baidu dazu, die Konfiguration mit nur dem persistenten Intel Optane DC Speicher zu weiter zu testen. Allerdings trat dabei ein besonderes Problem auf – die Hash-Tabellen in DRAM nutzen in der Regel Speicherzuordnungsbefehle wie malloc/free. Daher sind neue Befehle nach der Einführung von persistenten Intel Optane DC Speicher erforderlich. Daher hat Baidu eine selbst entwickelte Bibliothek für die Speicherzuordnung verwendet, die auf der Libmemkind-Library* basiert, um dadurch die Speichernutzung zu verbessern und Speicherzuordnungsfähigkeiten zu bieten.

Abbildung 4 Baidu Feed-Cube Speicherhardware-Änderungspfad.

Nachdem Baidu Feed-Cube nur mit persistentem Intel Optane DC Speicher entwickelt hatte, testete es auch dessen Leistung und Ressourcenverbrauch. Wie in Abbildung 5 gezeigt, wurde der Zugriffsdruck von 500.000 Abfragen pro Sekunde (QPS) als Beispiel verwendet. Das Testergebnis zeigt, dass die durchschnittliche Latenz für die Konfiguration nur mit persistentem Intel Optane DC Speicher etwa 9,66 % höher ist als für die Konfiguration mit nur DRAM.2 Die Leistungsschwankungen sind in einem für Baidu akzeptablen Bereich.

Abbildung 5: Vergleich der Verarbeitungslatenz in verschiedenen Konfigurationen.

Überprüfung des Wertes der Intel® Optane™ Technik in weiteren Anwendungs-Szenarien

Während der Verifizierung und Überprüfung in Bezug auf die Feed Stream Services untersuchte Baidu auch die Durchführbarkeit und Optionen für die Nutzung von persistentem Intel Optane DC Speicher in vielen anderen Geschäftsszenarien.

Beispielsweise war es im Falle der Fehlerwiederherstellung eines zentralen Unternehmensmodul-Systems, das ursprünglich mit DRAM konfiguriert war, nötig, die Daten von den Backend-SSD/HDDs zu laden, um im Fall eines Stromausfalls mit Ausfallzeit etc. den Service wieder herzustellen. Dieser Prozess konnte bis zu 10 Minuten dauern und den Start und die Veröffentlichung der Services schwer beeinträchtigen. Allerdings wurde die Ladezeit dank der hohen Lese- und Schreibleistung und Nichtflüchtigkeit von persistentem Intel Optane DC Speicher jetzt auf nur wenige Sekunden reduziert.2

Die Kombination von persistentem Intel Optane DC Speicher mit hoher Kapazität und desr skalierbaren Intel Xeon Prozessors der 2. Generation mit hohem Arbeitsspeicher hilft Baidu, die Speicherdichte pro Gerät zu verbessern und gleichzeitig die TCO der Redis* In-Memory-Datenbank und der dezentralen In-Memory-Rechenengine Spark* deutlich zu senken. Beim Einsatz in verschiedenen wichtigen Geschäftsbereichen verwendet Stark auf DRAM und örtlichen/cloudbasierten HDDs aufbauenden Datenspeicher. Wenn das System Daten verarbeitet wird, müssen die Daten von den örtlichen/cloudbasierten HDDs in DRAM gelesen werden. Allerdings wurde aufgrund der steigenden Anforderungen an die Rechenleistung die Datenbewegung zwischen örtlichen/cloudbasierten HDDs und DRAM zu einem Engpass. Um dies zu lösen, plant Baidu, dem Spark-System persistenten Intel Optane DC Speicher hinzuzufügen und so die Datendichte pro Gerät im System deutlich zu steigern.

In diesen Szenarien ist deutlih erkennbar, dass der Speicher mit hoher Dichte und die Warmstartfunktionen des persistenten Intel Optane DC Speichers Beiträge zur kontinuierlichen Innovation und Entwicklung von „Function as a Service“ (FaaS) bei Baidu leisten. Als wichtiger Teil künftiger Cloud-Dienste basiert FaaS auf dem „serverlosen” Funktions-Framework. Sein kurzer Lebenszyklus (selbst nur wenige Sekunden) erfordert höhere Startgeschwindigkeit und mehr Arbeitsspeicher. Baidus Experiment mit FaaS hat bereits Vorteile in Bezug auf die Bootgeschwindigkeit und das TCO mithilfe von persistentem Intel Optane DC Speicher erzielt.

Ein Blick in die Zukunft

In Zukunft werden Baidu und Intel einen tiefgreifenderen technischen Austausch durchführen und gemeinsam an einer Reihe fortgeschrittener Produkte und Technologien arbeiten, darunter persistentem Intel Optane DC Speicher und skalierbaren Intel Xeon Prozessoren der 2. Generation. Baidu und Intel werden zusammenarbeiten, damit diese Produkte und Technologien einen zunehmend wichtigen Beitrag bei wachsenden zentralen Internet-Geschäftsszenarien sowie kritischen Anwendungen und Diensten spielen können. Die vertiefte Zusammenarbeit zwischen Baidu und Intel wird Baidu helfen, ein vielfältigeres und attraktiveres Benutzererlebnis zu bieten.

Vorteile der von Baidu eingesetzten Lösung

  • Die Konfiguration von Feed-Cube, das Kernmodul der Feed Stream Services, wechselt von reinem DRAM zu einem Hybridmodus, der sowohl DRAM als auch persistentem Intel Optane DC Speicher verwendet, und schließlich zu einer Konfiguration mit ausschließlich persistentem Intel Optane DC Speicher. Der Leistung und der Ressourcenverbrauch dieser Änderungen unter dem Druck eines großen gleichzeitigen Zugriffs liegen in Einklang mit den Erwartungen von Baidu. und Tests zeigen, dass dies die Feed Stream Services bei starken Datenzugriff voll unterstützt.
  • Während Feed-Cube allmählich von reinem DRAM zu einer Konfiguration übergeht, die nur auf persistentem Intel Optane DC Speicher basiert, sinken auch die Baukosten für Systeme, sodass Baidu die Gesamtbestriebskosten reduzieren kann.

Mehr über zugehörige Intel® Produkte

Skalierbare Intel® Xeon® Prozessorreihe

Mit der skalierbaren Intel® Xeon® Plattform lassen sich nutzbringende Erkenntnisse einfacher gewinnen. Darüber hinaus bietet die Plattform hardwarebasierte Sicherheit und ermöglicht die dynamische Bereitstellung von Diensten.

Weitere Infos

Persistenter Intel® Optane™ DC Speicher

Profitieren Sie von mehr umsetzbaren Erkenntnissen aus den Daten - von der Cloud und Datenbanken über In-Memory-Analysen bis hin zu Netzwerken zur Bereitstellung von Inhalten.

Weitere Infos

Hinweise und Disclaimer

Durch Intel® Technik ermöglichte Funktionsmerkmale und Vorteile hängen von der Systemkonfiguration ab und können entsprechend geeignete Hardware, Software oder die Aktivierung von Diensten erfordern. Die Leistungsmerkmale variieren je nach Systemkonfiguration. Kein Computersystem bietet absolute Sicherheit. Informieren Sie sich beim Systemhersteller oder Einzelhändler oder auf https://www.intel.de. In Leistungstests verwendete Software und Workloads können speziell für die Leistungseigenschaften von Intel® Mikroprozessoren optimiert worden sein. Leistungstests wie SYSmark und MobileMark werden mit spezifischen Computersystemen, Komponenten, Softwareprogrammen, Operationen und Funktionen durchgeführt. Jede Veränderung bei einem dieser Faktoren kann abweichende Ergebnisse zur Folge haben. Für eine umfassende Bewertung Ihrer vorgesehenen Anschaffung, auch im Hinblick auf die Leistung des betreffenden Produkts in Verbindung mit anderen Produkten, sollten Sie zusätzliche Informationen und Leistungstests heranziehen.Ausführlichere Informationen finden Sie unter https://www.intel.de/benchmarks. Die Leistungsergebnisse basieren auf Tests, die zum Zeitpunkt, der in den Konfigurationen angegeben ist, durchgeführt wurden und berücksichtigen möglicherweise nicht alle öffentlich verfügbaren Sicherheitsupdates. Weitere Einzelheiten finden Sie in den veröffentlichten Konfigurationsdaten. Kein Produkt und keine Komponente bieten absolute Sicherheit. // Die beschriebenen Kostensenkungsszenarien sind als Beispiele dafür gedacht, wie ein bestimmtes Produkt mit Intel®-Technik unter den genannten Umständen und in der angegebenen Konfiguration zukünftige Kosten beeinflussen und Einsparungen ermöglichen kann. Die Umstände unterscheiden sich von Fall zu Fall. Intel übernimmt keine Gewähr für Kosten oder Kostensenkungen. // Intel hat keinen Einfluss auf und keine Aufsicht über die Benchmarkdaten Dritter oder die Websites, auf die in diesem Dokument Bezug genommen wird. Besuchen Sie die genannten Websites, um sich davon zu überzeugen, dass die angeführten Benchmarkdaten zutreffen. // Bei einigen Tests wurden die Ergebnisse unter Verwendung interner Analysen oder Architektursimulationen bzw. -modellen von Intel geschätzt oder nachempfunden. Sie dienen nur informatorischen Zwecken. Unterschiede in der Hardware, Software oder Konfiguration des Systems können die tatsächliche Leistung beeinflussen.

Produkt- und Leistungsinformationen

1

Die angeführten Daten stammen aus dem 43. (Bericht) „Statistical report on internet development in China" herausgegeben vom CNNIC (China Internet Network Information Center).

2

Die Daten wurden aus Baidus interner Verifizierung und Tests auf der Grundlage von skalierbaren Intel® Xeon® Prozessoren der 2. Generation und von persistentem Intel® Optane™ DC Speicher entnommen. Für weitere Informationen zu diesen Tests kontaktieren Sie bitte Baidu.