Nel corso degli ultimi decenni, le banche dati e gli esami delle informazioni sono cambiati in modo significativo.

Le organizzazioni hanno necessità progressivamente complesse di investigare e utilizzare le informazioni – e progressivamente requisiti esclusivi per l’esecuzione delle indagini.

La memoria è diventata a buon mercato, consentendo un’altra disposizione delle procedure di esecuzione che dipendono dall’esame in memoria.

Le CPU e le GPU si sono espanse in esecuzione, tuttavia, sono ulteriormente avanzate per migliorare le informazioni di gestione in parallelo

Sono sorte nuove tipologie di banche dati per vari casi d’uso, ognuna con il proprio specifico modo di mettere via e ordinare le informazioni. Ad esempio, dato che gli oggetti autentici sono più semplici da consultare, poiché le varie strutture di informazione livellate e consolidate sono diventate famose, le banche dati di JSON e di report sono diventate famose.

Sono aumentati nuovi insegnanti, tra cui la progettazione dell’informazione e la scienza dell’informazione, entrambi con molti nuovi dispositivi per raggiungere espliciti obiettivi scientifici.

Le rappresentazioni di informazioni colonnare sono diventate uno standard per la diagnostica degli oneri residui in quanto forniscono punti di interesse sensazionali per quanto riguarda la velocità e la competenza.

Alla luce di questi schemi, si è aperta un’inconfondibile porta aperta per una rappresentazione standard in memoria che ogni motore può utilizzare, che è attuale e che sfrutta tutte le nuove metodologie espositive attualmente accessibili, e che rende la condivisione delle informazioni in modo trasversale sulle varie fasi coerente e competente. Questo è l’obiettivo di Apache Bolt. Familiarizzare con le cause e la storia di Apache Bolt.

Per utilizzare una relazione, pensate di avventurarvi in Europa nel bel mezzo di una fuga prima dell’UE. Per visitare 5 nazioni in 7 giorni, si potrebbe fare affidamento sul modo in cui ci si metterebbe un paio d’ore alla periferia per il controllo dei visti, e si perderebbe una parte del proprio denaro nel commercio di denaro. Questo è il modo in cui il lavoro con le informazioni in memoria funziona senza Bolt: esistono enormi sprechi per serializzare e de-serializzare le strutture informative, e un duplicato viene fatto tutto il tempo, sperperando preziosa memoria e risorse della CPU. È interessante notare che Bolt assomiglia a visitare l’Europa dopo l’UE e l’Euro: non si tiene in piedi ai margini, e c’è un solo denaro che viene utilizzato dappertutto.

Bolt consolida i vantaggi delle strutture informative a colonna con figure in memoria. Dà i vantaggi di presentazione di queste strategie all’avanguardia e allo stesso tempo dà l’adattabilità delle informazioni complesse e dei contorni dinamici. Inoltre, fa tutto questo in modo aperto e istituzionalizzato.

Avanzamenti del centro Apache Bolt

Apache Bolt in sé non è un motore di capacità o di esecuzione. Esso è destinato a riempire come uno stabilimento reciproco per i tipi di quadri che lo accompagnano:

Motori in esecuzione SQL, (ad esempio, Drill e Impala)

Quadri di esame delle informazioni, (ad esempio, Panda e Sparkle)

Traboccamento e messa in coda di strutture (per esempio, Kafka e Tempest)

Quadri di capacità, (per esempio, Parquet, Kudu, Cassandra e HBase)

Il bullone comprende vari anticipi associati destinati ad essere incorporati nei motori di potenza e di esecuzione. Le parti chiave di Bolt includono:

Set di tipi di informazioni caratterizzanti che includono sia i tipi SQL che JSON, ad esempio, Int, BigInt, BigInt, Decimal, VarChar, Guide, Struct e Exhibit.

Rappresentazioni sanzionate: Rappresentazioni colonnare in memoria di informazioni per aiutare una struttura di record discrezionalmente perplessa basata sui tipi di informazione caratterizzati.

Strutture informative regolari: Strutture informative per gli amici, tra cui pick-record, tabelle di hashish e linee.

Tra la procedura Corrispondenza tra le procedure eseguita all’interno della memoria condivisa, TCP/IP e RDMA.

Librerie informative per la consultazione e la composizione di informazioni in colonna in vari dialetti, tra cui Java, C++, Python, Ruby, Rust, Go e JavaScript.

Calcoli di pipeline e SIMD per diverse attività, tra cui la determinazione della bitmap, l’hashing, la setacciatura, il bucketing, l’organizzazione e il coordinamento.

Colonnare In-Memory Pressure che include un assortimento di metodi per costruire la capacità di memoria.

Memory Tirelessness Apparati per l’operosità momentanea attraverso la memoria non prevedibile, SSD o HDD.

