You are on page 1of 32

RICHARD DELGADO

SEGUNDO SEMESTRE 2018

ECCI - UCR

CI-1314
BASES DE DATOS 2
LECCIÓN 17
PARALLEL QUERY PROCESSING
PARALLEL QUERY PROCESSING
OBJETIVO

• Problema: el I/O es un cuello de botella • Solución:

• Transferir datos del disco a la • Incremente la capacidad de transferir


memoria al agregar paralelismo

CPU

Disco
PARALLEL QUERY PROCESSING
OBJETIVO

mayor velocidad mayor capacidad

SPEEDUP SCALEUP

• Alto rendimiento
CPU
• Alta disponibilidad

• Extensibilidad
Disco
ARQUITECTURAS PARALELAS
CONCEPTO

SHARED MEMORY

SHARED DISK

SHARED NOTHING
ARQUITECTURAS PARALELAS
SHARED MEMORY

• N procesadores, 1 memoria

• Cualquier CPU tiene acceso a toda la memoria y


todo el disco

• Ventajas:

• Simple, no data partitioning


INTERCONNECT

• Load balancing
• Desventajas
RAM
• Costo
• Baja disponibilidad

• Escalabilidad
ARQUITECTURAS PARALELAS
SHARED DISK

RAM RAM RAM


• N procesadores, N memorias
• Cualquier CPU tiene acceso a todo el disco
pero solo a su memoria exclusiva
• Ventajas:
INTERCONNECT • Costo
• Extensibilidad
• Disponibilidad
• Desventajas

• Complejidad
ARQUITECTURAS PARALELAS
SHARED NOTHING

• N procesadores, N memorias, N Discos

• Cualquier CPU tiene acceso exclusivamente a su


propio disco y memoria

• Ventajas:
RAM RAM RAM • Costo

• Extensibilidad
• Disponibilidad

• Desventajas

INTERCONNECT • Mucho más complejidad

• Balanceo de la carga
PARALLEL QUERY PROCESSING
TÓPICOS

• Data Partitioning

• Paralelismo Inter-query

• Paralelismo Intra-query

• Paralelismo Inter-operación (Pipelining)

• Paralelismo Intra-operación
DATA PARTITIONING
A .K.A PARALLEL DATA PL ACEMENT

• Datos deben ser distribuidos entre los CPUs:

• “Virtualmente" - sigue existiendo congestión de I/O

• Físicamente: Particionamiento.

• Particionamiento: Similar al concepto de “Fragmentación” en BD distribuidas

• Localidad de datos con respecto a los CPUs que participarán en formular la


respuesta.

• Típicamente horizontal, pero vertical también posible

• Problema: load balancing


DATA PARTITIONING
LOAD UNBAL ANCING
data set

ALGORITMO DE PARTICIONAMIENTO

CPU CPU
la ocupación de este CPU
podría ser mayor en relación a
la cantidad de datos asociada

Disco Disco

shared-nothing
architecture
DATA PARTITIONING
LOAD BAL ANCING
data set
cada CPU tiene localmente la
misma cantidad de datos

ALGORITMO DE PARTICIONAMIENTO

CPU CPU

Disco Disco

shared-nothing
architecture
DATA PARTITIONING
LOAD BAL ANCING

cada CPU tiene localmente la


misma cantidad de datos
select a, b
ALGORITMO DE PARTICIONAMIENTO Particionado en X from R
where X

CPU select a, b
CPU
from R
where Y

Disco Disco

shared-nothing
architecture
DATA PARTITIONING
ES TRATEGIAS

• Round Robin

• Hash

• Range

• Hybrid (Hash / Range)


ROUND ROBIN
PARA DATA PARTITIONING

• Con n nodos, associe la n-ésima tupla al nodo n en el orden de inserción

6 5 4 3 2 1
• Características:
ROUND ROBIN
(i mod n)
• Simplicidad
n=3
• Garantiza la distribución
n0 n1 n2 uniforme

• Escenarios: Full Table Scans


HASH
PARA DATA PARTITIONING

• Aplique una función hash a algún atributo de los datos

6 5 4 3 2 1
• Características:
HASH PARTITIONING
• Selección de la llave de
n=3, 3 buckets particionamiento

n0 n1 n2
• Garantiza la distribución
uniforme

• Escenarios: Exact Match


RANGE
PARA DATA PARTITIONING

• De acuerdo a rangos de valores de algún atributo de los datos

• Características:
6 5 4 3 2 1
RANGE PARTITIONING
(i <= 2, 2 < i <= 4, i > 4)
• Selección de la llave de
particionamiento
n=3, 3 buckets
• No garantiza la distribución uniforme

n0 n1 n2 • Partition Prunning

