SlideShare ist ein Scribd-Unternehmen logo
1 von 21
Downloaden Sie, um offline zu lesen
@ NoSQL[br]


Edward Ribeiro – edward.ribeiro@gmail.com
Http://www.twitter.com/edward_ribeiro
Http://www.github.com/eribeiro
VoltDB não é um banco
de propósito geral
O que é VoltDB?
●   Open source           GNU GPL



                          SQL-92 (subset)
●   Relacional
                          ACID


●   In-memory              Dados e índices residem em memória



●   Distribuído           Cluster

                          Partição horizontal de dados (sharding)

●   OLTP                  Suporte ao negócio
OLTP

●   Operações pontuais e conhecidas a priori
●   Consultas recuperam somente um sub-
    conjunto pequeno de dados
●   Dados indexados
●   Grande volume de atualizações e inserções
●   Dados cabem em RAM
Ressalvas

O VoltDB não vai resolver
todos os teus problemas de
gerenciamento de dados.

O VoltDB não é um banco
monolítico!
Tópicos Importantes da Arquitetura
Execução mono-thread em cada partição       Remover a complexidade de estruturas
                                            de dados concorrentes e eliminar lockings



100% em memória                             Aumentar throughput




Stored Procedures como mecanismo de         Reduzir roundtrip de rede
interação entre aplicação cliente e banco   Eliminar user stalls
                                            Permitir otimizações na execução do SQL


Arquitetura Distribuída                     Particionar os dados, aumentando o
                                            throughput, escalabilidade e tolerância a
                                            falhas
Tabelas: Particionadas
                      ID          Titulo         Ano
                             392 Matrix                 1999
                             393 Donnie Darko           2002
                             408 Blade Runner           1985
                             412 Terminator             1985




ID       Titulo       Ano
                                                        ID         Titulo   Ano
     392 Matrix       1999   ID       Titulo    Ano
                                                               393 Donnie     2002
     412 Terminator   1985        408 Blade      1985              Darko
                                      Runner
Tabelas: Replicadas
     UF      Nome
     AC      Acre
     DF      Distrito Federal
     SP      São Paulo
     RJ      Rio de Janeiro
     ES      Espírito Santo




UF        Nome
AC        Acre                      UF   Nome

DF        Distrito Federal          AC   Acre

SP        São Paulo                 DF   Distrito Federal

RJ        Rio de Janeiro            SP   São Paulo

ES        Espírito Santo            RJ   Rio de Janeiro
                                    ES   Espírito Santo
Partição (site)
                               Stored Procedure




                   Execution
                    Engine




                     Dados
                     Índices




●   Execution Engine é single-threaded
●   Cada partição equivale a um núcleo de CPU
Stored Procedures

●   Dois tipos:
        –   Partição única (single partitioning)
                ●   update ano from movie where id = 1289;


        –   Multi-partição (multi-partitioning)
                ●   select count(*) from movie;
●   Stored Procedure = Transação
Durabilidade

●   O “D” em ACID
       –   K-Safety
       –   Snapshot
       –   Command-Logging
K-Safety

●   Replicação de dados
●   k-1: cada partição é replicada em duas
    máquinas
●   k-2: cada partição é replicada em três
    máquinas
●   k-3: cada partição é replicada em quatro
    máquinas.
●   ....
Export x Snapshot

●   Snapshot
       –   Backup
       –   Durabilidade
       –   Pode ser executado de forma discreta ou
            contínua (e.g., a cada 250 ms)
●   Export
       –   Interface para outros sistemas (SQL ou
             NoSQL)
Command Logging
Command Logging
Versão 2.0

●   Command Logging
●   GUI Admin interface
●   Suporte JDBC/ODBC
●   VoltOne
Melhores Práticas
●   Maximize o número de transações de partição única
●   Escolha com cuidado a coluna de partição das tabelas
●   As stored procedures não devem ser muito longas nem
    acessar recursos externos (web, email, etc).
●   Distribua as conexões dos clientes entre os nós do cluster
●   http://community.voltdb.com
Casos de Uso (potenciais)
●   Jogos on-line
●   Monitoramento do mercado financeiro
●   Reserva de passagens aéreas on-line
●   Propaganda on-line
●   Tracking de pacotes
●   Registro de chamadas telefônicas
●   Real-time Analytics
●   Fonte:http://highscalability.com/blog/2010/12/6/what-the-heck-are-you-
    actually-using-nosql-for.html
