DropDBase: In-memory databáza s využitím GPU

546
DropDBase: In-memory databáza s využitím GPU

Problémom v oblasti Big Data je spracovávanie takého obrovského množstva dát v reálnom čase. Požiadavka na rýchle spracovanie veľkých dát býva častokrát v oblasti bankovníctva alebo v niektorých prípadoch dátovej analytiky.

Náš cieľ?

Celkom jasný – vytvoriť najrýchlejšiu databázu na svete.

Ako to celé funguje…

Klasické relačné databázy majú dáta usporiadané v riadkoch tabuľky a tieto dáta sa spracovávajú na procesore. Rýchlejší, ale zároveň zložitejší prístup je organizovať dáta do stĺpcov, kde tieto stĺpce spolu tvoria tabuľku. Tu nastáva problém s preusporiadavaním dát v rámci tabuľky – treba dávať pozor na to, že sa musia preusporiadať všetky stĺpce. Na toto treba myslieť hlavne pri indexovaní. Spracovávanie jednotlivých dopytov sa dá pri stĺpcových databázach ľahšie vykonávať na grafických kartách, ktoré síce majú menej výkonné jadrá oproti procesoru, ale za to ich majú mnohonásobne viac.

Predstavenie projektu DropDBase. Cieľom projektu je vytvoriť najrýchlejšiu databázu na svete. Táto databáza je špecifická tým, že dáta sa počas behu databázy nachádzajú v operačnej pamäti a sú usporiadané v stĺpcoch, ktoré spolu tvoria tabuľku. Databáza je akcelerovaná prostredníctvom grafických kariet.

Tým pádom vieme lepšie využiť silu paralelizmu. Ďalšími úzkymi hrdlami sú pevné disky a zbernica. Zvolili sme prístup mať všetky dáta v operačnej pamäti a dáta, ktoré sa spracovávajú sa nakopírujú do video pamäte grafických kariet. Kopírovanie dát je stále veľmi časovo náročná operácia, najmä, keď každá milisekunda výpočtu je dôležitá. Preto sa snažíme znížiť potrebu kopírovania – robíme caching (prostredníctvom Least Reccently Used algoritmu) medzivýsledkov vo video pamäti grafických kariet.

DropDBase: In-memory databáza s využitím GPU
Architektúra projektu – databáza spolu s prepojením na webový frontend prostredníctvom aplikačného servera.

Porovnanie rýchlosti s konkurenciou

Pre porovnanie sme zvolili databázu, ktorej dopyty sa spracovávajú na procesore – Microsoft SQL, avšak s nastavením Column Store. A ako druhého protivníka sme zvolili v súčasnosti najznámejšiu databázu akcelerovanú grafickými kartami – MapD (OmniSci). Naša databáza je ešte stále vo vývoji a predpokladáme, že v najbližších týždňoch prekonáme MapD (vyvíjame indexovanie dát a ich kompresiu kvôli priepustnosti zbernice).

Operačný systémUbuntu 18.04
ProcesorAMD Ryzen Threadripper 2950X 16-Core Processor 3.50 GHz
Grafické karty2x NVIDIA GeForce GTX 1080 Ti
Operačná pamäť (RAM)128 GB DDR4 3000 MHz

Hardvér a softvér servera, na ktorom boli databázy testované.

 Microsoft SQLMapDDropDBase
Prvý dopyt12885 ms50128 ms545 ms
Druhý dopyt300 ms47 ms61 ms

Porovnanie rýchlostí prvého a druhého dopytu (druhý dopyt využíva cache). Dopyty boli vykonávané nad 1 miliardou riadkov dát.

Použitie databázy na dátovú analytiku

Aby sme mohli jasne demonštrovať výhody nášho riešenia, vytvorili sme aj webový frontend, ktorý umožňuje používateľovi zvoliť si jednotlivé filtre (a tým vyskladať dopyt do databázy) a následne vidieť prepočítavanie údajov v reálnom čase.

DropDBase: In-memory databáza s využitím GPU
Ukážka jednej zo stránok webového klienta.

Technológie

V projekte používame nasledovné technológie a programovacie jazyky:

  • C++
  • C#
  • CUDA
  • CMake
  • Antlr 4
  • Google Protocol Buffers
  • Angular
  • Leaflet
  • Chart.js
  • Bootstrap
  • ASP.NET

Niečo o nás

Sme tím 8 študentov FIIT STU a na tomto projekte pracujeme v rámci školského predmetu v spolupráci s firmou Instarea. Našim pedagogickým vedúcim je Ing. Marek Lóderer.

DropDBase: In-memory databáza s využitím GPU
Členovia tímu (zľava doprava): Bc. Nikolas Hamran, Bc. Andrej Fúsek, Bc. Martin Petráš, Bc. Alexandra Smolová, Bc. Veronika Včelková, Bc. Martin Staňo, Bc. Dávid Kubík, Bc. Jakub Veselý

Dobrý článok? Chceš dostávať ďalšie?

Už viac ako 6 200 ITečkárov dostáva správy e-mailom. Nemusíš sa báť, nie každé ráno. Len občasne.

Súhlasím so spracovaním mojich osobných údajov. ( Viac informácií. )

Tvoj email neposkytneme 3tím stranám. Posielame naňho len informácie z robime.it. Kedykoľvek sa môžeš odhlásiť.