SlideShare ist ein Scribd-Unternehmen logo
1 von 15
Downloaden Sie, um offline zu lesen
COC762: 1o. Trabalho - The Vertica Analytic
Database: C-Store 7 Years Later.
Professores: Myrian Costa, Valeria Bastos,
Nelson Ebecken
Júlio César Chaves, COPPE/UFRJ

October 19, 2013

Júlio César Chaves, COPPE/UFRJ

COC762: 1o. Trabalho - The Vertica Analytic Database: C-Sto
Introdução

Será apresentado um resumo do seguinte artigo:
The Vertica Analytic Database: C-Store 7 Years Later.
Andrew Lamb, Matt Fuller, Ramakrishna Varadarajan Nga Tran,
Ben Vandiver, Lyric Doshi, Chuck Bear Vertica Systems, An HP
Company, Cambridge, MA. Apresentado em VLDB 2012 Istambul.
Onde é mostrado um exemplo de RDBMS comercial usando os
conceitos de "Column Store", que já abriga um banco com 8PB.

Júlio César Chaves, COPPE/UFRJ

COC762: 1o. Trabalho - The Vertica Analytic Database: C-Sto
Column Store

Tradicionalmente os bancos de dados trabalham sob o conceito
de "row-store". Ou seja, fisicamente a manipulação se dá em
nível de tuplas, mesmo que apenas uma coluna seja requisitada.
Sob o conceito de column store (C-Store), os dados ficam
particionados por padrão por colunas, permitindo abordagens até
então não compatíveis com o modelo anterior.
Apesar do interesse em bancos NoSQL, o C-Store antecipou
a demanda por um DB "web-scale".
Foi descoberto que o problema dos bancos tradicionais não
era o fato de ser ou não SQL, mas sim as estruturas internas
de armazenamento.

Júlio César Chaves, COPPE/UFRJ

COC762: 1o. Trabalho - The Vertica Analytic Database: C-Sto
Comportamento de trabalho transacional vs. analítica
Transacional: Espera-se milhares de transações por
segundo, cada transação lidando com poucas linhas. Ex.:
Inserir novos dados de vendas, atualizar saldo bancário.
Analítica: Espera-se por dezenas de transações por segundo,
cada transação lidando com grande volume de linhas. Ex.:
Agregar vendas por data e dimensões geográficas, analisar o
comportamento de diferentes usuários num site web.
Seguindo exemplo do GOOGLE, o Vertica foi desenhado para
rodar hardware moderno de conveniência x86_64. O
escalonamento é linear. Ou seja, se tenho 2 nós e adicionar 2, a
capacidade operacional duplica de fato. O sistema foi desenhado
para que as consultas anaílitas não sejam impactadas pelas
cargas.

Júlio César Chaves, COPPE/UFRJ

COC762: 1o. Trabalho - The Vertica Analytic Database: C-Sto
Modelo de dados

Assim como o padrão C-Store, o Vertica organiza os dados em
projeções, que são nada menos do que segmentos físicos
ordenados das colunas, que ficam ancoradas nas tabelas.
Os dados são armazenados sob diferentes tipos de compressão
possíveis. Por exemplo: Uma data que se repete 1 milhão de
vezes é gravada somente uma vez.
C-Store usa particionamento horizontal para aumentar o
paralelismo num mesmo nó, ao passo que o motor de execução
do Vertica faz de uma mesma divisão física, diversas sub-divisões
lógicas e assim obtém o paralelismo com menos esforço
operacional.

Júlio César Chaves, COPPE/UFRJ

COC762: 1o. Trabalho - The Vertica Analytic Database: C-Sto
Separação física: Particionamento e Segmentação

Particionamento: Trata-se de uma divisão física que obedece
cláusulas lógicas, num mesmo nó. PARTITION BY.
Segmentação: Trata-se da divisão de blocos físicos de dados
em diferentes nós, também obedecendo cláusulas lógicas via
SEGMENTED BY na criação de projeções.

Júlio César Chaves, COPPE/UFRJ

COC762: 1o. Trabalho - The Vertica Analytic Database: C-Sto
ROS e WOS - "o kernel"

