Você está na página 1de 5

Avaliao de Performance do Neo4j e MongoDB no

Contexto de Internet das Coisas


Hlder S. Faria1
1

Pontifcia Universidade Catlica de Minas Gerais (PUCMINAS)


Caixa Postal 30535-901 Belo Horizonte MG Brazil
heldersfaria@gmail.com

Abstract. New technologies have emerged as smart objects that have data
processing, Internet access and other features. With these devices is inevitable
the large volume of data and structured or unstructured data. As Relational
Database have shown poor performance in this scenario, the alternative to this
problem arose with NoSQL. This study evaluates the database performance
Neo4J and MongoDB. In order to perform this study is carried out operations
using a data mass similar to an Internet of Things scenario. The key contribution
of this paper is guidance on how to evaluate and choose the DBMS for projects
containing the Internet of Things scenario.
Resumo. Novas tecnologias tm surgido como os objetos inteligentes que
possuem processamento de dados, acesso a internet e outras funcionalidades.
Com estes aparelhos inevitvel o grande volume de dados e dados
estruturados ou no. Como Bancos Relacionais tm apresentado baixa
performance a este cenrio, a alternativa para este problema surgiu com os
NoSql. Este trabalho avalia o desempenho do banco de dados Neo4J e
MongoDB. Como forma de realizar este estudo realizado operaes utilizando
uma massa de dados semelhante a de um cenrio de Internet das Coisas. A
contribuio chave deste artigo a orientao sobre como avaliar e escolher o
SGBD para projetos contenham o cenrio de Internet das Coisas.

1. Introduo
Sistemas de Gerenciamento de Base de Dados Relacionais (SGBDR) tm sido largamente
utilizado nos ltimos anos, porm novas aplicaes tem exigido cada vez mais alta
disponibilidade, grande performance e escalabilidade. [Rith et all, 2014].
Observando isto, Cuzzocrea, Song e Davis (2011) citam o termo BigData. Com
foco em alta performance e quantidade de dados, podendo tratar colees de dados
complexos, sendo estruturados ou no, e com uma vasta famlia de aplicaes.
Cattel (2011) descreve que SGBDs que tratam o termo BigData so chamados de
Not Only Sql (NoSQL) e que a existncia dos mesmos no seria para substitur os bancos
relacionais, mas sim apenas para dar uma alternativa de soluo aos problemas
encontrados atualmente. O teorema CAP Brewer explica que qualquer SGBD pode
possuir apenas duas das trs caractersticas consistncia, disponibilidade e tolerncia a
partio.
SGBDs NoSql visam relaxar as propriedades de Atomicidade, Consistncia,
Isolamento e Durabilidade (ACID) por no haver garantias de atingir os objetivos de
desempenho e escalabilidade. Com esta forma de tratamento surge o conceito
Basicamente Disponvel, Estado flexvel e Eventualmente Consistente (BASE) [Cattel,
2011].

Tavares e outros (2016) associam o conceito BigData Internet das Coisas (IoT).
Este ltimo tambm citado por Jenkins (2015) como uma tendncia para que vrios tipos
de artefatos fsicos possuem processamento e conectividade a redes de comunicao e que
assim possam ser capazes de trocar mensagens entre dispositivos.
BigData e IoT tem gerado grandes desafios de processamento de dados com
grande volume, heteregeneidade, necessidade de escalabilidade e autonomia de objetos
produtores e consumidores de dados [Tavares, et all, 2016].
Este artigo avalia cenrios em que SGBDs NoSql possam ser usados em um
ambinte de IoT. Durante os estudos o SGBDs Neo4J e MongoDB foram avalidos. O
primeiro tem o modelo de dados orientado a grafos e o segundo orientado documentos. A
objetivo do estudo avaliar a performance duas formas de persistncia em um cenrio de
internet das coisas.
A seguir o artigo organizado da seguinte maneira, na sesso dois h uma
explicao sobre o paradigma Internet das Coisas. Na terceira sesso h uma explicao
sobre o MongoDB. E na sesso quatro Neo4J descrito como funcionamento deste
banco de dados. Depois de estudado os SGBDs a sesso cinco descreve como foi feita a
metodologia deste estudo, seus resultados obtidos vem em seguida na sesso seis e por
ultimo sesso sete mostra as concluses.

