Sei sulla pagina 1di 12

Procesamiento en paralelo y distribuido en dos SGBD 1

Procesamiento en paralelo y distribuido en


dos SGBDS: un caso de estudio.
Gustavo Andrés Ladino

Corporación Universitaria Minuto de Dios, Facultad de Ingenierías, Bogotá - Colombia

Gustavo Ladino, gladinopinz@uniminuto.edu.co

I. RESUMEN clúster, etc., las consultas se ejecutarán más


En los últimos años la enorme cantidad de eficientemente y otras operaciones de bases
datos almacenados en bases de datos ha de datos se procesarán.
incrementado de forma significativa, aparte La ejecución paralela es un método
de esto los usuarios necesitan un comúnmente utilizado para acelerar las
procesamiento más rápido y un buen operaciones al dividir una tarea en subtareas
rendimiento de sus datos para satisfacer los menores.
requerimientos. Por ejemplo, hay
aplicaciones que han generado exabytes (un Palabras clave: Procesamiento paralelo,
18
exabyte equivale a 10 bytes) de datos pro- procesamiento distribuido, SGBD,

venientes de sensores, con cientos de computación distribuida, Oracle, SQL Server,

millones de datos espaciales, temporales y de clúster, terabyte, exabyte, bases de datos,

redes sociales (Cheng, Caverlee, Lee y Sui, Apache Foundation, código abierto, DOP,

2011). Por consiguiente, la ejecución paralela shared_pool, buffer_cache, DBA, router,

es el punto clave en el procesamiento de MAXDOP.

grandes volúmenes de datos donde se


procesan cientos de terabytes en minutos
usando varios procesos para realizar una
tarea; cuanto mejor la base de datos
aproveche los recursos de hardware, CPU’s,
varios canales de entrada/salida, nodos en
Procesamiento en paralelo y distribuido en dos SGBD 2

al respecto (no se encontró ningún


trabajo que compare estos SGBD),
II. INTRODUCCIÓN pocos ingenieros evalúan el
Millones de datos viajan por la red en todo desempeño del paralelismo en un
momento y una excelente alternativa para la solo SGBD y los pocos que lo
gestion de esa gran cantidad de datos hacen (Burleson, 2005; Microsoft,
financieros, corporativos, de seguridad, 2015; ORA- CLE, 2014b, 2014c)
servicios de correo, blogs entre otros es el no son recientes (se hicieron con
procesamiento distributivo y en paralelo. versiones antiguas del SGBD) o
Uno de los sistemas mas usados es Hadoop son publicados por la misma
de Apache Foundation compañía fabricante del SGBD.
(http://hadoop.apache.org), este es de 3) Existe poca documentación para el
Código abierto para computacion confiable diseño de pruebas de distribución y
, escalable y distribuida por otro lado están de paralelismo en SGBD.
los sistemas de gestión de bases de datos
(SGBD) convencionales que se destacan DESARROLLO DEL TEMA
por su posicionamiento en el mercado: A. Paralelismo: conceptos esenciales
Oracle, SQL Server, los cuales incluyen El paralelismo permite que varios
también opciones para explotar el procesadores colaboren entre sí para la
procesamiento distribuido y en paralelo. ejecución de un proceso, uno de estos
En este artículo, se presenta un caso de procesadores llamado coordinador o maestro
estudio donde se analiza el rendimiento distribuye todas las operaciones realizadas y
de Oracle Database frente a Microsoft recibe los resultados de los otros
SQL Server considerando estas opciones. procesadores llamados esclavos, el
Este análisis puede ser de gran utilidad procesador maestro también ejecuta
para los desarrolladores si se consideran operaciones que no son paralelas del proceso
las siguientes opciones: y simultáneamente puede ser esclavo.
1) Los grandes volúmenes de datos El paralelismo se clasifica como paralelismo
estructurados que se deben de intraoperación y paralelismo de
gestionar. interoperación. El primero permite que una
2) Los pocos estudios comparativos operación de un proceso se ejecute
Procesamiento en paralelo y distribuido en dos SGBD 3