ROS Read Optimized Store - Composição de áreas físicas de
dados em disco que seguem os conceitos de C-Store. Não
existem índices, pois uma área ROS nunca é modificada.
WOS Write Optimized Store - Composi´ ão de áreas de memória
c
que podem ser column store ou row store e serve
unicamente como buffer para pequenas operações DML. O
dado não é comprimido, no entanto obedece as cláusulas de
segmentação.
Nenhum dado no Vertica é excluído no próprio local onde
reside, mas sim, obedece a criação de um vetor de exclusão.
Cada update ocorre via uma exclusão seguida por uma
inserção.

Júlio César Chaves, COPPE/UFRJ

COC762: 1o. Trabalho - The Vertica Analytic Database: C-Sto
O mantenedor de tuplas - "tuple mover"

O mantenedor de tuplas é um processo interno e automático do
Vertica responsável por "digerir" e reajanjar fisicamente as
estruturas de dados. As duas principais funções do mantenedor
de tuplas são:
Moveout: Movimenta de forma assíncrona os dados de WOS
para ROS.
Mergeout: Aglutina múltiplos arquivos ROS em arquivos ROS
maiores.
O desafio do mantenedor de tuplas é manter o equilíbrio e a
tensão entre: gerar muitos pequenos arquivos de ROS ou causar
estouro de cache do WOS devido a falta arquivos ROS.

Júlio César Chaves, COPPE/UFRJ

COC762: 1o. Trabalho - The Vertica Analytic Database: C-Sto
Atualizações (updates) e transações
Cada tupla no Vertica leva consigo a data/hora (timestamp) da
transação que a gerou, assim como cada tupla apagada leva a
data/hora da transação que a apagou. Dessa forma, qualquer
seleção de dados não irá gerar bloqueio algum, pois por padrão a
seleção opera sob a forma READ COMMITED, o que no vertica
equivale a dizer que lê sempre a última época válida de dados.
Os nós do cluster trabalham em BROADCAST, assim, um nó que
se torne inacessível, é automaticamente removido do grupo e
essa informação é atualizada em todos os nós.
Se um COMMIT falhar para determinado nó, ele automaticamente
é removido do cluster sem segunda tentativa.
O ROLLBACK implica simplesmente em descartar os blocos ROS
e WOS referentes a transação que foi cancelada.

Júlio César Chaves, COPPE/UFRJ

COC762: 1o. Trabalho - The Vertica Analytic Database: C-Sto
Tolerância a falhas e log de transação

Cada projeção possui obrigatoriamente uma buddy projection,
uma espécie de "arquivo de controle" da projeção, que é capaz de
recriar as linhas e colunas que foram perdidas num nó, em outro.
Não são gerados os tradicionais "logs de transação", "transaction
log" no SQL server, "archived logs" no oracle , pois a combinação
(data+época) serve como histórico de transações passadas.

Júlio César Chaves, COPPE/UFRJ

COC762: 1o. Trabalho - The Vertica Analytic Database: C-Sto
Existe BACKUP

Lembrando que o sistema de trabalho do vertica é baseado em
arquivos "somente leitura", o backup apenas tira uma imagem dos
arquivos de catálogo e cria "hard-links" para os arquivos de
dados, para assegurar que eles não serão apagados durante o
processo de cópia, que quando finalizada, apaga os "hard-links".
É suportado backup FULL e incremental.
O único impacto do backup é o consumo de recursos extra
consumidos para levar as cópias para destinos externos.

Júlio César Chaves, COPPE/UFRJ

COC762: 1o. Trabalho - The Vertica Analytic Database: C-Sto
Integridade do Cluster

Um cluster pode realizar um processo normal de
SHUTDOWN/STARTUP com até N nós perdidos, onde N é o
2
número total de nós no cluster.

Júlio César Chaves, COPPE/UFRJ

COC762: 1o. Trabalho - The Vertica Analytic Database: C-Sto
Descoberta automática de projeções adequadas às
consultas

O vertica possui uma ferramenta nativa, chamada Database
Designer, que recebe como parâmetro uma ou mais consultas
num mesmo arquivo, e descobre a partir dos dados, quais a
projeções, com suas respectivas ordenações e segmentações
trariam o resultado desejado em menos tempo.