Contato

●   http://www.twitter.com/edward_ribeiro
●   http://www.github.com/eribeiro
●   edward [dot] ribeiro [at] gmail [dot] com
Obrigado!
Perguntas?

Weitere ähnliche Inhalte

Andere mochten auch

Proposta de investigação 12-11-2010
Proposta de investigação 12-11-2010Proposta de investigação 12-11-2010
Proposta de investigação 12-11-2010
Daniela Ramos
 
Treball de recuperacio
Treball de recuperacioTreball de recuperacio
Treball de recuperacio
adaura
 
Nuestra querida benemerita
Nuestra querida benemeritaNuestra querida benemerita
Nuestra querida benemerita
laieneblog
 
Certifikat_Mađarska_GANZ
Certifikat_Mađarska_GANZCertifikat_Mađarska_GANZ
Certifikat_Mađarska_GANZ
Ante Maric
 
SIX SIGMA GREEN BELT CERTIFICATE
SIX SIGMA GREEN BELT CERTIFICATESIX SIGMA GREEN BELT CERTIFICATE
SIX SIGMA GREEN BELT CERTIFICATE
Sushil Bhavthankar
 
Locandina mase2013 pdf
Locandina mase2013 pdfLocandina mase2013 pdf
Locandina mase2013 pdf
fridaitalia
 
He honor a la memoria
He honor a la memoriaHe honor a la memoria
He honor a la memoria
HJTandil66
 
Prepara-te para as Olimpíadas do Ambiente!
Prepara-te para as Olimpíadas do Ambiente!Prepara-te para as Olimpíadas do Ambiente!
Prepara-te para as Olimpíadas do Ambiente!
goreti fernandes
 

Andere mochten auch (19)

Proposta de investigação 12-11-2010
Proposta de investigação 12-11-2010Proposta de investigação 12-11-2010
Proposta de investigação 12-11-2010
 
A abordagem pedagógica da UE: métodos de educação não formal – exemplos de pr...
A abordagem pedagógica da UE: métodos de educação não formal – exemplos de pr...A abordagem pedagógica da UE: métodos de educação não formal – exemplos de pr...
A abordagem pedagógica da UE: métodos de educação não formal – exemplos de pr...
 
Ficha
FichaFicha
Ficha
 
Treball de recuperacio
Treball de recuperacioTreball de recuperacio
Treball de recuperacio
 
Birthday Card
Birthday CardBirthday Card
Birthday Card
 
Nuestra querida benemerita
Nuestra querida benemeritaNuestra querida benemerita
Nuestra querida benemerita
 
Certifikat_Mađarska_GANZ
Certifikat_Mađarska_GANZCertifikat_Mađarska_GANZ
Certifikat_Mađarska_GANZ
 
Water Slide Rentals Miami
Water Slide Rentals MiamiWater Slide Rentals Miami
Water Slide Rentals Miami
 
1
11
1
 
Curitibanos história de nossa gente parte 4
Curitibanos história de nossa gente   parte 4Curitibanos história de nossa gente   parte 4
Curitibanos história de nossa gente parte 4
 
SIX SIGMA GREEN BELT CERTIFICATE
SIX SIGMA GREEN BELT CERTIFICATESIX SIGMA GREEN BELT CERTIFICATE
SIX SIGMA GREEN BELT CERTIFICATE
 
Memoria Para Votar
Memoria Para VotarMemoria Para Votar
Memoria Para Votar
 
Locandina mase2013 pdf
Locandina mase2013 pdfLocandina mase2013 pdf
Locandina mase2013 pdf
 
He honor a la memoria
He honor a la memoriaHe honor a la memoria
He honor a la memoria
 
Prepara-te para as Olimpíadas do Ambiente!
Prepara-te para as Olimpíadas do Ambiente!Prepara-te para as Olimpíadas do Ambiente!
Prepara-te para as Olimpíadas do Ambiente!
 
PresentacióN1
PresentacióN1PresentacióN1
PresentacióN1
 
Garzas Cautivas 2447
Garzas Cautivas 2447Garzas Cautivas 2447
Garzas Cautivas 2447
 
Demofotos
DemofotosDemofotos
Demofotos
 
Lidando com a ansiedade: em busca de um novo pensamento
Lidando com a ansiedade: em busca de um novo pensamentoLidando com a ansiedade: em busca de um novo pensamento
Lidando com a ansiedade: em busca de um novo pensamento
 

