Im Laufe der letzten Jahrzehnte haben sich die Datenbanken und Informationsprüfungen erheblich verändert.

Organisationen haben zunehmend komplexe Notwendigkeiten für die Untersuchung und Nutzung von Informationen – und zunehmend exklusive Anforderungen für die Durchführung von Untersuchungen.

Das Gedächtnis ist billig geworden, was eine andere Anordnung von Hinrichtungsverfahren ermöglicht, die von einer Untersuchung im Gedächtnis abhängig ist.

CPUs und GPUs wurden in der Ausführung erweitert, haben jedoch zusätzlich Fortschritte gemacht, um die Handhabungsinformationen parallel zu verbessern

Es sind neue Arten von Datenbanken für verschiedene Anwendungsfälle entstanden, jede mit ihrer eigenen spezifischen Art, Informationen abzulegen und zu bestellen. Da z.B. echte Gegenstände einfacher zu sprechen sind als verschiedene nivellierte und festgelegte Informationsstrukturen, sind JSON- und Berichtsdatenbanken berühmt geworden.

Neue Lehrer sind hinzugekommen, darunter Informationsdesign und Informationswissenschaft, beide mit vielen neuen Geräten, um explizite wissenschaftliche Ziele zu erreichen.

Kolumnenartige Informationsdarstellungen sind zum Standard für diagnostische Restbelastungen geworden, da sie sensationelle Reizpunkte hinsichtlich Schnelligkeit und Können bieten.

Angesichts dieser Muster erhob sich eine unverkennbare offene Tür für eine Standard-In-Memory-Darstellung, die jeder Motor nutzen kann; eine, die gegenwärtig ist und die alle neuen Ausstellungsmethoden nutzt, die derzeit zugänglich sind; und eine, die den Informationsaustausch über die Etappen hinweg konsistent und kompetent macht. Dies ist das Ziel von Apache Bolt. Machen Sie sich mit den Ursachen und der Geschichte von Apache Bolt vertraut.

Um eine Beziehung zu nutzen, sollten Sie darüber nachdenken, sich mitten in einer Flucht vor der EU nach Europa hinauszuwagen. Um 5 Nationen in 7 Tagen zu besuchen, könnten Sie sich auf die Art und Weise verlassen, wie Sie ein paar Stunden am Rande für die Visakontrolle aufwenden würden, und Sie würden einen Teil Ihres Geldes im Geldhandel verlieren. Auf diese Weise funktioniert die Arbeit mit Informationen im Speicher ohne Bolt: Es gibt enorme Verschwendungsaspekte bei der Serialisierung und De-serialisierung von Informationsstrukturen, und es wird ständig ein Duplikat erstellt, wodurch wertvolle Speicher- und CPU-Ressourcen verschwendet werden. Interessanterweise ähnelt Bolt einem Besuch in Europa nach der EU und dem Euro: Man hält sich nicht am Rande auf, und ein Geld wird überall eingesetzt.

Bolt konsolidiert die Vorteile säulenförmiger Informationsstrukturen mit In-Memory-Figuren. Es bietet die Präsentationsvorteile dieser hochmodernen Strategien und gleichzeitig die Anpassungsfähigkeit komplexer Informationen und dynamischer Gliederungen. Darüber hinaus tut es das Ganze in einer quelloffenen und institutionalisierten Weise.

Apache Bolt Center-Verbesserungen

Apache Bolt selbst ist kein Kapazitäts- oder Ausführungsmotor. Er soll als gegenseitige Einrichtung für die begleitenden Arten von Rahmenwerken ausfüllen:

SQL-Ausführungsmotoren (z. B. Drill und Impala)

Informationsprüfungsrahmen, (zum Beispiel Pandas und Sparkle)

Spilling- und Queueing-Frameworks (zum Beispiel Kafka und Tempest)

Kapazitätsrahmen, (z.B. Parkett, Kudu, Kassandra und HBase)