Tutto sommato, Bolt non ha rivali in nessuna di queste attività. Il suo obiettivo centrale è quello di lavorare all’interno di ognuna di esse per dare un’esecuzione più estesa e un’interoperabilità più radicata. A dire il vero, Bolt viene lavorato dai progettisti principali di un numero significativo di queste imprese.

Esecuzione

Quanto più velocemente un cliente può trovare la soluzione, tanto più velocemente può porre diverse richieste. Superior porta più esami, più casi d’uso e ulteriori sviluppi. Man mano che le CPU diventano più veloci e sempre più moderne, una delle difficoltà principali è garantire che la preparazione dell’innovazione utilizzi le CPU in modo efficace.

Il bullone è esplicitamente destinato ad amplificare:

Area Negozio: I cuscini di memoria sono rappresentazioni conservative di informazioni destinate alle CPU attuali. Le strutture sono caratterizzate da un design rettilineo, che coordina i normali disegni di lettura. Ciò implica che le informazioni di tipo comparativo sono co-situate in memoria. Questo rende il prefetching di memoria sempre più potente, limitando i rallentamenti della CPU a causa delle mancanze di riserva e della memoria principale. Queste strutture informative produttrici di CPU e i progetti di accesso si estendono sia alle strutture sociali di livello convenzionale che alle attuali strutture informative complesse.

Pipeline: I progetti di esecuzione sono destinati a sfruttare la natura superscalare e pipeline degli attuali processori. Questo è finito limitando il controllo della guida in circolo e la natura sfaccettata del cerchio. Questi cerchi stretti portano a una migliore esecuzione e a meno delusioni di ramo.

Indicazioni SIMD: Le linee guida “Single Guidance Numerous Information” (SIMD) consentono ai calcoli di esecuzione di lavorare in modo ancora più produttivo eseguendo diverse attività in un ciclo di orologio solitario. Il bullone dispone le informazioni in modo che siano appropriate per le attività SIMD.

La regione di riserva, le attività di pipeline e superscalari danno abitualmente un’esecuzione 10-100x più rapida. Poiché numerosi compiti logici rimanenti sono legati alla CPU, questi vantaggi si trasformano in vantaggi emotivi per l’esecuzione del cliente finale. Ecco alcuni modelli:

PySpark: IBM ha stimato una velocità di 53x nella preparazione delle informazioni da parte di Python e Sparkle sulla scia dell’inclusione del supporto per Bolt in PySpark

Parquet e C++: Aggiunta di informazioni al Parquet da C+++ fino a 4GB/s

Panda: Aggiungere qualcosa in più ai panda fino a 10GB/s

Bolt avanza inoltre la condivisione di informazioni a zero duplicazione. Poiché Bolt è abbracciato come la rappresentazione interna di ogni quadro, un quadro può passare le informazioni direttamente al quadro successivo per l’utilizzo. Inoltre, quando questi framework sono situati su un hub simile, il duplicato rappresentato sopra può anche essere evitato usando la memoria condivisa. Questo implica che, in generale, lo spostamento di informazioni tra due framework non avrà costi aggiuntivi.

Produttività della memoria

L’esecuzione in memoria è straordinaria, ma la memoria può essere rara. Il bullone è destinato a funzionare indipendentemente dal fatto che le informazioni non si adattino completamente alla memoria. La struttura dell’informazione centrale incorpora vettori di informazioni e assortimenti di questi vettori (chiamati anche ciuffi di record). I cluster di record sono regolarmente 64KB-1MB, in funzione del carico rimanente, e sono generalmente limitati a 2^16 record. Questo migliora la regione del negozio, ma in aggiunta, rende possibile la registrazione in-memoria anche in circostanze di bassa memoria.

Con numerosi gruppi di informazioni enormi che vanno dai 100 ai 1000 server, i framework devono avere la possibilità di sfruttare la memoria totale di un gruppo. Bolt ha lo scopo di limitare le spese di spostamento delle informazioni sul sistema. Utilizza peruses di dissipazione/assemblaggio e compone e include una configurazione di serializzazione/deserializzazione zero, permettendo il minimo sforzo di sviluppo di informazioni tra gli hub. Bolt funziona inoltre legittimamente con interconnessioni RDMA-competenti per dare una rete di memoria solitaria a grandi carichi di memoria.

Supporto del linguaggio di programmazione

Un altro vantaggio significativo della ricezione di Apache Bolt, oltre all’esecuzione più a terra e all’interoperabilità, è la parità di condizioni tra i vari dialetti di programmazione. La condivisione convenzionale delle informazioni dipende dalle riconciliazioni a livello di interfaccia IPC e di programmazione. Anche se questo è regolarmente semplice, nuoce all’esecuzione quando il linguaggio del cliente non è esattamente lo stesso del linguaggio del framework fondamentale. In funzione della lingua e della disposizione dei calcoli attualizzati, il cambio di lingua causa la maggior parte del tempo di gestione.

Apache Bolt attualmente supporta C, C++, Java, Javascript, Go, Python, Rust e Ruby.