Ähnlich wie Voltdb @ NoSQL[br]

VoltDB talk at QCON-Brasil
VoltDB talk at QCON-BrasilVoltDB talk at QCON-Brasil
VoltDB talk at QCON-Brasil
Edward Ribeiro
 
Entendendo o Modelo de Atores
Entendendo o Modelo de AtoresEntendendo o Modelo de Atores
Entendendo o Modelo de Atores
Paulo Siqueira
 
[AzurePT] SQL Azure Federations
[AzurePT] SQL Azure Federations[AzurePT] SQL Azure Federations
[AzurePT] SQL Azure Federations
Vitor Tomaz
 
Virtualização de Banco de Dados por Bruno Domingues
Virtualização de Banco de Dados por Bruno DominguesVirtualização de Banco de Dados por Bruno Domingues
Virtualização de Banco de Dados por Bruno Domingues
Joao Galdino Mello de Souza
 

Ähnlich wie Voltdb @ NoSQL[br] (20)

VoltDB talk at QCON-Brasil
VoltDB talk at QCON-BrasilVoltDB talk at QCON-Brasil
VoltDB talk at QCON-Brasil
 
Curso "Desenvolvendo aplicações de uso geral para GPU com CUDA".
Curso "Desenvolvendo aplicações de uso geral para GPU com CUDA".Curso "Desenvolvendo aplicações de uso geral para GPU com CUDA".
Curso "Desenvolvendo aplicações de uso geral para GPU com CUDA".
 
Jsummit 2014
Jsummit 2014Jsummit 2014
Jsummit 2014
 
Entendendo o Modelo de Atores
Entendendo o Modelo de AtoresEntendendo o Modelo de Atores
Entendendo o Modelo de Atores
 
Mistério ou tecnologia? Paralelismo!
Mistério ou tecnologia? Paralelismo!Mistério ou tecnologia? Paralelismo!
Mistério ou tecnologia? Paralelismo!
 
Geração Automática de Autómatos Celulares para FPGA
Geração Automática de Autómatos Celulares para FPGAGeração Automática de Autómatos Celulares para FPGA
Geração Automática de Autómatos Celulares para FPGA
 
Desenvolvendo Aplicações de Uso Geral para GPU com CUDA
Desenvolvendo Aplicações de Uso Geral para GPU com CUDADesenvolvendo Aplicações de Uso Geral para GPU com CUDA
Desenvolvendo Aplicações de Uso Geral para GPU com CUDA
 
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAPalestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVA
 
Placa mãe e seus componentes
Placa mãe e seus componentesPlaca mãe e seus componentes
Placa mãe e seus componentes
 
Processadores core i3 e amd
Processadores core i3 e amdProcessadores core i3 e amd
Processadores core i3 e amd
 
Mini-curso CUDA
Mini-curso CUDAMini-curso CUDA
Mini-curso CUDA
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigData
 
[AzurePT] SQL Azure Federations
[AzurePT] SQL Azure Federations[AzurePT] SQL Azure Federations
[AzurePT] SQL Azure Federations
 
Otimizando um banco de dados Oracle para Exadata
Otimizando um banco de dados Oracle para ExadataOtimizando um banco de dados Oracle para Exadata
Otimizando um banco de dados Oracle para Exadata
 
DBA became DMA for Oracle Exadata X2-2
DBA became DMA for Oracle Exadata X2-2DBA became DMA for Oracle Exadata X2-2
DBA became DMA for Oracle Exadata X2-2
 
Apostila de montagem e manutenção de computadores emi mario gurgel
Apostila de montagem e manutenção de computadores emi mario gurgelApostila de montagem e manutenção de computadores emi mario gurgel
Apostila de montagem e manutenção de computadores emi mario gurgel
 
Escalabilidade, as modas, (No)SQL
Escalabilidade, as modas, (No)SQLEscalabilidade, as modas, (No)SQL
Escalabilidade, as modas, (No)SQL
 
Virtualização de Banco de Dados por Bruno Domingues
Virtualização de Banco de Dados por Bruno DominguesVirtualização de Banco de Dados por Bruno Domingues
Virtualização de Banco de Dados por Bruno Domingues
 
Imergindo jvm[Apresentação ]
Imergindo jvm[Apresentação ]Imergindo jvm[Apresentação ]
Imergindo jvm[Apresentação ]
 