Júlio César Chaves, COPPE/UFRJ

COC762: 1o. Trabalho - The Vertica Analytic Database: C-Sto
Performance e Compressão

Vide abaixo, a comparação entre tempos de consultas e taxas de
compressão.

Júlio César Chaves, COPPE/UFRJ

COC762: 1o. Trabalho - The Vertica Analytic Database: C-Sto
Conclusão

O projeto vertica só foi possível devido as inovações no sentido de
"quebra de paradigma de banco de dados" juntamente com uma
solução de continuidade que não exclui conceitos, regras e formas
de trabalho já conhecidas, tanto na academia quanto no mercado.
Não podemos continuar agindo, e tratando problemas de
Petabytes da mesma forma com que estamos acostumados a
tratar os de Gigabytes. A mudança aponta claramente para uma
nova forma que não rompe com a anterior, simplesmente torna
possível a continuidade.

Júlio César Chaves, COPPE/UFRJ

COC762: 1o. Trabalho - The Vertica Analytic Database: C-Sto

Weitere ähnliche Inhalte

Was ist angesagt?

PGAnalytics - Facilitando sua vida do DBA
PGAnalytics - Facilitando sua vida do DBAPGAnalytics - Facilitando sua vida do DBA
PGAnalytics - Facilitando sua vida do DBADextra
 
PostgreSQL Transformando um elefante numa manada
PostgreSQL Transformando um elefante numa manadaPostgreSQL Transformando um elefante numa manada
PostgreSQL Transformando um elefante numa manadaFabio Telles Rodriguez
 
Chrome server2 print_http_www_hardware_com_br_dicas_entendendo_cache_ht_13737...
Chrome server2 print_http_www_hardware_com_br_dicas_entendendo_cache_ht_13737...Chrome server2 print_http_www_hardware_com_br_dicas_entendendo_cache_ht_13737...
Chrome server2 print_http_www_hardware_com_br_dicas_entendendo_cache_ht_13737...Léia de Sousa
 
Sistema Operacional de Tempo Real (vx works)
Sistema Operacional de Tempo Real (vx works)Sistema Operacional de Tempo Real (vx works)
Sistema Operacional de Tempo Real (vx works)Jose Silva
 
No sql e as vantagens na utilização do mongodb
No sql e as vantagens na utilização do mongodbNo sql e as vantagens na utilização do mongodb
No sql e as vantagens na utilização do mongodbfabio perrella
 
TDC2015 - Apache Cassandra no Desenvolvimento de Sistemas de Alto Desempenho
TDC2015 - Apache Cassandra no Desenvolvimento de Sistemas de Alto DesempenhoTDC2015 - Apache Cassandra no Desenvolvimento de Sistemas de Alto Desempenho
TDC2015 - Apache Cassandra no Desenvolvimento de Sistemas de Alto DesempenhoEiti Kimura
 
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...Marcelo Barros de Almeida
 
Cluster e replicação em banco de dados
Cluster e replicação em banco de dadosCluster e replicação em banco de dados
Cluster e replicação em banco de dadosSuissa
 
Cluster ha com banco de dados
Cluster ha com banco de dadosCluster ha com banco de dados
Cluster ha com banco de dadosMarcio Jonnes
 
Entendendo a Arquitetura de Armazenamento, parte 1
Entendendo a Arquitetura de Armazenamento, parte 1Entendendo a Arquitetura de Armazenamento, parte 1
Entendendo a Arquitetura de Armazenamento, parte 1Rodolfo Mendes
 
PostgreSQL: O melhor banco de dados Universo
PostgreSQL: O melhor banco de dados UniversoPostgreSQL: O melhor banco de dados Universo
PostgreSQL: O melhor banco de dados Universoelliando dias
 

Was ist angesagt? (17)

PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
 
PGAnalytics - Facilitando sua vida do DBA
PGAnalytics - Facilitando sua vida do DBAPGAnalytics - Facilitando sua vida do DBA
PGAnalytics - Facilitando sua vida do DBA
 
PostgreSQL Transformando um elefante numa manada
PostgreSQL Transformando um elefante numa manadaPostgreSQL Transformando um elefante numa manada
PostgreSQL Transformando um elefante numa manada
 
