Sunteți pe pagina 1din 7

EVALUACIN DE CARACTERSTICAS NOSQL EN

POSTGRESQL

EVALUATION OF FEATURES NOSQL IN POSTGRESQL

MSc. Anthony Rafael Sotolongo Len1, MSc. YudisneyVazquez Ortz2

1 DATEC-Facultad 6, Universidad de las Ciencias Informticas, asotolongo@uci.cu


2 DATEC-Facultad 6, Universidad de las Ciencias Informticas, yvazquezo@uci.cu

Taller: Quinto PGDay Cubano

La Habana, octubre de 2013

RESUMEN
Las bases de datos relacionales han sido las herramientas por excelencia para el
almacenamiento de la informacin en los sistemas informticos. No obstante, las bases de
datos NoSQL, como tendencia, han venido ganando espacio especialmente por la escalabilidad
y velocidad en sus tiempos de respuestas. PostgreSQL ha incorporado algunas caractersticas
de tipo NoSQL, como el almacenamiento efmero y el manejo de datos JSON; caractersticas
que pueden aprovecharse para realizar acciones desde el gestor dndole mayor potencia. El
objetivo de este artculo es evaluar, mediante un experimento, el comportamiento de las
caractersticas NoSQL de PostgreSQL frente a un gestor NoSQL, respecto a los tiempos de
respuestas.
Palabras Clave: caractersticas NoSQL en PostgreSQL, MongoDB, PostgreSQL

ABSTRACT
The relational databases have been the tools by excellence for the information storage in the
informatics systems. However, NoSQL databases, as a trend, have been gaining ground
especially for the scalability and speed in their response times. PostgreSQL has incorporated
some NoSQL features such as ephemeral storage and JSON data management; features which
can be used to perform actions from the databases management system giving him more power.
The aim of this paper is to evaluate, by an experiment, the behavior of the PostgreSQL NoSQL
characteristics against a NoSQL management, regarding response times.
KeyWords: features NoSQL in PostgreSQL, MongoDB, PostgreSQL

1. INTRODUCCIN
Las bases de datos relacionales han sido las herramientas por excelencia para el
almacenamiento de la informacin en los sistemas informticos desde su surgimiento
en las dcadas del 70 y el 80.No obstante, lasbases de datos NoSQL, como tendencia,
han venido ganando espacio especialmente por la escalabilidad y velocidad en sus
tiempos de respuestas, superiores a los de los sistemas relacionales. [1]
Este tipo de bases de datos no garantizan las propiedades ACID (Atomicity,
Consistency,Isolation and Durability) en aras de potenciar el rendimiento y la
escalabilidad, basndose en elteorema CAP (Consistency, Availabilityand Partition
Tolerance), que plantea que un sistema no puedecontar con ms de dos de estas tres
propiedades a la vez. [2]
El movimiento NoSQL no es nuevo, se inici a finales de los 90 cuando las bases de
datos XML comenzaron a ganar espacio con excelentes propuestas, sobre todo
ofreciendo la posibilidad de consultas sobre datos XML. Caracterstica que
posteriormente las bases de datos relacionales incorporaron. [3]
Las bases de datos NoSQL y las relacionales no se solapan, ms bien cada una
garantiza las caractersticas para las cuales fueron desarrolladas. De ah que muchas
empresas las utilicen juntas para diferentes actividades tales como Facebook, el gestor
de blog Tumblr yotros. [4]
PostgreSQL ha incorporado algunas caractersticas de tipo NoSQL, como el
almacenamiento efmero y el manejo de datos en formato Notacin de Objetos
JavaScript (JSON); caractersticas que pueden aprovecharse para realizar acciones
desde el gestor dndole mayor potencia. El objetivo de este artculo es evaluar el
comportamiento de las caractersticas NoSQL de PostgreSQL frente a un gestor
NoSQL, respecto a los tiempos de respuestas.

2. CONTENIDO
2.1 Caractersticas NoSQL de PostgreSQL
Desde la versin 9.1 de PostgreSQL se aadi la caracterstica de almacenamiento
1

efmero mediante la implementacin de tablas UNLOGGED, de las que su informacin


no se guarda en losWrite-Ahead Log (WAL),lo que implica que no se garantiza la
permanencia de los datos en caso de mal funcionamiento en la base de datos, ya sea
por prdida de fluido elctrico o algn problema fsico o lgico. Esto implica que la
propiedad Durabilidad de las caractersticas ACID se pierde. [5]
En la versin 9.2 se aadi el tipo de datos JSON, el cual permite el almacenamiento
de datos en dicho formato, garantizndose su validacin. Ya en la versin 9.3 este tipo
de dato fue mejorado, aadindosele nuevas funciones para el trabajo con l y
mejorando el analizador de su validacin. [6]

2.2 Bases de datos NoSQL orientadas a documentos


Las bases de datos NoSQL se dividen en cuatro grandes grupos: grupos llave-valor,
llave-valor por columnas, de grafos y orientadas a documentos. [6]
Las orientadas a documentos almacenan su informacin en forma de documento
utilizando el formato JSON. Las bases de datos de tipo documento ms populares son
CouchDB y MongoDB segn el sitio db-engines, el cual se dedica a mostrar un ranking
de las bases de datos ms utilizadas en el mundo. [7]
Segn un estudio realizado, MongoDBbrinda mejores tiempos de respuesta en la
insercin de informacin. Por tanto, para este trabajo, se elige para realizar la
comparacin de los tiempos de respuestas de las caractersticas NoSQL de
PostgreSQL.[8]