simultáneamente mediante un numero n de Por otro lado, el paralelismo de


procesadores donde cada uno opere sobre un interoperación permite que las diferentes
conjunto diferente de datos; n es el grado de operaciones de un proceso se puedan ejecutar
paralelismo (DOP, Degree Of Parallelism). El simultáneamente, se clasifica en canalizado
grado automático de paralelismo permite que (pipelining) e independiente. Este
el optimizador decida si una sentencia SQL paralelismo canalizado permite a una
debe ejecutarse en paralelo y que el DOP se operación B trabajar con los resultados que
utilice según los requisitos de recursos de la genera una operación A, así las dos
declaración. operaciones trabajan en paralelo.
El grado de paralelismo depende de varios El paralelismo independiente permite que una
factores que incluyen el grado paralelo operación A y una operación B se ejecuten
predeterminado de la tabla que establecido simultáneamente, pero con la condición de
por el DBA y las sugerencias usadas por el que ninguna de las dos operaciones necesite
usuario en la declaración. La clave para de la otra.
optimizar la consulta paralela es entender
como es la lógica y establecer un grado
optimo para una sentencia determinada.

Fig. 1 Grado Automático de Paralelismo. Tomado de: https://blogs.oracle.com/datawarehousing/what-is-


auto-dop
Procesamiento en paralelo y distribuido en dos SGBD 4

B. Elementos para el procesamiento de 2. Limpieza de memoria cache.


consultas distribuidas y en paralelo en Cuando se ejecuta una consulta en un SGBD
Oracle. los datos pueden quedar en la memoria cache,
1. Database link. por seguridad se recomienda borrar esos
En Oracle una sentencia CREATE datos para evitar desviación en los resultados
DATABASE LINK es un objeto de esquema de las pruebas ejecutadas, las declaraciones
en una base de datos que le permite acceder a ALTER del sistema son operaciones con
objetos en otra base de datos, después de crear privilegios que ejecuta el BDA o usuarios con
el enlace a la base de datos puede usarlo para privilegios SYSDBA, alterar el flujo del
consultar tablas y vistas en la otra base de sistema shared_pool es una forma en que se
datos. En las sentencias SQL puede referirse puede utilizar la instrucción del sistema para
a una tabla o vista en la otra base de datos borra los datos existentes.
agregando @dblink a la tabla o nombre de
vista y puede consultar una tabla de vista en
la otra base de datos con la instrucción La primera sentencia elimina planes de
SELECT, también puede acceder a tablas y ejecución y la segunda limpia la memoria
vistas remotas con instrucciones INSERT, cache de los datos, la sentencia buffer_cache
UPDATE, DELETE o LOCK TABLE. Se solo debe utilizarse en servidores de prueba.
crea un database link llamado conexión: 3. Hints.
En Oracle un hint permite modificar el plan y
tomar decisiones de una consulta SQL que
normalmente toma el optimizador.

Por ejemplo, puede ingresar desde la base de Se puede usar hint para lo siguiente:

datos local a una tabla Departamento ubicada • El enfoque de optimización para una

en la base de datos remota se ejecuta la declaración SQL

consulta: • La orden join para una declaración


join
• Una operación join en una sentencia
join
Procesamiento en paralelo y distribuido en dos SGBD 5

• La ruta de acceso para una tabla a la A. Tablas


que accede la declaración. Las tablas base para las pruebas fueron
Para las consultas de las pruebas se usó el hint “Empleado” y “Departamento”.
PARALLEL porque especifica el DOP de
una consulta:

Si se omite el valor del DOP Oracle lo


