Compresión y Optimización de Almacenamiento en IDS 11.50

Anuncio
IBM Software Group
Compresión y Optimización de
Almacenamiento en IDS 11.50
Mariano Berruezo
IM Premium Support
[email protected]
© 2010 IBM Corporation
IBM Software Group
¿Qué es Compresión?
La capacidad de almacenar registros en disco en un formato
comprimido
Permite reducir hasta un 90% de espacio de almacenamiento
para datos
Permite estimar el porcentaje de compresión posible
Permite almacenar más datos en una página
Permite contener más datos en el buffer pool
Reduce el uso de logical logs
Reduce el tamaño y la duración de los backups
2
© 2010 IBM Corporation
IBM Software Group
¿Qué es Optimización de Almacenamiento?
La capacidad de consolidar espacio libre al final de
una tabla o fragmento
La capacidad de retornar ese espacio libre al dbspace
El espacio retornado puede ser usado por cualquier
tabla del dbspace
3
© 2010 IBM Corporation
IBM Software Group
Conceptos de Compresión
Basada en el algortimo de Lempel-Ziv (LZ) –
diccionario estático, construido por muestreo aleatorio
Se reemplazan los patrones repetitivos con símbolos
numéricos de 12 bits
Cualquier byte que no coincida con un patrón también
es reemplazado con un símbolo numérico de 12 bits
Los patrones pueden ser de hasta 15 bytes de
longitud
Máxima compresión possible = 90% (se reemplazan
15 bytes con solo 1.5 bytes = 12 bits)
4
© 2010 IBM Corporation
IBM Software Group
Símbolos de Compresión
12 bits permiten representar 4,096 símbolos
– 256 símbolos reservados para bytes que no coinciden con ningún
patrón
– 3,840 símbolos para patrones repetitivos
Patrones de más de 7 bytes usan hasta 2 símbolos numéricos
Por lo tanto, no todos los patrones pueden ser comprimidos
Se trata de capturar en el Diccionario los “mejores” patrones
(por frecuencia y longitud)
Los bytes que no coinciden con patrones pueden crecer hasta
un 50% (8 bits se reemplazan por 12 bits)
5
© 2010 IBM Corporation
IBM Software Group
Los datos influyen en la Compresión
Los datos con patrones repetitivos frecuentes y de mayor
longitud tienen una mejor tasa de compresión
– Las secuencias de 0 o blancos son muy comprimibles
Los datos tipo “ruido” prácticamente no se pueden comprimir:
– Datos Encriptados
– Datos comprimidos por otro algortimo
– Datos sin patrones repetitivos
Se debe evitar tener columnas con datos tipo “ruido” entre
columnas que sí tengan patrones repetitivos, ya que esto limita
la posibilidad de definir patrones a través de columnas
6
© 2010 IBM Corporation
IBM Software Group
Ejemplo de Compresión
7
© 2010 IBM Corporation
IBM Software Group
Compresión: Impacto en la performance
Cargas de trabajo orientadas a I/O:
– La compresión puede mejorar la performance al reducir el I/O
(tanto de datos como de logical logs)
– Entran más datos en una página y por ende más datos en el
Buffer Pool
– Se reduce el tamaño de los registros de Log (o sea menos
logging)
Cargas de trabajo orientadas a CPU:
– Se usa CPU adicional para comprimir y expandir los registros
– Aunque no debería ser un impacto muy significativo
8
© 2010 IBM Corporation
9
0
TP S
C imp
H
- o le
TP
rd
C
er
H
s
TP T
-l
in
C PC
ei
E
H
te
-c
m
-p
as
ar
h_
t
tra sup
ns p
TP
ac
C
E
tio
-s
n
et
tle
m
TP
en
C
t
E
-t
ra
de
-h
TP
is
to
C
C
ry
TP
-o
C
C
rd
er
-o
s
rd
er
_l
TP
in
e
C
C
-i
TP
te
m
TP CC
C
-s
C
t
- c ock
us
to
m
er
TP
C
C
Percent Compressed
IBM Software Group
Tasas de Compresión (Compression Ratios)
Compression Ratio
80
70
60
50
40
30
20
10
Table Description
© 2010 IBM Corporation
IBM Software Group
Compresión en el Benchmark TPCC
TPCC Performance
TPCC & Compression
10W/5U
20W/5U
40W/6U
60W/7U
80W/8U
100W/9U 120W/10U
# of warehouses / # of users
Uncompressed
10
Compressed
© 2010 IBM Corporation
IBM Software Group
Compresión y escalabilidad
Uncompressed
Database Size
11
Compressed
Database Size
Uncompressed
Total I/Os
Compressed Total Uncompressed I/Os Compressed I/Os /
I/Os
/ Txn
Txn
Uncompressed
Response Time
Compressed
Response Time
© 2010 IBM Corporation
IBM Software Group
HDR, ER, CDC y Compresión
Todas estas formas de replicación están soportadas
sobre tablas comprimidas
HDR
– Las tablas se comprimirán en el secundario, si están
comprimidas en el primario
ER
– El status de compresión de las tablas es independiente entre
el source y el target, lo especifica el usuario
CDC (DataMirror)
– La compresión en los targets depende de lo que soporte la
base de datos remota y lo que especifique el usuario
12
© 2010 IBM Corporation
IBM Software Group
OAT (Open Admin Tool)
Tanto la compresión como la optimización de
almacenamiento se pueden manejar y administrar
desde la interface gráfica del OAT (ver slides a
continuación …)
13
© 2010 IBM Corporation
IBM Software Group
Comprimiendo un Fragmento (Parte 1)
14
© 2010 IBM Corporation
IBM Software Group
Comprimiento un Fragmento (Parte 2)
15
© 2010 IBM Corporation
IBM Software Group
Comprimiento un Fragmento (Parte 3)
16
© 2010 IBM Corporation
IBM Software Group
Elementos que no pueden ser Comprimidos
Datos fuera del row (ejemplo: blobs)
Índices
Tablas de Catálogo
Tablas Temporales
Partition tables (Tablespace Tablespace)
Tablas de Diccionario
Tablas en las siguientes bases de datos:
sysuser, sysmaster, sysutils, syscdr, syscdcv1
17
© 2010 IBM Corporation
IBM Software Group
Almacenamiento del Diccionario de Compresión
Cada tabla comprimida (no fragmentada) o fragmento tiene su propio
diccionario de compresión
El diccionario consume entre ~75K y 100K por tabla o fragmento
Por lo tanto no se recomienda comprimir tablas pequeñas
Todos los diccionarios para tablas y/o fragmentos en una
determinada dbspace se almacenan en una tabla especial de
diccionarios que se encuentra oculta en dicho dbspace
La unión de todas las tablas de diccionario se puede ver desde
sysmater:
– Tabla syscompdicts_full: incluye el diccionario en binario; acceso
restringido al usuario “informix”
– Vista syscompdicts view: accesible por todos los usuarios; por
seguridad, omite el diccionario en binario
18
© 2010 IBM Corporation
IBM Software Group
Operaciones de Compresión
create_dictionary
– Crea el diccionario de compresión
– Cualquier row insertada o modificada a continuación, será comprimida
– Las rows preexistentes no serán comprimidas
compress
– Ejecuta el create_dictionary si no existe el diccionario
– Comprime todas las rows preexistentes
– La table puede ser accedida por otros usuarios
estimate_compression
– Estima la tasa de compresión que podría lograrse (creando el diccionario)
– Si ya está comprimida, estima la tasa actual (o 0 si no aplica)
– También muestra el estimado de compresión que daría un nuevo
diccionario (diferencia entre las dos estimaciones anteriores)
19
© 2010 IBM Corporation
IBM Software Group
Operaciones de Compresión (cont.)
uncompress, uncompress_offline
– Descomprime cada row en la tabla o fragmento
– Desactiva el diccionario de compresión
– “uncompress”: la tabla puede ser accedida
– “uncompress_offline”: se pone un XLOCK en la tabla,
no se permiten otros accesos
purge_dictionary
– Borra los viejos diccionarios inactivos
– Es un comando separado porque ER y CDC
(DataMirror) pueden necesitar los viejos diccionarios
20
© 2010 IBM Corporation
IBM Software Group
Operaciones de Optimización de Almacenamiento
repack, repack_offline
– Mueve las rows dentro de la tabla o fragmento para
consolidad el espacio libre al final de la misma
– “repack”: la tabla puede ser accedida
– “repack_offline”: se pone un XLOCK en la tabla, no se
permiten otros accesos
shrink
– Retorna cualquier espacio libre al final de la tabla o
fragmento al dbspace
– Se hace normalmente después de un repack
21
© 2010 IBM Corporation
IBM Software Group
Admin API Interface
Todas las operaciones de compresión y optimización
de almacenamiento se invocan a través del IDS
Admin API construida con las siguientes UDRs:
– execute function task(…);
– execute function admin(…);
Ejemplo:
– execute function task(“table compress repack shrink”,
“table_name”, “database_name”, “owner_name”);
Esto permite utilizar la interface gráfica del OAT
Permite ejecución remota (el DBA no necesita estar
loggueado en la máquina de destino)
22
© 2010 IBM Corporation
IBM Software Group
Ejemplos reales – Caso 1
Cliente: Cadena de Supermercados Regional (RETAIL)
Tabla: Cubo del DW (SAP Business Warehouse)
Estado inicial (sin comprimir):
<
<
<
Number of pages allocated
Number of pages used
Number of data pages
435200
433934
433826
Estado final (comprimido):
>
>
>
Number of pages allocated
Number of pages used
Number of data pages
307200
307200
61813
Tasa de compresión: 85.75%!!!
Mejora potencial: Ahorro de 44 GB de espacio en disco!!
23
© 2010 IBM Corporation
IBM Software Group
Ejemplos reales – Caso 2
Cliente: Distrib. Provincial de Agua Corriente (UTILITIES)
Tabla: Facturas (Sistema Comercial)
Estado inicial (sin comprimir):
>
>
>
Number of pages allocated
Number of pages used
Number of data pages
93800
93798
93774
Estado final (comprimido):
<
<
<
Number of pages allocated
Number of pages used
Number of data pages
32809
32809
32800
Tasa de compresión: 65%!!
Mejora potencial: Ahorro de 5 GB de espacio en disco
24
© 2010 IBM Corporation
IBM Software Group
Conclusiones
La Compresión y la Optimización de Almacenamiento
permiten reducir espacio en disco y por ende minimizar los
costos de HW
Para cargas de trabajo orientadas a I/O es posible obtener
también una mejora de performance
La Compresión reduce el logging, los tiempos de backup y
restore y el tamaño del backup
Con Compresión se logra tener más datos en el buffer pool
La Optimización de Almacenamiento permite que el
espacio en disco recuperado por Compresión pueda ser
reutilizado por otras tablas o fragmentos
25
© 2010 IBM Corporation
IBM Software Group
¡Muchas gracias!
Compresión y Optimización de Almacenamiento en
IDS 11.50
Mariano Berruezo ([email protected])
Information Management Premium Support
IBM Argentina
26
© 2010 IBM Corporation
Descargar