Chrome server2 print_http_www_hardware_com_br_dicas_entendendo_cache_ht_13737...
Chrome server2 print_http_www_hardware_com_br_dicas_entendendo_cache_ht_13737...Chrome server2 print_http_www_hardware_com_br_dicas_entendendo_cache_ht_13737...
Chrome server2 print_http_www_hardware_com_br_dicas_entendendo_cache_ht_13737...
 
Sistemas Operacionais de Tempo Real
Sistemas Operacionais de Tempo RealSistemas Operacionais de Tempo Real
Sistemas Operacionais de Tempo Real
 
Cassandra - O básico
Cassandra - O básicoCassandra - O básico
Cassandra - O básico
 
Sistema Operacional de Tempo Real (vx works)
Sistema Operacional de Tempo Real (vx works)Sistema Operacional de Tempo Real (vx works)
Sistema Operacional de Tempo Real (vx works)
 
No sql e as vantagens na utilização do mongodb
No sql e as vantagens na utilização do mongodbNo sql e as vantagens na utilização do mongodb
No sql e as vantagens na utilização do mongodb
 
Postgre sql
Postgre sqlPostgre sql
Postgre sql
 
TDC2015 - Apache Cassandra no Desenvolvimento de Sistemas de Alto Desempenho
TDC2015 - Apache Cassandra no Desenvolvimento de Sistemas de Alto DesempenhoTDC2015 - Apache Cassandra no Desenvolvimento de Sistemas de Alto Desempenho
TDC2015 - Apache Cassandra no Desenvolvimento de Sistemas de Alto Desempenho
 
Bancos de dados NoSQL: uma visão geral
Bancos de dados NoSQL: uma visão geralBancos de dados NoSQL: uma visão geral
Bancos de dados NoSQL: uma visão geral
 
Hbase trabalho final
Hbase trabalho finalHbase trabalho final
Hbase trabalho final
 
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...
 
Cluster e replicação em banco de dados
Cluster e replicação em banco de dadosCluster e replicação em banco de dados
Cluster e replicação em banco de dados
 
Cluster ha com banco de dados
Cluster ha com banco de dadosCluster ha com banco de dados
Cluster ha com banco de dados
 
Entendendo a Arquitetura de Armazenamento, parte 1
Entendendo a Arquitetura de Armazenamento, parte 1Entendendo a Arquitetura de Armazenamento, parte 1
Entendendo a Arquitetura de Armazenamento, parte 1
 
PostgreSQL: O melhor banco de dados Universo
PostgreSQL: O melhor banco de dados UniversoPostgreSQL: O melhor banco de dados Universo
PostgreSQL: O melhor banco de dados Universo
 

Andere mochten auch

Estratégia de Marketing e Marketing Estratégico
Estratégia de Marketing e Marketing EstratégicoEstratégia de Marketing e Marketing Estratégico
Estratégia de Marketing e Marketing EstratégicoBrandStorming Digital
 
Maratona de Ferramentas Estratégicas - Parte 2
Maratona de Ferramentas Estratégicas - Parte 2Maratona de Ferramentas Estratégicas - Parte 2
Maratona de Ferramentas Estratégicas - Parte 2Bruno Lobo
 
Estratégias de crescimento
Estratégias de crescimentoEstratégias de crescimento
Estratégias de crescimentoRui Loureiro
 
Matriz de produtos-mercados de Ansoff
Matriz de produtos-mercados de AnsoffMatriz de produtos-mercados de Ansoff
Matriz de produtos-mercados de AnsoffEduardo Fagundes
 
75 exemplos de Modelagem e Prototipagem de negócios Inovadores
75 exemplos de Modelagem e Prototipagem de negócios Inovadores75 exemplos de Modelagem e Prototipagem de negócios Inovadores
75 exemplos de Modelagem e Prototipagem de negócios InovadoresJoão Paulo Nogueira
 
Visual Design with Data
Visual Design with DataVisual Design with Data
Visual Design with DataSeth Familian
 

Andere mochten auch (9)

Estratégia de Marketing e Marketing Estratégico
Estratégia de Marketing e Marketing EstratégicoEstratégia de Marketing e Marketing Estratégico
Estratégia de Marketing e Marketing Estratégico
 