reestablece automático y si es mayor al
número de procesadores físicos disponibles el
optimizador puede limitarlo o puede generar La tabla departamento se creó en el
procesadores virtuales. computador central y la tabla empleado se
creo en los tres computadores, sin embargo,
III. METODOLOGIA un empleado solo se almacena en uno de los
En la ejecución de pruebas se utilizó una red computadores, por ejemplo, la intersección de
inalámbrica con tres computadores las cedulas entre las tres tablas de empleados
conectados por un router. En un computador es vacía (tabla empleado particionada) (figura
central se crearon dos database links, pc1 2).
hacia el computador 1 y pc2 hacia el Hay que ver que las tablas empleado y
computador 2, analógicamente en los departamento están relacionadas por los
computadores 1 y 2 se crearon los respectivos atributos “código” (de departamento) y
database links hacia el computador central. “depto” (de empleado). Sin embargo, la
Las especificaciones de los computadores columna “depto” (de empleado) no está
utilizados fueron: cada uno tenía definida como clave foránea con respecto a la
procesadores Intel de 4 generación, RAM de columna “código de departamento” porque la
8 GB, Windows 8.1 (64bits) y Oracle tabla departamento es remota con respecto a
Database 12e Enterprise Edition. Las las tablas de empleados de los computadores
especificaciones del router fueron: D-link 1 y 2.
DIR-300 con velocidad de transferencia de
datos 54 Mbps y switch de 4 puertos.
Procesamiento en paralelo y distribuido en dos SGBD 6

Figura 2. Distribución de datos Fuente: elaboración propia

B. Consultas según el código del departamento (columna


Las consultas a las tablas de las pruebas se “depto”).
ejecutaron desde el computador central y se Consulta 1. Proceso centralizado sin
solicitaron datos de las tablas de empleados paralelismo.
de los computadores 1 y 2, estos datos son
enviados al computador central para que se
ejecute todo el proceso de la consulta o el
proceso puede ser distribuido y ejecutado
entre los tres equipos y cada equipo remoto
devuelve los resultados de su procesamiento
al computador central. Se consideraron cinco
La consulta se hace desde el computador
consultas las cuales generan los mismos
central que recibe los datos de las tablas
resultados, pero difieren según la forma en
empleado del computador 1 y 2, los une
que se ejecuta el proceso, el cual se controla
(UNION), ejecuta la subconsulta
mediante el hint PARALLEL y las vistas
(agrupamiento por “depto”), luego ejecuta la
(explicadas más adelante) (Cervantes
reunión con su tabla “departamento” y ordena
Ramírez, 2012). Las consultas imprimen el
por “depto”. Aquí, los computadores 1 y 2 se
código, nombre y promedio de los salarios de
limitan a enviar los datos al computador
cada departamento, los resultados se ordenan
Procesamiento en paralelo y distribuido en dos SGBD 7

central donde se ejecutan las operaciones de vistas son llamadas desde el computador
agrupamiento, reunión y ordenamiento de la central:
consulta.
Consulta 2. Procesamiento centralizado con
paralelismo.

Consulta 4. Procesamiento descentralizado y


con paralelismo en los computadores 1 y 2.

La consulta tiene el hint PARALLEL, esto es


que las operaciones de la consulta se ejecutan
en el computador central, pero con el
paralelismo en este con DOP = 3. Como en la vista de la consulta 3, se agrupan
los empleados del computador 1 por el
Consulta 3. Procesamiento descentralizado, atributo “depto” y se ejecuta la reunión (en el
sin paralelismo en ningún computador computador 1) con la tabla departamento
enviada desde el computador central, la dif-
erencia con la consulta 3 está en el hint
PARALLEL que fuerza a que la consulta que
define la vista se ejecute con paralelismo (con
DOP = 3) en el computador 1 (cuando la vista
Se agrupan los empleados del computador 1 es invocada). De forma análoga ocurre para la
por el atributo “depto” y se ejecuta la unión vista “parallel_view_c2” del computador 2 y
con la tabla departamento enviada desde el con la vista “parallel_view_ central” del
computador central, se crean las vistas computador central, las vistas son invocadas
“no_parallel_view_c2” y desde el computador central, mediante la
“no_parallel_view_central”, después las consulta:
Procesamiento en paralelo y distribuido en dos SGBD 8

