RAMCloud Projectgold/cursos/2015/MAC5742/slides/... · 2017. 4. 18. · RAMCloud: Crash recovery Os...
Transcript of RAMCloud Projectgold/cursos/2015/MAC5742/slides/... · 2017. 4. 18. · RAMCloud: Crash recovery Os...
![Page 1: RAMCloud Projectgold/cursos/2015/MAC5742/slides/... · 2017. 4. 18. · RAMCloud: Crash recovery Os dados de um servidor mestre estão divididos em partições. Em caso de falha,](https://reader035.fdocumentos.tips/reader035/viewer/2022070211/60ffd68c42a3fa692b684d67/html5/thumbnails/1.jpg)
RAMCloud ProjectBruno Padilha
19 de Junho de 2015
![Page 2: RAMCloud Projectgold/cursos/2015/MAC5742/slides/... · 2017. 4. 18. · RAMCloud: Crash recovery Os dados de um servidor mestre estão divididos em partições. Em caso de falha,](https://reader035.fdocumentos.tips/reader035/viewer/2022070211/60ffd68c42a3fa692b684d67/html5/thumbnails/2.jpg)
2
O que é o projeto RAMCloud ?
Sistema de armazenamento de dados de propósito geral que mantém os dados em memória RAM (DRAM) o tempo todo. Objetivos: escalabilidade e baixa latência.
![Page 3: RAMCloud Projectgold/cursos/2015/MAC5742/slides/... · 2017. 4. 18. · RAMCloud: Crash recovery Os dados de um servidor mestre estão divididos em partições. Em caso de falha,](https://reader035.fdocumentos.tips/reader035/viewer/2022070211/60ffd68c42a3fa692b684d67/html5/thumbnails/3.jpg)
3
Motivação
➔ Os discos magnéticos foram (e ainda são) o principal modo de armazenamento de dados de sistemas on-line nos últimos 40 anos;
![Page 4: RAMCloud Projectgold/cursos/2015/MAC5742/slides/... · 2017. 4. 18. · RAMCloud: Crash recovery Os dados de um servidor mestre estão divididos em partições. Em caso de falha,](https://reader035.fdocumentos.tips/reader035/viewer/2022070211/60ffd68c42a3fa692b684d67/html5/thumbnails/4.jpg)
4
Motivação
➔ Os discos magnéticos foram (e ainda são) o principal modo de armazenamento de dados de sistemas on-line nos ultimos 40 anos;
➔ Sistemas de arquivos e SGBDs evoluiram para funcionar com HDs;
![Page 5: RAMCloud Projectgold/cursos/2015/MAC5742/slides/... · 2017. 4. 18. · RAMCloud: Crash recovery Os dados de um servidor mestre estão divididos em partições. Em caso de falha,](https://reader035.fdocumentos.tips/reader035/viewer/2022070211/60ffd68c42a3fa692b684d67/html5/thumbnails/5.jpg)
5
Motivação
➔ Os discos magnéticos foram (e ainda são) o principal modo de armazenamento de dados de sistemas on-line nos ultimos 40 anos;
➔ Sistemas de arquivos e SGBDs evoluiram para funcionar com HDs;
➔ A evolução do desempenho dos HDs não acompanhou a sua evolução de capacidade de armazenamento;
![Page 6: RAMCloud Projectgold/cursos/2015/MAC5742/slides/... · 2017. 4. 18. · RAMCloud: Crash recovery Os dados de um servidor mestre estão divididos em partições. Em caso de falha,](https://reader035.fdocumentos.tips/reader035/viewer/2022070211/60ffd68c42a3fa692b684d67/html5/thumbnails/6.jpg)
6
Motivação
➔ Os discos magnéticos foram (e ainda são) o principal modo de armazenamento de dados de sistemas on-line nos ultimos 40 anos;
➔ Sistemas de arquivos e SGBDs evoluiram para funcionar com HDs;➔ A evolução do desempenho dos HDs não acompanhou a sua evolução de
capacidade de armazenamento;➔ A dificuldade de escalabilidade da taxa de acesso aleatório aos dados
acaba limitando a vazão de dados de um banco de dados relacional;
![Page 7: RAMCloud Projectgold/cursos/2015/MAC5742/slides/... · 2017. 4. 18. · RAMCloud: Crash recovery Os dados de um servidor mestre estão divididos em partições. Em caso de falha,](https://reader035.fdocumentos.tips/reader035/viewer/2022070211/60ffd68c42a3fa692b684d67/html5/thumbnails/7.jpg)
7
Evolução do disco rígido (HD)Comparação entre os discos rígidos comuns disponíveis em 2009 e em 1985
![Page 8: RAMCloud Projectgold/cursos/2015/MAC5742/slides/... · 2017. 4. 18. · RAMCloud: Crash recovery Os dados de um servidor mestre estão divididos em partições. Em caso de falha,](https://reader035.fdocumentos.tips/reader035/viewer/2022070211/60ffd68c42a3fa692b684d67/html5/thumbnails/8.jpg)
8
Regra de Jim Gray
![Page 9: RAMCloud Projectgold/cursos/2015/MAC5742/slides/... · 2017. 4. 18. · RAMCloud: Crash recovery Os dados de um servidor mestre estão divididos em partições. Em caso de falha,](https://reader035.fdocumentos.tips/reader035/viewer/2022070211/60ffd68c42a3fa692b684d67/html5/thumbnails/9.jpg)
9
Por que a latência importa ? Uma aplicação Web com dezenas de centenas de milhares de usuários não é capaz de ser executada em uma única máquina.
![Page 10: RAMCloud Projectgold/cursos/2015/MAC5742/slides/... · 2017. 4. 18. · RAMCloud: Crash recovery Os dados de um servidor mestre estão divididos em partições. Em caso de falha,](https://reader035.fdocumentos.tips/reader035/viewer/2022070211/60ffd68c42a3fa692b684d67/html5/thumbnails/10.jpg)
10
Possíveis soluções
➔ Novos sistemas de banco de dados (NoSQL);
➔ Caching;➔ RAMCloud.
![Page 11: RAMCloud Projectgold/cursos/2015/MAC5742/slides/... · 2017. 4. 18. · RAMCloud: Crash recovery Os dados de um servidor mestre estão divididos em partições. Em caso de falha,](https://reader035.fdocumentos.tips/reader035/viewer/2022070211/60ffd68c42a3fa692b684d67/html5/thumbnails/11.jpg)
11
RAMCloud➔ Armazenamento em DRAM para DataCenters (chave-valor);➔ 1000 a 10000 (possivelmente 100000) servidores
commodity;➔ 64 a 256 GB de DRAM por servidor;➔ Durabilidade e disponibilidade;➔ Alta vazão (1M ops/sec/server);➔ Baixa latência (5us pra leitura e 15us para escrita);➔ Rápida recuperação de falhas (1-2s);➔ Custo de cache volátil.
![Page 12: RAMCloud Projectgold/cursos/2015/MAC5742/slides/... · 2017. 4. 18. · RAMCloud: Crash recovery Os dados de um servidor mestre estão divididos em partições. Em caso de falha,](https://reader035.fdocumentos.tips/reader035/viewer/2022070211/60ffd68c42a3fa692b684d67/html5/thumbnails/12.jpg)
12
RAMCloud: Modelo de dados
read(tableId, key) => value, versionwrite(tableId, key, value) => versionconditionalWrite(tableId, key, value, condition) => versiondelete(tableId,key)
![Page 13: RAMCloud Projectgold/cursos/2015/MAC5742/slides/... · 2017. 4. 18. · RAMCloud: Crash recovery Os dados de um servidor mestre estão divididos em partições. Em caso de falha,](https://reader035.fdocumentos.tips/reader035/viewer/2022070211/60ffd68c42a3fa692b684d67/html5/thumbnails/13.jpg)
13
RAMCloud: Arquitetura
![Page 14: RAMCloud Projectgold/cursos/2015/MAC5742/slides/... · 2017. 4. 18. · RAMCloud: Crash recovery Os dados de um servidor mestre estão divididos em partições. Em caso de falha,](https://reader035.fdocumentos.tips/reader035/viewer/2022070211/60ffd68c42a3fa692b684d67/html5/thumbnails/14.jpg)
14
RAMCloud: Organização
![Page 15: RAMCloud Projectgold/cursos/2015/MAC5742/slides/... · 2017. 4. 18. · RAMCloud: Crash recovery Os dados de um servidor mestre estão divididos em partições. Em caso de falha,](https://reader035.fdocumentos.tips/reader035/viewer/2022070211/60ffd68c42a3fa692b684d67/html5/thumbnails/15.jpg)
15
RAMCloud: Buffered logging
Backup escrito de modoassíncrono (sem esperapor I/O).
![Page 16: RAMCloud Projectgold/cursos/2015/MAC5742/slides/... · 2017. 4. 18. · RAMCloud: Crash recovery Os dados de um servidor mestre estão divididos em partições. Em caso de falha,](https://reader035.fdocumentos.tips/reader035/viewer/2022070211/60ffd68c42a3fa692b684d67/html5/thumbnails/16.jpg)
16
RAMCloud: Crash recovery
Os dados de um servidor mestre estão divididos em partições.Em caso de falha, cada partição perdida é recuperada em um servidor distinto
![Page 17: RAMCloud Projectgold/cursos/2015/MAC5742/slides/... · 2017. 4. 18. · RAMCloud: Crash recovery Os dados de um servidor mestre estão divididos em partições. Em caso de falha,](https://reader035.fdocumentos.tips/reader035/viewer/2022070211/60ffd68c42a3fa692b684d67/html5/thumbnails/17.jpg)
17
RAMCloud: Latência
![Page 18: RAMCloud Projectgold/cursos/2015/MAC5742/slides/... · 2017. 4. 18. · RAMCloud: Crash recovery Os dados de um servidor mestre estão divididos em partições. Em caso de falha,](https://reader035.fdocumentos.tips/reader035/viewer/2022070211/60ffd68c42a3fa692b684d67/html5/thumbnails/18.jpg)
18
RAMCloud: Utilizar➔ Aplicações que utilizam muitos pedaços pequenos de dados
independentes de uma dada requisição e precisam responder em tempo real;
➔ Aplicações que fazem muitas requisições dependentes que não podem ser feitas em paralelo (algoritmos em grafos). Exemplo: Facebook, Amazon, etc ...
![Page 19: RAMCloud Projectgold/cursos/2015/MAC5742/slides/... · 2017. 4. 18. · RAMCloud: Crash recovery Os dados de um servidor mestre estão divididos em partições. Em caso de falha,](https://reader035.fdocumentos.tips/reader035/viewer/2022070211/60ffd68c42a3fa692b684d67/html5/thumbnails/19.jpg)
19
RAMCloud: Não utilizar➔ Aplicações que não fazem uso intensivo de dados;➔ Aplicações que processam dados em lotes;➔ Aplicações cujos dados dependem de propriedades de bancos de dados
relacionais .
![Page 20: RAMCloud Projectgold/cursos/2015/MAC5742/slides/... · 2017. 4. 18. · RAMCloud: Crash recovery Os dados de um servidor mestre estão divididos em partições. Em caso de falha,](https://reader035.fdocumentos.tips/reader035/viewer/2022070211/60ffd68c42a3fa692b684d67/html5/thumbnails/20.jpg)
20
Referências
As seguintes referências encontram-se disponíveis na página do projeto RAMCloud Project: https://ramcloud.atlassian.net/wiki/display/RAM/RAMCloud
➔ The RAMCloud Storage System;➔ The Case for RAMCLoud;➔ RAMCloud presentations (todas as figuras);➔ Introdutory talk on RAMCloud.
![Page 21: RAMCloud Projectgold/cursos/2015/MAC5742/slides/... · 2017. 4. 18. · RAMCloud: Crash recovery Os dados de um servidor mestre estão divididos em partições. Em caso de falha,](https://reader035.fdocumentos.tips/reader035/viewer/2022070211/60ffd68c42a3fa692b684d67/html5/thumbnails/21.jpg)
21