Marketing on off
Marketing on offMarketing on off
Marketing on off
 
Estratégia de marketing
Estratégia de marketingEstratégia de marketing
Estratégia de marketing
 
Maratona de Ferramentas Estratégicas - Parte 2
Maratona de Ferramentas Estratégicas - Parte 2Maratona de Ferramentas Estratégicas - Parte 2
Maratona de Ferramentas Estratégicas - Parte 2
 
Estratégias de crescimento
Estratégias de crescimentoEstratégias de crescimento
Estratégias de crescimento
 
Matriz de produtos-mercados de Ansoff
Matriz de produtos-mercados de AnsoffMatriz de produtos-mercados de Ansoff
Matriz de produtos-mercados de Ansoff
 
Ansoff matrix
Ansoff matrixAnsoff matrix
Ansoff matrix
 
75 exemplos de Modelagem e Prototipagem de negócios Inovadores
75 exemplos de Modelagem e Prototipagem de negócios Inovadores75 exemplos de Modelagem e Prototipagem de negócios Inovadores
75 exemplos de Modelagem e Prototipagem de negócios Inovadores
 
Visual Design with Data
Visual Design with DataVisual Design with Data
Visual Design with Data
 

Ähnlich wie C-Store 7 years later

L'esprit de l'escalier
L'esprit de l'escalierL'esprit de l'escalier
L'esprit de l'escalierGleicon Moraes
 
Apostila de Sql Server 2005
Apostila de Sql Server 2005Apostila de Sql Server 2005
Apostila de Sql Server 2005Andre Nascimento
 
Artigo data warehouse bd ii - 2015-1
Artigo data warehouse   bd ii - 2015-1Artigo data warehouse   bd ii - 2015-1
Artigo data warehouse bd ii - 2015-1Darlene Coelho
 
Artigo data warehouse bd ii - 2015-1 a
Artigo data warehouse   bd ii - 2015-1 aArtigo data warehouse   bd ii - 2015-1 a
Artigo data warehouse bd ii - 2015-1 aDarlene Coelho
 
hibernate annotation
hibernate annotationhibernate annotation
hibernate annotationeduardo dias
 
Big Data com MATLAB (Tiago Monteiro), Webinar ao vivo
Big Data com MATLAB (Tiago Monteiro), Webinar ao vivoBig Data com MATLAB (Tiago Monteiro), Webinar ao vivo
Big Data com MATLAB (Tiago Monteiro), Webinar ao vivoOpencadd Advanced Technology
 
Path to the future #5 - Melhores práticas de data warehouse no Amazon Redshift
Path to the future #5 - Melhores práticas de data warehouse no Amazon RedshiftPath to the future #5 - Melhores práticas de data warehouse no Amazon Redshift
Path to the future #5 - Melhores práticas de data warehouse no Amazon RedshiftAmazon Web Services LATAM
 
Multithreaded tecnologia
Multithreaded tecnologia Multithreaded tecnologia
Multithreaded tecnologia J Chaves Silva
 
Desenvolvendo aplicações Web escaláveis
Desenvolvendo aplicações Web escaláveisDesenvolvendo aplicações Web escaláveis
Desenvolvendo aplicações Web escaláveiselliando dias
 
Intro Arquitetura Oracle
Intro Arquitetura OracleIntro Arquitetura Oracle
Intro Arquitetura OraclePablo Garcia
 
MPOG 2008 TI - Resolução - Jaime Correia
MPOG 2008 TI - Resolução - Jaime CorreiaMPOG 2008 TI - Resolução - Jaime Correia
MPOG 2008 TI - Resolução - Jaime CorreiaWalter Cunha
 
Amazon EC2 boas praticas e otimizações de desempenho
Amazon EC2 boas praticas e otimizações de desempenhoAmazon EC2 boas praticas e otimizações de desempenho
Amazon EC2 boas praticas e otimizações de desempenhoAmazon Web Services LATAM
 
NoSQL Familia de Colunas Monografia
NoSQL Familia de Colunas MonografiaNoSQL Familia de Colunas Monografia
NoSQL Familia de Colunas MonografiaAugusto Giles
 

