Globalcode – Open4education
VoltDB: as vantagens e os desafios
dos banco de dados NewSQL
Luiz Henrique Zambom Santana
lhzsantana@gmail.com
Globalcode – Open4education
Apresentação
• Doutorando na UFSC
• Gerente de Desenvolvimento de Software na SocialBase
Globalcode – Open4education
Agenda
• Evolução do SQL
• Problemas com o SQL e NoSQL
• NoSQL comparação
• NewSQL
• VoltDB
• Demo
• Conclusões
Globalcode – Open4education
Not only SQLSadalage e Fowler, 2012
(http://martinfowler.com/books/nosql.html)
Relational databases will be a
footnote in historyNathan Marz, 2014
(http://www.slideshare.net/nathanmarz/runaway-complexity-in-big-data-and-a-plan-to-stop-it)
Evolução do SQL
4
Globalcode – Open4education
SQL and NoSQL will merge
“Not yet SQL”
Michael Stonebraker, 2015
https://www.youtube.com/watch?v=KRcecxdGxvQ
Evolução do SQL
5
Globalcode – Open4education
Problema SQL:
múltiplos gargalos
6
Globalcode – Open4education
NewSQL: comparação
7
Globalcode – Open4education
NoSQL vs. NewSQL: produtos
8
Globalcode – Open4education
Mercado NewSQL
9
Globalcode – Open4education
NewSQL: definições
• Definições
• SQL como interface principal
• Suporte a transações ACID
• Sem lock no controle de concorrência
• Alto desempenho
• Arquitetura escalável (share nothing)
• HBase, Clustrix, NuoDB e VoltDB
10
Globalcode – Open4education
Share nothing
11
Globalcode – Open4education
NewSQL: como?
• Main Memory Storage
• Partitioning / Sharding
• Concurrency Control
• Agendamento ou multi-versões
• Secondary Indexes
• Replication
• Crash Recovery
12
Globalcode – Open4education
HStore
13
Globalcode – Open4education
VoltDB
• Evolução do C-Store e
H-Store
• http://hstore.cs.brown.edu/docu
mentation/faq/
• Visão:
• VoltDB relies on horizontal partitioning
down to the individual hardware thread to
scale, k-safety (synchronous replication) to
provide high availability, and a
combination of continuous snapshots and
command logging for durability (crash 14
Globalcode – Open4education
VoltDB
15
Globalcode – Open4education
VoltDB: arquitetura
16
Globalcode – Open4education
K-safety
17
• A segurança K é uma medida
de quantas cópias dos dados
existem no cluster
Globalcode – Open4education
Command logging
18
Globalcode – Open4education
Recuperação de desastre
19
Globalcode – Open4education
VoltDB: integrações
20
Globalcode – Open4education
Ferramentas
• https://github.com/VoltDB/voltdb-client-php
• https://docs.voltdb.com/javadoc/java-client-api/
• https://docs.voltdb.com/UsingVoltDB/ProgLangjdbc.php
•
Globalcode – Open4education
https://github.com/lhzsantana/app-fastdata
SHOW ME THE
CODE!!!
Globalcode – Open4education
VoltDB: console
23
Globalcode – Open4education
Benchmark - YCSB workload B
(Yahoo! Cloud Service Benchmark)
https://www.voltdb.com/blog/2017/10/02/comparing-fast-data-performance-a-comparison-of-voltdb-and-ca
ssandra-benchmarks/
Globalcode – Open4education
Resumo
O termo NewSQL inclui bancos de dados que prometem a
escalabilidade dos NoSQL e transações ACID e linguagem SQL dos
bancos de dados tradicionais. O VoltDB, desenvolvido pela equipe
de Michael Stonebraker, é o principal exemplo dessa vertente. Essa
palestra apresenta a experiência de uso do VoltDB, descreve
benefícios de desafios do seu uso, e compara essa solução com
outras ferramentas como o Apache Ignite.
Globalcode – Open4education
Conclusões
• Vantagens
• SQL
• Super escalável
• Desvantagens
• Poucas ferramentas
• Poucas soluções de nuvem
Globalcode – Open4education
Referência
What’s Really New with NewSQL?
https://db.cs.cmu.edu/papers/2016/pavlo
-newsql-sigmodrec2016.pdf
Globalcode – Open4education
Globalcode – Open4education
Referência
Debunking Myths About the VoltDB
In-Memory Database
https://dzone.com/articles/debunking-myt
hs-about-voltdb

VoltDB: as vantagens e os desafios dos banco de dados NewSQL