Parallell databas

Ett parallellt databassystem strävar efter att förbättra prestandan genom parallellisering av olika operationer, såsom att ladda data, bygga index och utvärdera frågor. Även om data kan lagras på ett distribuerat sätt, styrs distributionen enbart av prestandaöverväganden. Parallella databaser förbättrar bearbetnings- och inmatnings-/utdatahastigheter genom att använda flera processorer och diskar parallellt. Centraliserade och klient-server databassystem är inte tillräckligt kraftfulla för att hantera sådana applikationer. Vid parallell bearbetning utförs många operationer samtidigt, i motsats till seriell bearbetning, där beräkningsstegen utförs sekventiellt. Parallella databaser kan grovt delas in i två grupper, den första gruppen av arkitektur är multiprocessorarkitekturen, vars alternativ är följande:

Arkitektur med delat minne
där flera processorer delar på huvudminnet (RAM) men varje processor har sin egen disk (HDD). Om många processer körs samtidigt minskar hastigheten, samma som en dator när många parallella uppgifter körs och datorn saktar ner.
Arkitektur för delad disk
där varje nod har sitt eget huvudminne, men alla noder delar masslagring, vanligtvis ett lagringsnätverk . I praktiken har varje nod vanligtvis också flera processorer.
Delad-ingenting-arkitektur
Där varje nod har sin egen masslagring samt huvudminne.

Den andra arkitekturgruppen kallas hybridarkitektur, som inkluderar:

  • Non-Uniform Memory Architecture (NUMA), som involverar oenhetlig minnesåtkomst .
  • Kluster (delad ingenting + delad disk: SAN/NAS), som bildas av en grupp anslutna datorer.

i detta används switchar eller nav för att ansluta olika datorer på det billigaste sättet och enklaste sättet används endast enkla topologier för att koppla ihop olika datorer. mycket smartare om switchar implementeras.

Typer av parallellism

Intraquery-parallellism
En enskild fråga som exekveras parallellt med flera processorer eller diskar.
Oberoende parallellism
Utförande av varje operation individuellt i olika processorer endast om de kan utföras oberoende av varandra. Till exempel, om vi behöver sammanfoga fyra tabeller, kan två sammanfogas på en processor och de andra två kan sammanfogas vid en annan processor. Slutlig anslutning kan göras senare.
Pipe-lined parallellism
Utförande av olika operationer i pipe-lined mode. Till exempel, om vi behöver sammanfoga tre tabeller, kan en processor sammanfoga två tabeller och skicka resultatuppsättningsposterna när och när de produceras till den andra processorn. I den andra processorn kan den tredje tabellen sammanfogas med de inkommande posterna och det slutliga resultatet kan produceras.
Intraoperation parallellism
Utförande av enstaka komplexa eller stora operationer parallellt i flera processorer. Till exempel kan ORDER BY-satsen i en fråga som försöker köra på miljontals poster parallelliseras på flera processorer.