pero hay ingenieros que dicen que de


corresponder al número total de procesadores
-1, esto con el fin de dejar un procesador
disponible para coordinar la consulta hecha.
Un DOP menor o mayor al recomendado
puede afectar de forma negativa la consulta,
por ejemplo, si se ejecuta una consulta con
Consulta 5. Procesamiento descentralizado
DOP = 4 y después con un DOP = 200 el
con paralelismo en los 3 computadores
rendimiento será muy distinto: los 200
procesos de la segunda consulta afectarían el
tiempo de respuesta, el DOP indicado se
encuentra haciendo pruebas para cada
consulta especifica.
Para las pruebas se usaron los siguientes
DOP: 3, 6 y 9. Los resultados fueron: para
La diferencia con la consulta 4 es que en esta
DOP = 3 se presentaron en la tabla 3. Los
el computador central termina de ejecutar la
resultados con DOP = 6 y con DOP = 9 se
unión (UNION) de los resultados de las
muestran en las tablas 4 y 5.
vistas, el agrupamiento final (por “depto” y
Considerando el tamaño más pequeño de la
“nombre”) y el ordenamiento por “depto” con
muestra, el tiempo de ejecución de las
paralelismo ejecutado en el computador
consultas fue casi el mismo. En la muestra 5,
central después de recibir los datos del
las consultas 2 y 4 dieron un tiempo de
computador 1 y 2 ya agrupados por “depto” y
ejecución menor, con la mayor muestra las
reunidos con la tabla departamento.
consultas 1 y 5 registraron tiempos altos, esto
sugiere que el costo del paralelismo puede ser
IV. RESULTADOS
igual o más alto que el procesamiento
A. Experimentos con variación en el
secuencial; hay operaciones que no
DOP
convienen para la paralelización o su
En las consultas con paralelismo, es
ejecución secuencial resulta difícil.
recomendable usar como DOP el total de
procesadores físicos y lógicos del equipo,
Procesamiento en paralelo y distribuido en dos SGBD 9

Tabla 1. Resultados de la ejecución de pruebas. Fuente: elaboración propia

Tabla 2. Resultados de la ejecución de pruebas con DOP = 6. Fuente: elaboración propia


Procesamiento en paralelo y distribuido en dos SGBD 10

Tabla 3. Resultados de la ejecución de pruebas con DOP = 9. Fuente: elaboración propia

V. DISCUSIÓN computadores 1 y 2 no participan de la


A. Oracle vs SQL Server consulta, la sentencia SQL también vario, se
Con el fin de hacer una comparación en los usó el hint PARALLEL en Oracle y
tiempos de respuesta de estos dos SGBD se MAXDOP en SQL Server.
hicieron unas pruebas., se compararon porque La razón por la que se usan estas consultas
además de soportar paralelismo son dos de los para las pruebas es que el procesamiento en
de mayot posicionamiento en el mercado. paralelo y distribuido al mismo tiempo tiene
Las condiciones de las pruebas siguen las limitaciones en SQL Server. Consulta sobre
descritas en la metodología antes datos remotos sin paralelismo considérese la
mencionada. Consulta 1 en SQL Server
Se ejecutaron dos consultas: la primera
corresponde a la Consulta 1 presentada, la
segunda consulta Consulta 2 todos los
empleados y departamentos están en el
computador central, por este motivo los
Procesamiento en paralelo y distribuido en dos SGBD 11

Consulta sobra datos locales con paralelismo VI. CONCLUSIONES