2.3 Caractersticas del experimento


Las pruebas de comparacin o benchmarking son experimentos que evalan una o
ms herramientas para comparar su comportamiento. Para realizar las pruebas se
deben definir mtricas, que en el marco de este estudio sern el tiempo de escritura de
PostgreSQL y MongoDB; usando la variable nmero de usuarios (5,10 y20).
Para la realizacin del experimento se utiliz el lenguaje de programacin Python, el
cual permite la implementacin de hilos y posee una amplia y bien documentada API
2

para el trabajo con MongoDB(pymongo) y PostgreSQL (psycopg).


Unfragmento del cdigo utilizado para hacer el experimento es el siguiente:
def hacer():
#rutina a realizar
defmain():
i=1
whilei<=#user(thread):
hilo=threading.Thread(target=hacer,name=i)
hilo.start()
i=i+1
if __name__=='__main__':
main()
El formato del documento JSON es:
{ "atributo1": 1, atributo2:valor}
La estacin de trabajo utilizada tiene un CPU Intel Pentium 4 a 3.00GHz con 1Gb de
RAM y 160Gb de disco duro a 7200rpm; como sistema operativo Linux Ubuntu 12.04
con un sistema grfico Gnome 3.4.2 y el kernel 3.2.0.29.

3. RESULTADOS DEL EXPERIMENTO


En este estudio para cada caso se analiz el promedio de los tiempos de respuestas
de

las

concurrencias,

por

ejemplo:

10

usuarios=

(tiempo

de

respuesta

peticin)/10.Esto se realiz 3 veces cada una y luego se promedi para obtener el


resultado aproximado de los tiempos de respuestas.

3.1 Tiempo de respuesta de insercin de documentos


La tabla 1 y figura 1 muestran los resultados de los tiempos de respuestas de la
insercin de 10 documentos JSON por 5,10 y 20 usuarios respectivamente.

Tabla 1: Tiempos de respuesta en la insercin de 10 documentos JSON por usuarios


Cantidad

Tiempo de respuesta (segundos)

de
MongoDB

PostgreSQl

PostgreSQL(unlogged)

0.029708239

0.055887715

0.034575348

10

0.03328694

0.098712585

0.060710421

20

0.063031089

0.132417333

0.105056886

usuarios

Insercin de 10 documentos JSON


MongoDB

PostgreSQl

PostgreSQL(unlogged)

Exponencial (MongoDB)

Exponencial (PostgreSQl )

Exponencial (PostgreSQL(unlogged))

0,16
0,14

Segundos

0,12
0,1
0,08
0,06
0,04
0,02
0
5 usuarios

10 usuarios

20 usuarios

Cantidad de usuarios

Figura 1: Tiempos de respuesta de Mongo y PostgreSQL en la insercin de 10 JSON


Como puede apreciarse, los tiempos de respuestas de MongoDB son mejores en
todos los casos, pero cabe destacar que las propiedades NoSQL incorporadas a
PostgreSQL reducen considerablemente los tiempos de respuestas en la insercin, ya
medida que se incrementan los usuarios ambos mantienen una respuesta estable, es
decir una pendiente de crecimiento no sufre cambios significativos.

4. CONCLUSIONES
El gestor de bases de datos PostgreSQL ha ido incorporando paulatinamente
caractersticas NoSQL, destacando los tipos de datos de documentos JSON y el
almacenamiento efmero. Dichas caractersticas fueron evaluadas con respecto a
MongoDB, el gestor NoSQL de mejores tiempos de respuestas. El estudio realizado
muestra que PostgreSQL ha mejorado considerablemente los tiempos de respuestas
con la incorporacin deestas particularidades NoSQL. Si bien an no est al nivel de los
tiempos de respuesta de MongoDB, s constituye un paso de avance en la
incorporacin de estas caractersticas, que les permitirn a los usuarios hacer uso de
ellas sin tener que migrar a un nuevo gestor de bases de datos.

5. REFERENCIAS BIBLIOGRFICAS
1. Leavitt, N. Will NoSQL Databases Live Up to Their Promise?, Computer: 2010,
Vol. 43, No. 2, pp.12-14.
2. HechtR., Jablonski S.NoSQL Evaluation, en International Conference on Cloud
and Service Computing 2011.
3. MomjianB.The Data Administration Newsletter.TheFuture of RelationalDatabases,
Febrero 2013, http://www.tdan.com/view-articles/16834
4. Tumblr.

TumblrArchitecture

HarderToScaleThanTwitter.

15

Billion

Page

Views

Month

[Consultado:

And
13-12-

2012];http://highscalability.com/blog/2012/2/13/tumblr-architecture-15-billion-pageviews-a-month-and-harder.html
5. PGDG,PostgreSQL 9.3 Documentation. Berkeley, California: s.n., pp1330-1344,
2013. [En lnea]. Disponible en: http://www.postgresql.org/docs/
6. PGDG,PostgreSQL 9.3 Documentation. Berkeley, California: s.n., pp 47, 2013. [En
lnea]. Disponible en: http://www.postgresql.org/docs/
7. Von der Weth, C., A MultitermKeywordSearch in NoSQLSystems, Internet
Computing, IEEE Vol. 16, Issue: 1 Digital, pp.34-42, 2012
8. Sotolongo A., Vazquez Y., MongoDB vs Couchdb: seleccin de una base de datos
NoSQL para las aplicaciones de comercio electrnico, Informtica, 2013.
5

S-ar putea să vă placă și