Professional Documents
Culture Documents
ECCI - UCR
CI-1314
BASES DE DATOS 2
LECCIÓN 17
PARALLEL QUERY PROCESSING
PARALLEL QUERY PROCESSING
OBJETIVO
CPU
Disco
PARALLEL QUERY PROCESSING
OBJETIVO
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
• Ventajas:
• Load balancing
• Desventajas
RAM
• Costo
• Baja disponibilidad
• Escalabilidad
ARQUITECTURAS PARALELAS
SHARED DISK
• Complejidad
ARQUITECTURAS PARALELAS
SHARED NOTHING
• Ventajas:
RAM RAM RAM • Costo
• Extensibilidad
• Disponibilidad
• Desventajas
• Balanceo de la carga
PARALLEL QUERY PROCESSING
TÓPICOS
• Data Partitioning
• Paralelismo Inter-query
• Paralelismo Intra-query
• Paralelismo Intra-operación
DATA PARTITIONING
A .K.A PARALLEL DATA PL ACEMENT
• Físicamente: Particionamiento.
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
CPU select a, b
CPU
from R
where Y
Disco Disco
shared-nothing
architecture
DATA PARTITIONING
ES TRATEGIAS
• Round Robin
• Hash
• Range
6 5 4 3 2 1
• Características:
ROUND ROBIN
(i mod n)
• Simplicidad
n=3
• Garantiza la distribución
n0 n1 n2 uniforme
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
• 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…
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
INDICE GLOBAL
(sobre A)
a1 - a30 a31 - a60 A no es la llave de particionamiento a61 - a90
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
• Data Partitioning
• Paralelismo Inter-query
• Paralelismo Intra-query
• 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
INSERT
⋈ ⋈ ⋈ ⋈
A1 B1 A2 B2 An-1 Bn-1 An Bn
⋈
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 ∑