Ähnlich wie C-Store 7 years later (20)

L'esprit de l'escalier
L'esprit de l'escalierL'esprit de l'escalier
L'esprit de l'escalier
 
Apostila de Sql Server 2005
Apostila de Sql Server 2005Apostila de Sql Server 2005
Apostila de Sql Server 2005
 
Material Seminário NoSQL
Material Seminário NoSQLMaterial Seminário NoSQL
Material Seminário NoSQL
 
Amazon Redshift
Amazon RedshiftAmazon Redshift
Amazon Redshift
 
Artigo data warehouse bd ii - 2015-1
Artigo data warehouse   bd ii - 2015-1Artigo data warehouse   bd ii - 2015-1
Artigo data warehouse bd ii - 2015-1
 
Artigo data warehouse bd ii - 2015-1 a
Artigo data warehouse   bd ii - 2015-1 aArtigo data warehouse   bd ii - 2015-1 a
Artigo data warehouse bd ii - 2015-1 a
 
hibernate annotation
hibernate annotationhibernate annotation
hibernate annotation
 
CouchDB Presentation
CouchDB PresentationCouchDB Presentation
CouchDB Presentation
 
Apostila sql
Apostila sqlApostila sql
Apostila sql
 
Big Data com MATLAB (Tiago Monteiro), Webinar ao vivo
Big Data com MATLAB (Tiago Monteiro), Webinar ao vivoBig Data com MATLAB (Tiago Monteiro), Webinar ao vivo
Big Data com MATLAB (Tiago Monteiro), Webinar ao vivo
 
Apostila sqlserver65v1a
Apostila sqlserver65v1aApostila sqlserver65v1a
Apostila sqlserver65v1a
 
Path to the future #5 - Melhores práticas de data warehouse no Amazon Redshift
Path to the future #5 - Melhores práticas de data warehouse no Amazon RedshiftPath to the future #5 - Melhores práticas de data warehouse no Amazon Redshift
Path to the future #5 - Melhores práticas de data warehouse no Amazon Redshift
 
Multithreaded tecnologia
Multithreaded tecnologia Multithreaded tecnologia
Multithreaded tecnologia
 
Desenvolvendo aplicações Web escaláveis
Desenvolvendo aplicações Web escaláveisDesenvolvendo aplicações Web escaláveis
Desenvolvendo aplicações Web escaláveis
 
Intro Arquitetura Oracle
Intro Arquitetura OracleIntro Arquitetura Oracle
Intro Arquitetura Oracle
 
MPOG 2008 TI - Resolução - Jaime Correia
MPOG 2008 TI - Resolução - Jaime CorreiaMPOG 2008 TI - Resolução - Jaime Correia
MPOG 2008 TI - Resolução - Jaime Correia
 
MAC5855 - NoSQL
MAC5855 - NoSQLMAC5855 - NoSQL
MAC5855 - NoSQL
 
Amazon EC2 boas praticas e otimizações de desempenho
Amazon EC2 boas praticas e otimizações de desempenhoAmazon EC2 boas praticas e otimizações de desempenho
Amazon EC2 boas praticas e otimizações de desempenho
 
NoSQL Familia de Colunas Monografia
NoSQL Familia de Colunas MonografiaNoSQL Familia de Colunas Monografia
NoSQL Familia de Colunas Monografia
 
4081 my sql
4081 my sql4081 my sql
4081 my sql
 

