ja.som.it Startup DropDBase: In-memory databáza s využitím GPU

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.

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.

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.

Č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ť.

Junior React Developer

Chceš pracovať na dlhodobom, technologicky inovatívnom projekte a mať za to dobre zaplatené? Pre spoločnosť, ktorá používa matematické metódy...

Senior Frontend Developer

Množstvo práce sa zvýšilo, ale plat nie? Pre mladú slovenskú online firmu, ktorá má reálnu ambíciu, aby jej hlavný...

Medior Backend Developer

Chceš sa podieľať na rozvoji digitálnych služieb určených pre zdravotníctvo? Poď robiť veci, ktoré dávajú zmysel! Pátrame po Medior...

Medior/Senior FullStack Developer

Chceš pracovať na dlhodobom, technologicky inovatívnom projekte a mať za to dobre zaplatené? Pre spoločnosť, ktorá používa matematické metódy...

Active Directory Admin

Páčil by sa ti projekt v Prahe so skvelým finančným ratom? Pre globálnu technologickú a obchodnú spoločnosť hľadáme Active...

Engineering Expert Public Cloud Network Engineering

Homeoffice, dobrá odmena a projekt, ktorý sa Ti bude páčiť? Pre globálnu technologickú a obchodnú spoločnosť hľadáme Engineering Expert...

DevOps Enginner / Online Bezpečnosť

Pre IT spoločnosť, ktorá sa venuje online bezpečnosti hľadáme do tímu DevOps Medior Engineer. Spoločnosť má 20-členný tím s...

GIRL ́S DAY 2020: Už po siedmy raz môžu stredoškoláčky nahliadnuť do IT firiem po celom Slovensku.

Občianske združenie Aj Ty v IT už siedmy rok prepája IT firmy a organizácie so stredoškoláčkami po...

DIGITALEUROPE: Na digitalizáciu pôjde z plánu obnovy až pätina prostriedkov. Ako zareaguje Slovensko?

Výzva v podobe zníženej globálnej konkurencieschopnosti, ako aj kríza spojená s pandémiou postavili Európu...

OpenSlava 2020 tentokrát online!

OpenSlava 2020 je 8. ročník úspešnej konferencie pre IT komunitu na Slovensku...

Čítaj ďalej:

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ť.