2. Internet das Coisas


Segundo Karakostas e Bessis (2016) objetos inteligentes tm sido propostos no contexto
de Internet das Coisas para ser dispositivos equipados com capacidade de processamento
e comunicao atravs da internet.
Tais aparelhos chamados de coisas podem ser objetos simples ou complexos.
No precisam estar conectados diretamente a internet, mas precisam ser conectveis por
uma rede qualquer. [Jammes, 2016].
Ha e outros (2015) classificam servios de IoT em 3 domnios, baseando-se em trs
caractersticas Temporal, Espacial e Relacional.
Sobre a caracterstica temporal o que levado em conta se dados so servidos em
um repositrio instantaneamente ou permanentemente. Se houver existncia de limite por
periodo na criao e processamento de dados do tipo instantneo, caso contrrio do
tipo permanente.
Para a caracterstica espacial h duas classificaes local e global. Um servio
local quando h uma localizao particular com uma existncia de limite localizacional.
J um servio global quando pode ser criado e processado atravs de uma rea inteira
com nenhum ou grande limite de localizao.
O critrio relacional define os termos privado e pblico, caracterizando o servio
de IoT de acordo com a quantidade e relao dos usurios de um servio. Um relaco
privada teria como exemplo um servio que uma famlia utiliza e uma relao pblica
haveria um compartilhamento de servios com diversas pessoas.
Com estas caractersticas apresentadas possvel perceber a grande aplicabilidade
de IoT em diversas reas. Hefnawy e outros (2016) e CrabTree e Tolmie (2016) exploram
vrias reas que podem possuir objetos inteligentes, como por exemplo Energia,
Vestuario, Comunicaes, Transportes, Ambiental, Cobertura de Desastre, Agricultura,
Sade, Educao e outras.

3. MongoDB
4. Neo4J
Kemper (2015) cita que o Neo4J surgiu em 2003 na empresa Neo Technology e tornouse open source em 2007. Hoje o cdigo fonte se encontra no GitHub para a comunidade
de colaboradores. Apesar de ser open source h uma verso Enterprise disponvel
somente atravs de pagamento de licena, nesta se contempla caractersticas adicionais
e suporte ao produto.
Goel (2015) descreve a base de dados baseada na estrutura de grafos
complemente transacional, possuindo as caractersticas ACID (Atomicidade,
Consistncia, Isolao e Durabilidade). descrito por Bruggen (2014) que ao usar este
seria como usar um estrutura de grafos como vrtices e arestas representando como cada
registro se relaciona com outra informao tornando assim a sua representao mais
natural.

Figure 1. Este figura mostra informaes armazenadas no Neo4J atravs do


browser disponibilizado pelo Sistema.

Para entender como funciona os vrtices e suas propriedades fazer uma comparao
com o modelo relacional de grande ajuda. Um vrtice seria um registro em uma tabela,
j as propriedades seria uma tabela de um nico registro na qual a coluna seria os campos
e linhas seria os valores. H possibilidade de criar referncias para cada vrtice, esta
tcnica chama da label. Ao usar este recurso possvel trabalhar com categorizao de
vrtices, criando assim um conjunto de sub grafos.
As arestas sempre possuem origem, destino e direo, alm disso possvel criar
propriedades. Assim como os vrtices possvel definir um type para a aresta, o objetivo
bastante similar com as labels.
O Neo4J possui uma linguagem declarativa chamada Cypher de fcil compreenso
para realizar requisies a base de dados. Linguagens declarativas permitem expressar
de forma clara o que se procura, declarando o padro que deseja e despreocupando como
a base de dados ir recuperar a informao.

Este banco de dados suporta requisitos de escalabilidade horizontal e vertical, alta


disponibilidade e tolerncia a falhas. Em seu cluster h um n mestre e n(s) escravo(s).
Como os dados so copiados em vrios ns todos estes so capazes de servir as
requisies. Caso haja alguma inconsistncia ou conflito de dados o n mestre decidir
qual dado e qual servidor ir servir tal requisio. H um algoritmo de eleio de um n
mestre em caso de interrupo do funcionamento do n mestre.
Para otimizar as requisies ao SGBD h um balanceamento de carga, para encargo
de otimizao as informaes podem ser tratadas como conjuntos e assim obter vantagens
como por exemplo replicar um conjunto de informaes por ser mais utilizado.