• Escenarios:

• Exact Match

• Range Queries
HYBRID PARTITIONING
RANGE + HASH, RANGE + RR…

• Efectúe una combinación (razonable) de dos de las estrategias anteriores

RANGE PARTITIONING
• Nunca RR primero

• Posibles:
HASH PARTITIONING HASH PARTITIONING
• Range + Hash

• Range + RR
n0 n1 n2 n3 n4 n5
• Hash + RR

• Hash + Range?
MULTIPLE PARTITIONING

range (mes) range (region)


MÉTODOS DE PARTICIONAMIENTO
COMPARACIÓN

Round Robin Hash Range

Full / Sequencial Scans Óptimo Medio Medio

Point Query Difícil Óptimo Medio

Range Query Difícil Posible Óptimo

Ok si la llave de particionamiento es la misma que el


Join Difícil
atributo en el join
ÍNDICES vs PARALELISMO

• El acceso a un B+Tree no puede paralelizarse fácilmente

• B+Tree está diseñado para accederse en forma serial

• No hay manera de balancear efectivamente la carga entre CPUs para escanear el


índice

• Solución: Índices de dos niveles (global y local)


ÍNDICES GLOBALES vs LOCALES
INCREMENTAR L A PARALELIZACIÓN - PIPELINING

INDICE GLOBAL
(sobre A)
a1 - a30 a31 - a60 A no es la llave de particionamiento a61 - a90

nodo 1 nodo 2 nodo 3

INDICE LOCAL INDICE LOCAL INDICE LOCAL

a31 - a40 a41 - a50 a51 - a60

bloques de disco
PARTITIONING EN ORACLE

• Métodos existentes:
• Range Partitioning 
• Hash Partitioning 
• Composite Partitioning
• List Partitioning y Auto-List Partitioning (conjunto discreto de valores)
• Multi-Column Range Partitioning
• Interval Partitioning (auto range)
• Reference Partitioning (particiona las tablas basada en la relación padre-hijo de
modo que ambas quedan en la misma partición)
• Interval Reference Partitioning
PARTITIONING EN ORACLE
RANGE PARTITIONING

Tomado de: Oracle Database Concepts Guide 12c, link


PARALLEL QUERY PROCESSING
TÓPICOS

• Data Partitioning

• Paralelismo Inter-query

• Paralelismo Intra-query

• Paralelismo Inter-operación (Pipelining)

• Paralelismo Intra-operación
PARALELISMO INTER VS INTRA-QUERY
CONCEPTOS

• Inter-query
• Consultas o transacciones diferentes que se ejecutan en paralelo
• Shared-nothing/disk - load balance entre los procesadores
• Intra-query
• Una misma consulta se ejecuta en múltiples procesadores
• Inter-operation: operator tree, pipelining
• Intra-operation: paralelizar la misma operación en conjuntos diferentes sobre la misma
relación
• Parallel sorting
• Parallel join
• Selection, projection, aggregation
PARALELISMO INTER-QUERY
• Ejecutar multiples consultas independientes al mismo tiempo
• Data partitioning & load balancing
Q3 Q2 Q1

Q6 Q5 Q4

DBMS

n0 n1 n2
PARALELISMO INTRA-QUERY
OPERADORES REL ACIONARLES PARALELOS

• El álgebra relacional permite el


procesamiento en paralelo debido a sus
propiedades:
• Procesamiento orientado a conjuntos output port
• Operaciones simples, en un número

limitado input ports
• Relativamente independiente de la
arquitectura de hardware R S R' S' R’' S’'

• Idea general: usar data streams paralelos


con operadores relacionales secuenciales
INTRA-QUERY PARALLELISM
m = # procesadores
n=m-2
insert into c C
select *
from a, b
where a.x = a.y
INSERT INSERT

INSERT
⋈ ⋈ ⋈ ⋈

A1 B1 A2 B2 An-1 Bn-1 An Bn

A B ok, si y sólo si Ai ⋈ Bj = cuando i ≠ j


INTRA-QUERY PARALLELISM
INTER -OPERATION PARALLELISM

• Ejecutar diferentes partes de la consulta en paralelo


Q=R ⋈ S ⋈ T ⋈V

PIPELINED INDEPENDENT

Q

Q
⋈ pipelined!!
temp2 ⋈

temp1 ⋈
temp1 ⋈ temp2 ⋈

R S T V
R S T V
INTRA-QUERY PARALLELISM
EJECUCIÓN EN PARALELO DE OPERADORES REL ACIONALES

C
• Projection ∏

INSERT
• Selection 𝛔

⋈ • Join ⋈

A B
• Sort ∓

• Set Operators ∩∪

• Aggregations ∑

You might also like