Vom 5. bis 9. September 2022 findet die VLDB 2022 in Sydney, Australien, statt.
Das Forschungsergebnis der Infrastruktur von ByteDance „
ByteHTAP
: ByteDance’s
HTAP
System with High Data Freshness and Strong Data Consistency“ wurde von der VLDB 2022 angenommen und zu einem Vor-Ort-Bericht eingeladen.
Der vollständige Name der VLDB-
Konferenz
lautet „International Conference on Very Large Data Bases". Sie
ist eine der drei Top-Konferenzen (SIGMOD, VLDB,
ICDE
)
mit einer langen Geschichte im Datenbankbereich . Sie ist auch ein Echtzeit-Verbreitungsort für herausragende Forschungs- und Entwicklungsleistungen im Datenbankbereich, die die aktuelle Datenbankforschung widerspiegeln, die Spitzenrichtung der Branche, die neueste Technologie in der Branche und das Forschungs- und Entwicklungsniveau verschiedener Länder. Seit seiner Gründung im Jahr 1975 zieht VLDB jedes Jahr weltweit führende Forschungseinrichtungen an, um Manuskripte einzureichen, und hat extrem hohe Anforderungen an Systeminnovation, Integrität und experimentelles Design.
Der Kernbeitrag des Papiers
"
ByteHTAP
: ByteDance's
HTAP
System with High Data Freshness and Strong Data Consistency" stellt das HTAP-System mit hoher Datenaktualität und starker Datenkonsistenz vor, das von ByteDance für Geschäftsszenarien entwickelt wurde.
-
ByteHTAP verwendet eine unabhängige Engine und eine gemeinsam genutzte Speicherarchitektur, und sein modulares Systemdesign nutzt das vorhandene OLTP-System und OLAP-System von ByteDance vollständig aus.
-
ByteHTAP kann eine hohe Datenaktualität mit einer Latenzzeit von weniger als 1 Sekunde bereitstellen, was den Kunden viele neue Geschäftsmöglichkeiten bietet, und Kunden können auch unterschiedliche Schwellenwerte für die Datenaktualität entsprechend den Geschäftsanforderungen konfigurieren.
-
ByteHTAP bietet eine starke Datenkonsistenz durch den globalen Zeitstempel seiner OLTP- und OLAP-Systeme und befreit Entwickler davon, sich mit komplexen Datenkonsistenzproblemen im System befassen zu müssen.
-
ByteHTAP verwendet Flink als OLAP-Computing-Engine und führt einige wichtige Leistungsoptimierungen in Computing und Speicherung ein, wie z.
-
Der Artikel endet mit der Weitergabe der Lektionen und Best Practices von ByteDance bei der Entwicklung und Ausführung von ByteHTAP in der Produktion, einschließlich OLAP-übergreifender Datenbankabfragefunktionen, effizienter Datenimport und Flink-Entwicklungsverbesserungen.
Core-Computing-Engine Flink OLAP
Als OLAP-Computing-Engine des ByteHTAP-Systems wurde Flink in mehreren Unternehmen innerhalb des Unternehmens eingesetzt. Das technische Team von ByteDance Flink hat viele tiefgreifende Optimierungen für die Flink-Engine vorgenommen, um OLAP-Computing zu unterstützen und die OLAP-Computing-Leistung von Flink effektiv zu verbessern. Derzeit erreicht in einem Cluster mit 1600 Kernen die QPS von 128 gleichzeitigen einfachen Abfrageplanungen mehr als 1000 bei einer kleinen Datenmenge und die QPS von komplexen Abfrageplanungen erreicht mehr als 100; die Latenz von 1000 gleichzeitigen WordCount-Abfragen beträgt etwa 100ms. Als nächstes werden wir uns auf https://issues.apache.org/jira/browse/FLINK-25318 konzentrieren und nach und nach interne Optimierungen in die Community einbringen.
-
Abfrageoptimierer. Unterstützt Pushdown von Operatoren wie TopN und Aggregate, unterstützt die parallele Konstruktion von Plan Cache und DAG, unterstützt Cached Catalog. Die Leistung des TPC-DS SF100 wird um mehr als 20 % verbessert.
-
Optimierung der Abfrageausführung. Unterstützung von ClassLoader-Multiplexing und Cross-Job-Codegen-Cache, Reduzierung der CPU-Auslastung und Metaspace-Belegung in der Ausführungsphase, Implementierung von Laufzeitfiltern zur Optimierung der Join-Rechenleistung, asynchrones Datenlesen und Nebenläufigkeitsoptimierung usw.
-
Ressourcenmanagement und Auftragsplanung. Vereinfachen Sie den Abfrage-Ressourcenanwendungs- und -freigabeprozess, optimieren Sie die Interaktion zwischen JobMaster- und ResourceManager/TaskManager-Knoten, realisieren Sie die Job-Ressourcenzuweisung gemäß der TaskManager-Granularität und verbessern Sie die Leistung der Ressourcenanwendung, unterstützen Sie die Batch-Bereitstellung von Rechenaufgaben, optimieren Sie die Bereitstellungsstruktur und Serialisierung/Deserialisierung, und Verbesserung der Bereitstellungsleistung von Rechenaufgaben.
-
Abfrageergebnisverwaltung. Die Abfrage wird über das Websocket-Protokoll übermittelt, und das Berechnungsergebnis wird vom Pull-Modus zum Push-Modus optimiert, wodurch das zeitraubende Warten auf die Pull-Abfrage vermieden wird; durch die Wiederverwendung der Dispatcher-Verbindung werden unnötige Verbindungen und Interaktionen reduziert durch den JobMaster und den TaskManager, wenn die Abfrage- und Berechnungstasks initialisiert werden, reduzieren die Abfragelatenz.
-
Optimierung der Speicherverwaltung. Optimieren Sie die Speicheranwendung und das Release-Management von MemoryManager und NetworkBufferPool, reduzieren Sie die Anzahl der Speicherinteraktionen und Sperren beim Starten und Stoppen von Rechenaufgaben, reduzieren Sie unnötige Metriken, erhöhen Sie parallele GC und andere Optimierungen, um die FGC/YGC von JobManager/TaskManager-Knoten zu reduzieren, und Verbessern Sie die Leistung der Abfrageausführung und die Stabilität des Produktionsclusters.
-
Optimierung des Netzwerkmanagements. Realisieren Sie das Multiplexing von Multi-Job-Netzwerkverbindungen von TaskManager, optimieren Sie den Interaktionsprozess der Partitionsanforderung von Upstream- und Downstream-Computing-Tasks, reduzieren Sie den häufigen Initialisierungsverlust der Netzwerkschicht und die Anzahl von Upstream- und Downstream-Computing-Task-Nachrichten und verbessern Sie die Initialisierung Ausführung von Rechenaufgaben.
-
Verwaltung der Ressourcenisolation. Es unterstützt die Verwaltung von Ressourcengruppen gemäß der TaskManager-Dimension und realisiert die physische Isolierung von Abfrageaufträgen zwischen mehreren Mandanten, realisiert eine feinkörnige Planung und Ausführung von Rechenaufgaben im TaskManager und unterstützt die Prioritätsstrategie kleiner Abfragen unter Hochlastbedingungen.
Best Practices für ByteDance
Innerhalb von ByteDance unterstützt ByteHTAP derzeit Benutzerwachstum, E-Commerce, Xingfuli, Feishu und andere Unternehmen mit insgesamt 11 Clustern mit über 6000 Core-AP-Ressourcen und über 50 w Abfragen pro Tag.
Flink OLAP, die Core-Computing-Engine von ByteHTAP, bringt derzeit nach und nach das kommerzielle Produkt Volcano Engine auf den Markt – die
Flink-Version von Streaming Computing
. Als Unified-Computing-Engine auf Unternehmensebene, die die internen Cloud-nativen Big-Data-Lösungen von ByteDance integriert und optimiert, verfügt die Flink-Version des Streaming-Computing über Funktionen wie sofort einsatzbereite, flexible Bereitstellung, Stream-Batch-Integration und OLAP-Multi -modales Rechnen.
Klicken Sie hier, um das Originalpapier
herunterzuladen
{{o.name}}
{{m.name}}