5. Metodologia
6. Resultados
7. Concluso

References
Bruggen, R. V. (2014), Learning Neo4J, Packt Publishing, 1th edition.
Cattell, R. (2011) Scalable SQL and NoSQL data stores. SIGMOD Rec. 39, 4 (May 2011),
12-27. DOI: http://dx.doi.org/10.1145/1978915.1978919
Crabtree, A. and Tolmie, P. (2016). A Day in the Life of Things in the Home. In
Proceedings of the 19th ACM Conference on Computer-Supported Cooperative Work
& Social Computing (CSCW '16). ACM, New York, NY, USA, 1738-1750. DOI:
http://dx.doi.org/10.1145/2818048.2819954
Cuzzocrea, A., Song, I., and Davis, K. C. (2011) Analytics over large-scale
multidimensional data: the big data revolution!. In Proceedings of the ACM 14th
international workshop on Data Warehousing and OLAP (DOLAP '11). ACM, New
York, NY, USA, 101-104. DOI: http://dx.doi.org/10.1145/2064676.2064695
Elliman,
D.
(2014)
The
Big
in
BigData
Misses
The
Point,
https://www.thoughtworks.com/de/insights/blog/big-big-data-misses-point , April.
Goel, A. (2015), Neo4J Cookbook, Packt Publishing, 1th edition.
Ha, J., Yoon, J., Heo, J., Han, Y., Jung, J., Yun, Y. and Eun, S. (2015). A perspective on
the IoT services through a multi-dimensional analysis. In Proceedings of the 2015
Conference on research in adaptive and convergent systems (RACS). ACM, New
York, NY, USA, 479-481. DOI= http://dx.doi.org/10.1145/2811411.2814188
Hefnawy, A., Bouras, A and Cherifi, C. (2016). IoT for Smart City Services: Lifecycle
Approach. In Proceedings of the International Conference on Internet of things and
Cloud Computing (ICC '16), Djallel Eddine Boubiche, Faouzi Hidoussi, Lyamine
Guezouli, Ahcne Bounceur, and Homero Toral Cruz (Eds.). ACM, New York, NY,
USA, Article 55 , 9 pages. DOI= http://dx.doi.org/10.1145/2896387.2896440
Jammes, F. (2016). Internet of Things in Energy Efficiency: The Internet of Things
(Ubiquity symposium). Ubiquity 2016, February, Article 2 (February 2016), 8 pages.
DOI= http://dx.doi.org/10.1145/2822887
Jenkins, T. (2015). Designing the "Things" of the IoT. In Proceedings of the Ninth
International Conference on Tangible, Embedded, and Embodied Interaction (TEI
'15).
ACM,
New
York,
NY,
USA,
449-452.
DOI:
http://dx.doi.org/10.1145/2677199.2691608
Karakostas, B and Bessis, N. (2016). Intelligent Brokers in an Internet of Things for
Logistics. In Proceedings of the International Conference on Internet of things and
Cloud Computing (ICC '16), Djallel Eddine Boubiche, Faouzi Hidoussi, Lyamine
Guezouli, Ahcne Bounceur, and Homero Toral Cruz (Eds.). ACM, New York, NY,
USA, Article 5 , 7 pages. DOI= http://dx.doi.org/10.1145/2896387.2896390
Kemper, C. (2015), Beginning Neo4J, Apress, 1th edition.
Rith, J., Lehmayr, P. S. and Meyer-Wegener, K. (2014) Speaking in tongues: SQL access
to NoSQL systems. In Proceedings of the 29th Annual ACM Symposium on Applied
Computing(SAC '14). ACM, New York, NY, USA, 855-857. DOI:
http://dx.doi.org/10.1145/2554850.2555099
Tavares, A. T., Oliveira, M. I., and Lscio, B. F. (2016). Data producer catalogs for the
web of things: a study on NoSQL solutions. In Proceedings of the 31st Annual ACM
Symposium on Applied Computing (SAC '16). ACM, New York, NY, USA, 980-985.
DOI: http://dx.doi.org/10.1145/2851613.2851660

Você também pode gostar