Au cours des dernières décennies, les bases de données et l’examen des informations ont considérablement évolué.
Les organisations ont des besoins de plus en plus complexes en matière d’enquête et d’utilisation des informations – et des exigences de plus en plus exclusives pour l’exécution des enquêtes.
La mémoire est devenue bon marché, permettant un autre arrangement des procédures d’exécution dépendant de l’examen en mémoire.
L’exécution des CPU et des GPU s’est développée, mais a également progressé pour améliorer le traitement parallèle des informations
De nouveaux types de bases de données ont vu le jour pour divers cas d’utilisation, chacune ayant sa propre manière spécifique de ranger et de commander les informations. Par exemple, comme il est plus simple de parler d’articles authentiques que de structures d’information diverses et bien établies, les bases de données JSON et de rapports sont devenues célèbres.
Le nombre de nouveaux enseignants a augmenté, notamment dans les domaines de la conception de l’information et des sciences de l’information, tous deux dotés de nombreux nouveaux dispositifs permettant d’atteindre des objectifs scientifiques explicites.
Les représentations d’informations en colonnes sont devenues la norme pour le diagnostic des charges restantes, car elles donnent des points d’intérêt sensationnels en termes de rapidité et de compétence.
Au vu de ces modèles, une porte ouverte s’est ouverte pour une représentation standard en mémoire que chaque moteur peut utiliser ; une représentation qui est actuelle et qui exploite toutes les nouvelles méthodologies d’exposition qui sont actuellement accessibles ; et une représentation qui rend le partage d’informations entre les étapes cohérent et compétent. C’est l’objectif d’Apache Bolt. Familiarisez-vous avec les causes et l’histoire d’Apache Bolt.
Pour utiliser une relation, pensez à vous aventurer en Europe au milieu d’une fuite devant l’UE. Pour visiter cinq pays en sept jours, vous pourriez vous fier à la façon dont vous vous rendiez en quelques heures à la périphérie pour le contrôle des visas, et vous perdriez une partie de votre argent liquide dans le commerce de l’argent. C’est ainsi que le travail avec des informations en mémoire fonctionne sans Bolt : il y a un énorme gaspillage à sérialiser et désérialiser les structures d’information, et un double est fait tout le temps, ce qui gaspille de la mémoire et des ressources CPU précieuses. Il est intéressant de noter que Bolt ressemble à la visite de l’Europe après l’UE et l’euro : vous ne tenez pas en marge, et il y a une monnaie utilisée partout.
Bolt consolide les avantages des structures d’information en colonnes avec la figuration en mémoire. Il donne les avantages de présentation de ces stratégies de pointe tout en donnant l’adaptabilité d’informations complexes et de contours dynamiques. De plus, il réalise l’ensemble de ces opérations de manière open-source et institutionnalisée.
Avancées du Centre Apache Bolt
Apache Bolt n’est pas en soi un moteur de capacité ou d’exécution. Il est destiné à servir d’établissement mutuel pour les types de cadres qui l’accompagnent :
Moteurs d’exécution SQL, (par exemple, Drill et Impala)
Cadres d’examen des informations (par exemple, Pandas et Sparkle)
Les cadres de déversement et d’attente (par exemple, Kafka et Tempest)
Cadres de capacités (par exemple, Parquet, Kudu, Cassandra et HBase)
Le boulon comprend diverses avancées associées destinées à être incorporées dans les moteurs de capacité et d’exécution. Les principaux éléments de Bolt sont les suivants :
Ensembles de types d’informations caractérisées comprenant les types SQL et JSON, par exemple, Int, BigInt, Decimal, VarChar, Guide, Struct et Exhibit.
Représentations sanctionnées : Représentations en colonne en mémoire d’informations pour aider une structure d’enregistrement discrétionnairement perplexe basée sur les types d’informations caractérisées.
Structures d’information régulières : Structures d’information des amis, y compris les enregistrements de choix, les tables de hachage et les lignes.
Correspondance entre les procédures effectuée à l’intérieur de la mémoire partagée, TCP/IP et RDMA.
Bibliothèques d’information permettant de consulter et de composer des informations en colonnes dans divers dialectes, notamment Java, C++, Python, Ruby, Rust, Go et JavaScript.
Pipeline et SIMD Calculs pour différentes activités, y compris la détermination de la bitmap, le hachage, le tamisage, le remplissage, l’organisation et la coordination.
Pression de mémoire colonnaire comprenant un assortiment de méthodes pour développer la compétence de mémoire.
Infatigabilité de la mémoire Appareils pour l’assiduité momentanée par le biais de la mémoire non prévisible, SSD ou HDD.
Tout bien considéré, Bolt ne rivalise avec aucune de ces activités. Son objectif central est de travailler à l’intérieur de chacune d’entre elles afin d’en élargir l’exécution et d’en renforcer l’interopérabilité. À vrai dire, Bolt est travaillé par les concepteurs principaux d’un nombre important de ces entreprises.
Exécution
Plus vite un client peut trouver la solution, plus vite il peut poser différentes questions. La supériorité entraîne plus d’examen, plus de cas d’utilisation et plus de développement. Les unités centrales devenant plus rapides et de plus en plus modernes, l’une des principales difficultés consiste à s’assurer que la préparation de l’innovation utilise efficacement les unités centrales.
Le boulon est explicitement destiné à amplifier :
Zone de magasin : Les coussins de mémoire sont des représentations conservatrices d’informations destinées aux processeurs actuels. Les structures sont caractérisées par des conceptions de lecture normales, droites et coordonnées. Cela implique que les informations de type comparatif sont co-situées dans la mémoire. Cela rend le préchargement de la mémoire de plus en plus puissant, la limitation de l’unité centrale ralentit à cause des manques de réserve et la mémoire principale arrive à. Ces structures d’information et ces modèles d’accès productifs pour le CPU s’étendent à la fois aux structures sociales de niveau conventionnel et aux structures d’information complexes actuelles.
La canalisation : Les modèles d’exécution sont destinés à exploiter la nature superscalaire et en pipeline des processeurs actuels. Cela se termine par la limitation du contrôle de guidage en cercle et la nature multidimensionnelle du cercle. Ces cercles étroits permettent une meilleure exécution et moins de déceptions au niveau des branches.
Instructions de la SIMD : Les directives SIMD (Single Guidance Numerous Information) permettent aux calculs d’exécution de fonctionner de manière d’autant plus productive qu’ils exécutent différentes activités dans un cycle d’horloge solitaire. Bolt organise les informations de manière à ce qu’elles soient appropriées pour les activités SIMD.
La région de réserve, le pipelining et les activités superscalaires donnent habituellement une exécution 10 à 100 fois plus rapide. Comme de nombreuses tâches logiques restantes sont liées à l’unité centrale, ces avantages se traduisent par des gains d’exécution émotionnels pour le client final. Voici quelques modèles :
PySpark : IBM a estimé à 53x l’accélération de la préparation de l’information par Python et Sparkle suite à l’inclusion du support de Bolt dans PySpark
Parquet et C++ : Ajout d’informations au Parquet à partir de C++ jusqu’à 4GB/s
Pandas : Ajout d’un élément supplémentaire aux pandas jusqu’à 10GB/s
Bolt fait également progresser le partage d’informations sans duplication. Comme Bolt est considéré comme la représentation intérieure de chaque cadre, un cadre peut transmettre directement les informations au cadre suivant pour qu’elles soient utilisées. De plus, lorsque ces cadres sont situés sur un concentrateur similaire, le double décrit ci-dessus peut également être évité en utilisant la mémoire partagée. Cela signifie que, dans l’ensemble, le transfert d’informations entre deux cadres n’entraîne aucun surcoût.
Productivité de la mémoire
L’exécution en mémoire est extraordinaire, mais la mémoire peut être rare. Bolt est conçu pour fonctionner même si l’information ne rentre pas complètement dans la mémoire. La structure centrale de l’information incorpore des vecteurs d’information et des assortiments de ces vecteurs (également appelés “record clumps”). Les groupes d’enregistrements sont régulièrement de 64KB-1MB, en fonction de la charge restante, et sont généralement limités à 2^16 enregistrements. Cela améliore la région du magasin, mais en plus, rend l’enregistrement en mémoire concevable même dans des circonstances de faible mémoire.
Avec de nombreux groupes d’informations gigantesques allant de plusieurs centaines à plusieurs milliers de serveurs, les cadres doivent pouvoir exploiter la mémoire totale d’un groupe. Bolt est destiné à limiter les dépenses liées au déplacement des informations sur le système. Il utilise des perus et des composes de dissipation/assemblage et inclut une configuration de sérialisation/désérialisation zéro, permettant un effort minimal de développement de l’information entre les hubs. Bolt fonctionne en outre de manière légitime avec des interconnexions compatibles RDMA pour donner un réseau de mémoire solitaire aux charges en mémoire plus importantes.
Soutien aux langages de programmation
Un autre avantage important de la réception d’Apache Bolt, outre une exécution et une interopérabilité plus solides, est l’égalité des chances entre les différents dialectes de programmation. Le partage conventionnel des informations dépend des rapprochements entre les niveaux de l’IPC et de l’interface de programmation. Bien que cela soit régulièrement simple, cela nuit à l’exécution lorsque le langage du client n’est pas tout à fait le même que celui du cadre fondamental. Dépendant du langage et de la disposition des calculs actualisés, le changement de langage est à l’origine de la plupart des temps de traitement.
Apache Bolt supporte actuellement C, C++, Java, Javascript, Go, Python, Rust et Ruby.