en SQL Server. En este artículo se presentó un caso de estudio
donde se evaluó el desempeño de una
consulta en dos SGBD. En particular las
pruebas no se hicieron en físico por falta de
recursos tecnológicos como los tres
Considérese la misma consulta en Oracle (en computadores, el router y un ambiente
la consulta anterior se quita OPTION distribuido. La consulta que incluía entre sus
(MAXDOP 4) y se adiciona al SELECT operaciones unión, reunión (join),
principal el hint /*+PARALLEL(4)). agrupamiento y ordenamiento, fue ejecutada
En particular, en SQL Server si el en un ambiente distribuido y con diferentes
MAXDOP es mayor al número de grados de paralelismo, aparte de eso se
procesadores del computador, este lo evaluaron las formas de distribución del
ignora y solo usa el número de trabajo entre los computadores de la red
procesadores disponibles (Microsoft, (cluster). El caso de estudio tato de hacerse de
2015). una manera sencilla y lo ideal es que se
En las pruebas el computador central tenía evalúen consultas y sentencias más complejas
cuatro procesadores; por consiguiente, el (por ejemplo, una consulta que involucre
DOP que siempre eligió SQL Server fue 4. En varias reuniones), los resultados evidencian
ese sentido, para la comparación con las las diferencias de rendimiento entre los dos
consultas paralelas en Oracle también se usó SGBD y cómo se afecta este según el grado
un DOP = 4. De otra parte, en SQL Server es del paralelismo y del número de procesadores
posible establecer un umbral para el usado. Incluso, algunas pruebas mostraron
paralelismo: a cada consulta SQL Server le que en ocasiones el procesamiento secuencial
asigna un costo, si este supera el umbral puede ser más eficiente que un procesamiento
establecido, la consulta se hace de manera en paralelo y distribuido.
paralela. Si se establece este umbral en el Como un trabajo futuro se planea llevar a
valor mínimo (1), se garantiza la ejecución en cabo unas consultas en una red de más
paralelo para todas las consultas. computadores y con muestras de datos
mayores, así como se planea comparar el
rendimiento de los SGBD frente a sistemas
Procesamiento en paralelo y distribuido en dos SGBD 12

como Hadoop y MongoDB, donde la 1/server.112/e17120/ds_concepts002.


programación distribuida y en paralelo se htm#i1008096
ejecuta mediante el paradigma de Oracle. (20 de Febrero de 2019). Oracle.
programación MapReduce. Obtenido de Parallel Execution with
Oracle Database:
VII. REFERENCIAS https://www.oracle.com/technetwork/
Referencias database/bi-datawarehousing/twp-
Apache Software Foundation. (2018). parallel-execution-fundamentals-
Apache Hadoop. Obtenido de 133639.pdf
www.apache.org: Oracle. (2019). Oracle Help Center.
https://hadoop.apache.org/ Obtenido de
Baskan, Y. (3 de Agosto de 2015). Oracle. https://docs.oracle.com/apps/search/s
Obtenido de The Data Warehouse earch.jsp?q=hints&category=databas
Insider: e
https://blogs.oracle.com/datawarehou Silberschatz Abraham, K. H. (2011).
sing/what-is-auto-dop Database System Concepts. New
Burleson, D. (2005). TechTarget. Obtenido York, U.S.A.: Mc Graw Hill.
de Universidad Distrital Francisco Jose De
https://www.techtarget.com/contribut Caldas. (s.f.). Sistema de revistas
or/Don-Burleson/2005 cientificas. Obtenido de
Moreno A, .. F., & CastrillonC. N y https://revistas.udistrital.edu.co/ojs/in
TabordaZ, C. (2017). Parallel and dex.php/Tecnura/issue/view/819/231
distributed processing in two SGBDS:
A case study. Tecnura, 111 - 128.
doi:10.14483/udistrital.jour.tecnura.2
017.2.a09
Oracle. (2011). Oracle® Database
Administrator's Guide. Obtenido de
docs.oracle:
https://docs.oracle.com/cd/E18283_0

Potrebbero piacerti anche