Introdução aos sistemas operacionais embarcados
Introdução aos sistemas operacionais embarcadosIntrodução aos sistemas operacionais embarcados
Introdução aos sistemas operacionais embarcados
 

Voltdb @ NoSQL[br]

  • 1. @ NoSQL[br] Edward Ribeiro – edward.ribeiro@gmail.com Http://www.twitter.com/edward_ribeiro Http://www.github.com/eribeiro
  • 2. VoltDB não é um banco de propósito geral
  • 3. O que é VoltDB? ● Open source GNU GPL SQL-92 (subset) ● Relacional ACID ● In-memory Dados e índices residem em memória ● Distribuído Cluster Partição horizontal de dados (sharding) ● OLTP Suporte ao negócio
  • 4. OLTP ● Operações pontuais e conhecidas a priori ● Consultas recuperam somente um sub- conjunto pequeno de dados ● Dados indexados ● Grande volume de atualizações e inserções ● Dados cabem em RAM
  • 5. Ressalvas O VoltDB não vai resolver todos os teus problemas de gerenciamento de dados. O VoltDB não é um banco monolítico!
  • 6.
  • 7. Tópicos Importantes da Arquitetura Execução mono-thread em cada partição Remover a complexidade de estruturas de dados concorrentes e eliminar lockings 100% em memória Aumentar throughput Stored Procedures como mecanismo de Reduzir roundtrip de rede interação entre aplicação cliente e banco Eliminar user stalls Permitir otimizações na execução do SQL Arquitetura Distribuída Particionar os dados, aumentando o throughput, escalabilidade e tolerância a falhas
  • 8. Tabelas: Particionadas ID Titulo Ano 392 Matrix 1999 393 Donnie Darko 2002 408 Blade Runner 1985 412 Terminator 1985 ID Titulo Ano ID Titulo Ano 392 Matrix 1999 ID Titulo Ano 393 Donnie 2002 412 Terminator 1985 408 Blade 1985 Darko Runner
  • 9. Tabelas: Replicadas UF Nome AC Acre DF Distrito Federal SP São Paulo RJ Rio de Janeiro ES Espírito Santo UF Nome AC Acre UF Nome DF Distrito Federal AC Acre SP São Paulo DF Distrito Federal RJ Rio de Janeiro SP São Paulo ES Espírito Santo RJ Rio de Janeiro ES Espírito Santo
  • 10. Partição (site) Stored Procedure Execution Engine Dados Índices ● Execution Engine é single-threaded ● Cada partição equivale a um núcleo de CPU
  • 11. Stored Procedures ● Dois tipos: – Partição única (single partitioning) ● update ano from movie where id = 1289; – Multi-partição (multi-partitioning) ● select count(*) from movie; ● Stored Procedure = Transação
  • 12. Durabilidade ● O “D” em ACID – K-Safety – Snapshot – Command-Logging
  • 13. K-Safety ● Replicação de dados ● k-1: cada partição é replicada em duas máquinas ● k-2: cada partição é replicada em três máquinas ● k-3: cada partição é replicada em quatro máquinas. ● ....
  • 14. Export x Snapshot ● Snapshot – Backup – Durabilidade – Pode ser executado de forma discreta ou contínua (e.g., a cada 250 ms) ● Export – Interface para outros sistemas (SQL ou NoSQL)
  • 17. Versão 2.0 ● Command Logging ● GUI Admin interface ● Suporte JDBC/ODBC ● VoltOne
  • 18. Melhores Práticas ● Maximize o número de transações de partição única ● Escolha com cuidado a coluna de partição das tabelas ● As stored procedures não devem ser muito longas nem acessar recursos externos (web, email, etc). ● Distribua as conexões dos clientes entre os nós do cluster ● http://community.voltdb.com
  • 19. Casos de Uso (potenciais) ● Jogos on-line ● Monitoramento do mercado financeiro ● Reserva de passagens aéreas on-line ● Propaganda on-line ● Tracking de pacotes ● Registro de chamadas telefônicas ● Real-time Analytics ● Fonte:http://highscalability.com/blog/2010/12/6/what-the-heck-are-you- actually-using-nosql-for.html
  • 20. Contato ● http://www.twitter.com/edward_ribeiro ● http://www.github.com/eribeiro ● edward [dot] ribeiro [at] gmail [dot] com