Você está na página 1de 22

Wormhole:

Reliable Pub-Sub to support


Geo-replicated Internet Services*

Dupla: Izabella Melendez Conigliaro e Max Ramos


Novembro de 2016

*Baseado na apresentao de Yogi Sharma no no 12th USENIX Symposium on Networked System Design
and Implementation (maio, 2015)
Sobre o Artigo

Escrito por Yogeshwer Sharma, Philippe Ajoux, Petchean Ang, David


Callies, Abhishek Choudhary, Laurent Demailly, Thomas Fersch, Liat
Atsmon Guz, Andrzej Kotulski, Sachin Kulkarni, Sanjeev Kumar, Harry Li,
Jun Li, Evgeniy Makeev, Kowshik Prakasam, Robbert van Renesse
(Cornell), Sabyasachi Roy, Pratyush Seth, Yee Jiun Song, Kaushik
Veeraraghavan, Benjamin Wester, Peter Xie.

Aprensentado no 12th USENIX Symposium on Networked System Design


and Implementation em maio de 2015

Aborda estratgias adotadas pela rede social Facebook para replicao


confivel de datacenters
Contexto geral

Uma aplicao deve esperar longos intervalos entre requisies de


atualizao de dados (o que levaria a dados ultrapassados) ou deve requisitar
atualizaes frequentemente (interferindo no workload do sistema de
armazenamento)?

Publish-subscribe tradicional oferece uma soluo escalvel. Entretanto, tais


implementaes requerem um sistema de armazenamento customizado, no
sendo aplicvel com datastorages heterogneos
Desafio: Atualizar dados
ultrapassados
Diferentes velocidades de consumo: as aplicaes consomem atualizaes
diferentes velocidades. Uma aplicao lenta que de modo sncrono processa
atualizaes no deve atrasar a entrega de dados para uma aplicao rpida.

Entrega "at least once": Todas as atualizaes devem ser entregues pelo menos uma
vez. Isso garante que as aplicaes podem confiar que elas receberam todas as
atualizaes nas quais elas esto interessadas.

Entrega de atualizaes em ordem: Quando uma atualizao recebida, a aplicao


deve estar segura que todas as atualizaes anteriores tambm foram recebidas.

Tolerncia falhas: O sistema deve ser resistente frequentes falhas de hardware e


software, tanto no datastore quando na aplicao final.
Alice se mudou de So Paulo

Alice: alterou Eu: meus amigos em So Paulo


minha cidade para Rio de Janeiro

Resultado: . . . , Alice, . . .

(Alice mora em So Paulo) Graph Search (Alice mora em So Paulo)


MySQL Index
(Alice mora no Rio de Janeiro)
Wormhole um sistema pub-sub



Executa em datastores hererogneos pr existentes

O que : Entrega de atualizaes confivel at least once, in-order


Lida com velocidade de aplicaes variveis de forma eficiente



No fornece entrega do tipo exactly-once

O que no : No um sistema de armazenamento

No h ordenao global entre diferentes datastores


Necessidade de Atualizao e seus
Desafios
Dezenas de aplicaes

RocksDB HDFS MySQL


Datastores Heretogneos

Datastores Entrega confivel

News Feed TAO Cache Memcache


Aplicaes com velocidade
Graph Search
Index
Index varivel

Aplicaes
Cada aplicao com tails updates

MySQL




Tailer Tailer Tailer Tailer

Aplica atualizaes

News Feed TAO Cache Memcache Graph Search


Index Index
O publisher envia atualizaes

Dezenas de aplicaes
Datastores Heretogneos
Entrega confivel
Aplicaes com velocidade
varivel
Suporte para datastores heterogneos

Dezenas de aplicaes
Datastores Heretogneos
Entrega confivel
Aplicaes com velocidade
varivel
Entrega Confivel
Datastore
Entrega Confivel

ack10

Dezenas de aplicaes
Datastores Heretogneos
Entrega confivel
Aplicaes com velocidade
varivel

Salva application markes no armazenamento persistente

Recupera a aplicao a partir dos markers armazenados


Falha e Recuperao de Aplicaes

Datastore

6 7 8 9 10 11 12 13 14
Falha e Recuperao de Aplicaes

Tradeoff:
um tailer de recuperao
vs.
mltiplos tailers de recuperao
Fim da recuperao de aplicaes
Datastore

Dezenas de aplicaes
Datastores Heretogneos
Entrega confivel
Aplicaes com velocidade
varivel
Tailers: Eficincia I/O
Datastore

Bytes sent from publishers to six applications


MBytes/sec

25
20
15
10
5 Implantao em produo
0
0 6h 12h 18h 24h 30h 36h 42h 48h
time (h)
Vrios publishers e datastores
Bytes read from datastores by publishers
25
Replicao, 6 aplicaes
MBytes/sec

20
15
10 5x data read during failure Mtricas em cada minuto
5
0
0 6h 12h 18h 24h 30h 36h 42h 48h
time (h)
Tailers: I/O vs. latency tradeoff

1 tailer
15
Average latency (min)

1 10 tailers
10 2 3 4 5
7
10

0
0
1 2 3 4 5 6
I/O load (how many times data is read)

Experimento: enviar 20Gb de informao para 10 aplicaes em diferentes estados


E SE O DATASTORE
FALHAR?
Entrega confivel apesar de falhas nos
Datastores

Application Markers globais


Datastore agnostic position
Coordination mechanism

Entrega confivel baseado


em mltiplas cpias

TAO Cache
21
Concluses

Sistema pub-sub escalvel em produo no Facebook


Funciona com Datastores heterogneos
Garante pelo menos uma entrega em ordem, mesmo em caso de falhas
tanto no publisher quanto no subscriber
Balanceamento entre latncia e operaes de I/O usando Tailers
Faz uso de logs para garantir atualizao confivel e em ordem

Prximos passos: continuar a lidar com o aumento de trfego,


provendo garantias diferenciadas aplicaes baseadas em o quo
importante as informaes atualizadas e a latncia so para tais
aplicaes.
OBRIGADO!
Wormhole:
Reliable Pub-Sub to support
Geo-replicated Internet Services*

Dupla: Izabella Melendez Conigliaro e Max Ramos


Novembro de 2016

*Baseado na apresentao de Yogi Sharma no no 12th USENIX Symposium on Networked System Design
and Implementation (maio, 2015)

Você também pode gostar