C-Store 7 years later

  • 1. COC762: 1o. Trabalho - The Vertica Analytic Database: C-Store 7 Years Later. Professores: Myrian Costa, Valeria Bastos, Nelson Ebecken Júlio César Chaves, COPPE/UFRJ October 19, 2013 Júlio César Chaves, COPPE/UFRJ COC762: 1o. Trabalho - The Vertica Analytic Database: C-Sto
  • 2. Introdução Será apresentado um resumo do seguinte artigo: The Vertica Analytic Database: C-Store 7 Years Later. Andrew Lamb, Matt Fuller, Ramakrishna Varadarajan Nga Tran, Ben Vandiver, Lyric Doshi, Chuck Bear Vertica Systems, An HP Company, Cambridge, MA. Apresentado em VLDB 2012 Istambul. Onde é mostrado um exemplo de RDBMS comercial usando os conceitos de "Column Store", que já abriga um banco com 8PB. Júlio César Chaves, COPPE/UFRJ COC762: 1o. Trabalho - The Vertica Analytic Database: C-Sto
  • 3. Column Store Tradicionalmente os bancos de dados trabalham sob o conceito de "row-store". Ou seja, fisicamente a manipulação se dá em nível de tuplas, mesmo que apenas uma coluna seja requisitada. Sob o conceito de column store (C-Store), os dados ficam particionados por padrão por colunas, permitindo abordagens até então não compatíveis com o modelo anterior. Apesar do interesse em bancos NoSQL, o C-Store antecipou a demanda por um DB "web-scale". Foi descoberto que o problema dos bancos tradicionais não era o fato de ser ou não SQL, mas sim as estruturas internas de armazenamento. Júlio César Chaves, COPPE/UFRJ COC762: 1o. Trabalho - The Vertica Analytic Database: C-Sto
  • 4. Comportamento de trabalho transacional vs. analítica Transacional: Espera-se milhares de transações por segundo, cada transação lidando com poucas linhas. Ex.: Inserir novos dados de vendas, atualizar saldo bancário. Analítica: Espera-se por dezenas de transações por segundo, cada transação lidando com grande volume de linhas. Ex.: Agregar vendas por data e dimensões geográficas, analisar o comportamento de diferentes usuários num site web. Seguindo exemplo do GOOGLE, o Vertica foi desenhado para rodar hardware moderno de conveniência x86_64. O escalonamento é linear. Ou seja, se tenho 2 nós e adicionar 2, a capacidade operacional duplica de fato. O sistema foi desenhado para que as consultas anaílitas não sejam impactadas pelas cargas. Júlio César Chaves, COPPE/UFRJ COC762: 1o. Trabalho - The Vertica Analytic Database: C-Sto
  • 5. Modelo de dados Assim como o padrão C-Store, o Vertica organiza os dados em projeções, que são nada menos do que segmentos físicos ordenados das colunas, que ficam ancoradas nas tabelas. Os dados são armazenados sob diferentes tipos de compressão possíveis. Por exemplo: Uma data que se repete 1 milhão de vezes é gravada somente uma vez. C-Store usa particionamento horizontal para aumentar o paralelismo num mesmo nó, ao passo que o motor de execução do Vertica faz de uma mesma divisão física, diversas sub-divisões lógicas e assim obtém o paralelismo com menos esforço operacional. Júlio César Chaves, COPPE/UFRJ COC762: 1o. Trabalho - The Vertica Analytic Database: C-Sto
  • 6. Separação física: Particionamento e Segmentação Particionamento: Trata-se de uma divisão física que obedece cláusulas lógicas, num mesmo nó. PARTITION BY. Segmentação: Trata-se da divisão de blocos físicos de dados em diferentes nós, também obedecendo cláusulas lógicas via SEGMENTED BY na criação de projeções. Júlio César Chaves, COPPE/UFRJ COC762: 1o. Trabalho - The Vertica Analytic Database: C-Sto
  • 7. ROS e WOS - "o kernel" ROS Read Optimized Store - Composição de áreas físicas de dados em disco que seguem os conceitos de C-Store. Não existem índices, pois uma área ROS nunca é modificada. WOS Write Optimized Store - Composi´ ão de áreas de memória c que podem ser column store ou row store e serve unicamente como buffer para pequenas operações DML. O dado não é comprimido, no entanto obedece as cláusulas de segmentação. Nenhum dado no Vertica é excluído no próprio local onde reside, mas sim, obedece a criação de um vetor de exclusão. Cada update ocorre via uma exclusão seguida por uma inserção. Júlio César Chaves, COPPE/UFRJ COC762: 1o. Trabalho - The Vertica Analytic Database: C-Sto
  • 8. O mantenedor de tuplas - "tuple mover" O mantenedor de tuplas é um processo interno e automático do Vertica responsável por "digerir" e reajanjar fisicamente as estruturas de dados. As duas principais funções do mantenedor de tuplas são: Moveout: Movimenta de forma assíncrona os dados de WOS para ROS. Mergeout: Aglutina múltiplos arquivos ROS em arquivos ROS maiores. O desafio do mantenedor de tuplas é manter o equilíbrio e a tensão entre: gerar muitos pequenos arquivos de ROS ou causar estouro de cache do WOS devido a falta arquivos ROS. Júlio César Chaves, COPPE/UFRJ COC762: 1o. Trabalho - The Vertica Analytic Database: C-Sto
  • 9. Atualizações (updates) e transações Cada tupla no Vertica leva consigo a data/hora (timestamp) da transação que a gerou, assim como cada tupla apagada leva a data/hora da transação que a apagou. Dessa forma, qualquer seleção de dados não irá gerar bloqueio algum, pois por padrão a seleção opera sob a forma READ COMMITED, o que no vertica equivale a dizer que lê sempre a última época válida de dados. Os nós do cluster trabalham em BROADCAST, assim, um nó que se torne inacessível, é automaticamente removido do grupo e essa informação é atualizada em todos os nós. Se um COMMIT falhar para determinado nó, ele automaticamente é removido do cluster sem segunda tentativa. O ROLLBACK implica simplesmente em descartar os blocos ROS e WOS referentes a transação que foi cancelada. Júlio César Chaves, COPPE/UFRJ COC762: 1o. Trabalho - The Vertica Analytic Database: C-Sto
  • 10. Tolerância a falhas e log de transação Cada projeção possui obrigatoriamente uma buddy projection, uma espécie de "arquivo de controle" da projeção, que é capaz de recriar as linhas e colunas que foram perdidas num nó, em outro. Não são gerados os tradicionais "logs de transação", "transaction log" no SQL server, "archived logs" no oracle , pois a combinação (data+época) serve como histórico de transações passadas. Júlio César Chaves, COPPE/UFRJ COC762: 1o. Trabalho - The Vertica Analytic Database: C-Sto
  • 11. Existe BACKUP Lembrando que o sistema de trabalho do vertica é baseado em arquivos "somente leitura", o backup apenas tira uma imagem dos arquivos de catálogo e cria "hard-links" para os arquivos de dados, para assegurar que eles não serão apagados durante o processo de cópia, que quando finalizada, apaga os "hard-links". É suportado backup FULL e incremental. O único impacto do backup é o consumo de recursos extra consumidos para levar as cópias para destinos externos. Júlio César Chaves, COPPE/UFRJ COC762: 1o. Trabalho - The Vertica Analytic Database: C-Sto
  • 12. Integridade do Cluster Um cluster pode realizar um processo normal de SHUTDOWN/STARTUP com até N nós perdidos, onde N é o 2 número total de nós no cluster. Júlio César Chaves, COPPE/UFRJ COC762: 1o. Trabalho - The Vertica Analytic Database: C-Sto
  • 13. Descoberta automática de projeções adequadas às consultas O vertica possui uma ferramenta nativa, chamada Database Designer, que recebe como parâmetro uma ou mais consultas num mesmo arquivo, e descobre a partir dos dados, quais a projeções, com suas respectivas ordenações e segmentações trariam o resultado desejado em menos tempo. Júlio César Chaves, COPPE/UFRJ COC762: 1o. Trabalho - The Vertica Analytic Database: C-Sto
  • 14. Performance e Compressão Vide abaixo, a comparação entre tempos de consultas e taxas de compressão. Júlio César Chaves, COPPE/UFRJ COC762: 1o. Trabalho - The Vertica Analytic Database: C-Sto
  • 15. Conclusão O projeto vertica só foi possível devido as inovações no sentido de "quebra de paradigma de banco de dados" juntamente com uma solução de continuidade que não exclui conceitos, regras e formas de trabalho já conhecidas, tanto na academia quanto no mercado. Não podemos continuar agindo, e tratando problemas de Petabytes da mesma forma com que estamos acostumados a tratar os de Gigabytes. A mudança aponta claramente para uma nova forma que não rompe com a anterior, simplesmente torna possível a continuidade. Júlio César Chaves, COPPE/UFRJ COC762: 1o. Trabalho - The Vertica Analytic Database: C-Sto