Bolt besteht aus verschiedenen zugehörigen Fortschritten, die in Kapazitäts- und Ausführungsmotoren eingebaut werden sollen. Die Schlüsselteile von Bolt umfassen:

Characterized Information Type Sets, die sowohl SQL- als auch JSON-Typen enthalten, z. B. Int, BigInt, Dezimal, VarChar, Guide, Struktur und Exponat.

Sanktionierte Darstellungen: Spaltenartige In-Memory-Darstellungen von Informationen zur Unterstützung einer beliebig verwirrenden Datensatzstruktur, die auf den charakterisierten Informationstypen basiert.

Regelmäßige Informationsstrukturen: Achten Sie auf Informationsstrukturen für Freunde und Bekannte, einschließlich Pick-Records, Raute-Tabellen und Linien.

Zwischen Prozedur-Korrespondenz, die innerhalb von Shared Memory, TCP/IP und RDMA durchgeführt wird.

Informationsbibliotheken zum Durchsehen und Zusammenstellen säulenförmiger Informationen in verschiedenen Dialekten, einschließlich Java, C++, Python, Ruby, Rust, Go und JavaScript.

Pipeline- und SIMD-Berechnungen für verschiedene Aktivitäten einschließlich Bitmap-Bestimmung, Hashing, Sieben, Schaufeln, Ordnen und Koordinieren.

Columnar In-Memory Pressure einschließlich einer Reihe von Methoden zum Aufbau von Gedächtnisleistungen.

Memory Tirelessness Apparate für momentanen Fleiß durch nicht unvorhersehbaren Speicher, SSD oder HDD.

Alles in allem steht Bolt mit keiner dieser Aktivitäten in Konkurrenz. Sein zentrales Ziel ist es, in jeder einzelnen von ihnen zu arbeiten, um eine erweiterte Ausführung und eine fundiertere Interoperabilität zu erreichen. Um ehrlich zu sein, wird Bolt von den leitenden Designern einer beträchtlichen Anzahl dieser Unternehmen bearbeitet.

Ausführung

Je schneller ein Kunde eine Lösung finden kann, desto schneller kann er verschiedene Anfragen stellen. Vorgesetzter bringt mehr Prüfung, mehr Anwendungsfälle und Weiterentwicklung. Da CPUs immer schneller und moderner werden, besteht eine der Hauptschwierigkeiten darin, sicherzustellen, dass bei der Vorbereitung von Innovationen CPUs effektiv genutzt werden.

Bolt ist ausdrücklich zur Verstärkung vorgesehen:

Bereich speichern: Speicherkissen sind konservative Darstellungen von Informationen, die für heutige CPUs bestimmt sind. Die Strukturen zeichnen sich durch geradlinige, koordinierende normale Lesedesigns aus. Das impliziert, dass Informationen vergleichbarer Art im Speicher ko-situiert sind. Dadurch wird das Speicher-Prefetching immer leistungsfähiger, wodurch die CPU aufgrund von Reservefehlern und prinzipiellen Speicherzugriffen immer langsamer wird. Diese CPU-produktiven Informationsstrukturen und Zugriffsdesigns erstrecken sich sowohl auf soziale Strukturen auf konventioneller Ebene als auch auf die heutigen komplexen Informationsstrukturen.

Pipelining: Ausführungsentwürfe sollen die superskalare und Pipeline-Natur der derzeitigen Prozessoren ausnutzen. Dies wird durch die Beschränkung von In-Circle Guidance Checks und der kreisförmigen Vielfältigkeit der Natur des Kreises erreicht. Diese engen Kreise führen zu einer besseren Ausführung und weniger Enttäuschungen bei den Zweigprognosen.

SIMD Wegbeschreibung: Die SIMD-Richtlinien (Single Guidance Numerous Information) ermöglichen es, dass Ausführungsberechnungen umso produktiver arbeiten, je mehr verschiedene Aktivitäten in einem einzelnen Taktzyklus ausgeführt werden. Bolt ordnet die Informationen so an, dass sie für SIMD-Aktivitäten geeignet sind.

Reserve-Region, Pipelining und superskalare Aktivitäten führen gewöhnlich zu einer 10-100-fach schnelleren Ausführung. Da zahlreiche vorliegende logische Restaufgaben CPU-gebunden sind, verwandeln sich diese Vorteile in emotionale Ausführungsgewinne für den Endkunden. Hier sind einige Modelle:

PySpark: IBM schätzte eine 53-fache Beschleunigung der Informationsaufbereitung durch Python und Sparkle im Zuge der Unterstützung von Bolt in PySpark

Parkett und C++: Hinzufügen von Informationen zu Parkett aus C++ mit bis zu 4 GB/s

Pandas: Den Pandas bis zu 10 GB/s etwas mehr hinzufügen

Bolt fördert zusätzlich den Austausch von Informationen ohne Duplikate. Da Bolt in jedem Rahmen als die innere Darstellung in jedem Rahmen umarmt wird, kann ein Rahmen Informationen unkompliziert an den nächsten Rahmen zur Nutzung weitergeben. Wenn sich diese Rahmen auf einem ähnlichen Knotenpunkt befinden, kann das oben abgebildete Duplikat mit Hilfe des gemeinsamen Speichers ebenfalls umgangen werden. Dies bedeutet im Großen und Ganzen, dass das Verschieben von Informationen zwischen zwei Frameworks keinen Overhead mit sich bringt.

Speicher-Produktivität

Die In-Memory-Ausführung ist außergewöhnlich, aber Erinnerung kann selten sein. Bolt soll unabhängig davon funktionieren, ob die Informationen nicht vollständig in den Speicher passen. Die zentrale Informationsstruktur umfasst Vektoren von Informationen und Sortimente dieser Vektoren (ebenfalls als Record-Clumps bezeichnet). Datensatz-Cluster haben regelmäßig eine Größe von 64KB-1MB, abhängig von der verbleibenden Belastung, und sind im Allgemeinen auf 2^16 Datensätze begrenzt. Dies verbessert die Speicherregion, macht aber darüber hinaus eine In-Memory-Registrierung auch unter speicherarmen Bedingungen denkbar.

Mit zahlreichen riesigen Informationsbündeln, die von 100 bis 1000 Servern reichen, müssen Frameworks die Möglichkeit haben, den gesamten Speicher einer Gruppe auszunutzen. Bolt soll die Kosten für das Verschieben von Informationen auf dem System begrenzen. Es verwendet Dissipate/ Assemble-Peruse und Composes und beinhaltet eine Null-Serialisierungs-/Deserialisierungskonfiguration, die eine Informationsentwicklung zwischen Hubs mit minimalem Aufwand ermöglicht. Bolt arbeitet zusätzlich legitim mit RDMA-kompatiblen Interconnects, um ein einsames Speichernetzwerk für größere In-Memory-Ressourcen zu schaffen.

Unterstützung von Programmiersprachen

Ein weiterer bedeutender Vorteil von Apache Bolt ist, neben der fundierteren Ausführung und Interoperabilität, die Chancengleichheit zwischen verschiedenen Programmierdialekten. Der konventionelle Informationsaustausch hängt von Abstimmungen auf IPC- und Programmierschnittstellenebene ab. Dies ist zwar regelmäßig unkompliziert, schadet jedoch der Ausführung, wenn die Sprache des Kunden nicht ganz mit der Sprache des Grundgerüsts übereinstimmt. Abhängig von der Sprache und der Anordnung der aktualisierten Berechnungen verursacht der Sprachwechsel den größten Teil der Bearbeitungszeit.

Apache Bolt unterstützt derzeit C, C++, Java, Javascript, Go, Python, Rust und Ruby.