• Nenhum resultado encontrado

Coordenação Distribuída

N/A
N/A
Protected

Academic year: 2021

Share "Coordenação Distribuída"

Copied!
62
0
0

Texto

(1)

Coordenação

Distribuída

Flavio Junqueira

Yahoo! Research, Barcelona

(2)
(3)
(4)
(5)
(6)

Portal da Yahoo!

Search Mail Sports News Weather Finance

(7)

Portal da Yahoo!

Home page:

✓ 38 milhões de usuários por dia (EUA) ✓ 2.5 bilhões de visitas por mês (EUA)

Search:

✓ +3 bilhões de consultas Web

Mail:

✓ +90 milhões de usuários

(8)

Infra-estrutura

Muitos servidores

Muitos processos

Grande volume de dados

Alta complexidade dos sistemas de software

... engenheiros de software são meros

(9)

Sistemas da Web

Sistemas que requerem coordenação ✓ Em geral

Grandes conjuntos de dados em servidores convencionais

✓ Exemplos

Sistemas de arquivos distribuídos

(10)

O que é a coordenação distribuída?

Técnicas para coordenação de processos

✓ Metadados (configuração) ✓ Eleição de líder

(11)

Onde se utiliza?

Sistemas de arquivo distribuídos: HDFS, GFS

Sistemas de armazenamento: Bigtable, HBase

(12)

Google File System (GFS)

Sistema de arquivos escalável

Aplicações com uso intensivo de dados

Cluster GFS

✓ Um mestre

(13)

Google File System (GFS)

Eleição do mestre

✓ Assegurar que a cada momento existe no máximo um mestre ativo

(14)

Tabelas de dados ✓ Tablet = unidade de distribuição ✓ Família de colunas = unidade de controle de acesso

Arquitetura ✓ Um mestre ✓ Servidores de tablets

Bigtable da Google

Linha 1 Linha 2 Linha 3 Linha 4 Linha k Linha k+1 Linha k+2 Linha k+3 f1:c1 f1:c2 f2:c1 f2:c2 f2:c3 Tablet

{

{

Tablet Família f1 Família f2

(15)

Bigtable da Google

Eleição do mestre

✓ Assegurar que existe no máximo um mestre ativo

Metadados

✓ Armazenar o esquema e as listas de controle de acesso (ACLs)

Encontro (rendezvous)

✓ Descobrir servidor de tablet

Detecção de falhas

(16)

Crawler da Yahoo!

Serviço de coleta ✓ Páginas da Web

✓ Coleta = copia de documentos

Milhares de servidores

✓ Documentos da Web coletados concorrentemente

✓ Mestre comanda os coletores

✓ Coletores recolhem documentos

Mestre

(17)

Crawler da Yahoo!

Eleição do mestre

✓ Processo mestre que lidera o grupo

Designação de trabalho (configuração)

✓ Páginas a coletar, politeness, etc.

Detecção de falhas

(18)

Katta

http://katta.sourceforge.net/

Coordenação

Eleição do mestre

Detecção de falhas

Avisos, etc.

(19)

Sistemas para coordenação

Motivação

Implementação de primitivas de coordenação não é trivial

✓ Envolve algoritmos distribuídos complexos... ✓ ... complexo no sentido de racionalizar.

Não é o principal objetivo de muitos projetos

✓ Frequentemente mal desenhados ou implementados ✓ Duplicação

(20)

Sistemas para coordenação

Chubby, Google

[USENIX OSDI 2006] ✓ Serviço de locks

Centrifuge, Microsoft

[USENIX NSDI 2010] ✓ Serviço de leases

ZooKeeper, Yahoo!

[Hunt et al. USENIX ATC 2010] ✓ Núcleo para coordenação

(21)

Sistemas para coordenação

Chubby, Google

[USENIX OSDI 2006] ✓ Serviço de locks

Centrifuge, Microsoft

[USENIX NSDI 2010] ✓ Serviço de leases

ZooKeeper, Yahoo!

[Hunt et al. USENIX ATC 2010] ✓ Núcleo para coordenação

(22)
(23)

Chubby: Resumo

API semelhante a de um sistema de arquivos

Arquivos de dados estruturados em árvore

Locks

Operações para abrir e fechar arquivos

Invalidação da cache do cliente

(24)

Chubby: Design

Aplicação

Cliente Chubby Library

Aplicação

Cliente Chubby Library

Backup Mestre Backup Backup Backup

Célula

RPCs

Usa Paxos para manter às replicas consistentes Propaga atualizações do estado

(25)

Chubby: Um exemplo

Para eleger a um mestre

Aplicação

Cliente Chubby Library

Célula

1- Abre “/lock”

2- Obtém lock de“/lock” 3- Guarda id do mestre

(26)

Chubby: Invalidação da Cache

Cliente 1 Cliente 3 Cliente 2 Cache Cache Cache

Célula

/A Escreve em “/A” Cliente 2: /A Cliente 3: /A Invalida “/A” Invalida “/A”

Modificações são bloqueadas enquanto houver invalidações pendentes

(27)

Chubby: Linearizabilidade

Operações linearizáveis

✓ Sequenciável + ordem temporal de precedência

Mestre de uma célula

✓ Inicia todas as operações

✓ Processa a todas as operações em ordem

(28)
(29)

ZooKeeper: Resumo

Núcleo de coordenação

Estrutura de znodes em árvore

Receitas para a implementação de primitivas

Gestão da cache de clientes delegada

✓ Uso de watches

Não há operações para abrir e fechar znodes

Escritas são linearizáveis

(30)

ZooKeeper: Design

Seguidor Líder Seguidor Seguidor Seguidor

Grupo ZK

Zab para a manutenção da consistência Propaga atualizações do estado Sessões Cliente LibraryZK Cliente LibraryZK Cliente LibraryZK

(31)

ZooKeeper: Exemplo

Cliente 1

Grupo ZK

/ Cliente 2 Cliente 3

(32)

ZooKeeper: Exemplo

Cliente 1

Grupo ZK

/ 1- Cria “/lider-”, seq. + eph.

2- Lê “/”

/lider-1

C1 Cliente 2

(33)

ZooKeeper: Exemplo

Cliente 1

Grupo ZK

/

1- Cria “/lider-”, seq. + eph. 2- Lê “/”

/lider-2

C3

1- Cria “/lider-”, seq. + eph. 2- Lê “/”

/lider-1

C1 Cliente 2

(34)

ZooKeeper: Exemplo

Cliente 1

Grupo ZK

/

1- Cria “/lider-”, seq. + eph. 2- Lê “/”

/lider-2

C3

1- Cria “/lider-”, seq. + eph. 2- Lê “/”

/lider-3

C2

1- Cria “/lider-”, seq. + eph. 2- Lê “/”

/lider-1

C1 Cliente 2

(35)

ZooKeeper: Watches

Grupo ZK

Lê “/foo”, true /foo A / retorna A

(36)

ZooKeeper: Watches

Grupo ZK

/foo B / Escreve “/foo”, B retorna ok Cliente LibraryZK Cliente LibraryZK Watch

(37)

ZooKeeper: Watches

Grupo ZK

/foo B / notificação Escreve “/foo”, B retorna ok Cliente LibraryZK Cliente LibraryZK

(38)

Watches, Locks, e o Efeito rebanho

Efeito rebanho

✓ Um elevado número de processos desperta simultaneamente

Pico de carga

(39)

Watches, Locks, e o Efeito rebanho

Cliente 1

Grupo ZK

/ /lider-2 C3 /lider-3 C2 Cliente 2 Cliente 3

Existe “/lider-1”, true Existe “/lider-1”, true

retorna ok retorna ok /lider-1 C1 Watch Watch

(40)

Watches, Locks, e o Efeito rebanho

Cliente 1

Grupo ZK

/ /lider-2 C3 /lider-3 C2 /lider-1 C1 Cliente 2 Cliente 3

(41)

Watches, Locks, e o Efeito rebanho

Cliente 1

Grupo ZK

/ /lider-2 C3 /lider-3 C2 Cliente 2 Cliente 3

(42)

Watches, Locks, e o Efeito rebanho

Cliente 1

Grupo ZK

/ /lider-2 C3 /lider-3 C2 Cliente 2 Cliente 3 notificação notificação

(43)

Solução

✓ Líderes em potencial são ordenados

✓ Cada cliente observa o cliente anterior na sequência estabelecida

✓ Cada falha aciona uma única notificação

Desvantagem

✓ Somente um único cliente é notificado de uma mudança de líder

(44)

Chubby x ZooKeeper

Chubby ZooKeeper Cache do cliente Invalidação direta Watches

Primitivas Locks Núcleo (receitas)

Consistência Todas as operações

são linearizáveis Somente escritas são linearizáveis

Escalabilidade Não Maioritariamente leituras

(45)

Linearizabilidade: Quão importante é?

Depende...

ZooKeeper implementa um objeto

universal

✓ Objeto universal: Herlihy [Herlihy ACM TPLS 1991]

(46)

Implementando consenso

Cada processo

✓ Propõe(v)

Escreve v com flag sequencial

✓ Decide

Lendo todos os znodes filhos

Selecionando o valor v’com menor número de sequencia

(47)

Depende...

ZooKeeper implementa um objeto

universal segundo Herlihy

[Herlihy ACM TPLS 1991]

✓ Implementa consenso para n processos

Visível através de canais escondidos

(48)

Exemplo

Grupo ZK

Cliente LibraryZK Cliente LibraryZK C2 / /Config Escreve “/Config”, C2 / /Config / /Config C2 C1 retorna ok

(49)

Cliente LibraryZK

Cliente LibraryZK

Leia nova configuração!

Exemplo

Grupo ZK

C2 / /Config / /Config / /Config C2 C1

(50)

Cliente LibraryZK Cliente LibraryZK

Exemplo

Grupo ZK

C2 / /Config / /Config / /Config C2 C1 Lê “/Config” retorna C1

(51)

Da cartola ...

sync()

✓ Operação asíncrona

✓ Descarga o canal entre o seguidor e o líder ✓ Transforma operações em linearizáveis

(52)
(53)

Avaliação

Cluster de 50 servidores

Xeon dual-core 2.1 GHz

4 GB de RAM

(54)

Vazão (throughput)

0 10000 20000 30000 40000 50000 60000 70000 80000 90000 0 20 40 60 80 100

Operations per second

Percentage of read requests Throughput of saturated system

3 servers 5 servers 7 servers 9 servers 13 servers 0 10000 20000 30000 40000 50000 60000 70000 80000 90000 0 20 40 60 80 100

Operations per second

Percentage of read requests

Throughput of saturated system (all requests to leader) 3 servers 5 servers 7 servers 9 servers 13 servers

(55)
(56)

Carga em produção

Serviço de coleta

Carga de um servidor

Picos de leitura de mais de 2000 ops/s

Picos de escrita de menos de 500 ops/s 0 500 1000 1500 2000 66h 60h 54h 48h 42h 36h 30h 24h 18h 12h 6h 0h N úmero de operações Tempo em segundos Leitura Escrita

(57)

Em Yahoo!...

Se encontra em uso para:

✓ Cross-colo locks ✓ Web crawling

✓ Large-scale publish-subscribe (Hedwig: ZOOKEEPER-775)

✓ Portal front-end

Maior cluster do qual eu tenho conhecimento

✓ Aproximadamente 5,000 nodes

(58)

Faltas na prática

Bugzilla

✓ Sistema de tickets para defeitos de software, melhorias, etc

Fila do serviço de coleta

✓ Mais de 2 anos em produção

✓ 9 tickets reportando problemas relacionados ao ZooKeeper

(59)

Faltas na prática

Configuração: 5 problemas

✓ System configuration, not ZK

E.g., misconfigured net cards, DNS clash

Bugs da aplicação: 2 problemas

✓ Misunderstanding of the API semantics ✓ E.g., race condition using async api

Bugs do ZK: 2 problemas

✓ Nossa culpa... =\

✓ API e servidor (todos afetados)

0 1 2 3 4 5 6

Misconfig. App. Bugs ZK bugs

(60)
(61)

Resumo

Coordenação

Chubby

ZooKeeper

(62)

Créditos

Patrick Hunt,

Cloudera

Mahadev Konar,

Yahoo! Grid

Benjamin Reed,

Yahoo! Research

Henry Robinson,

Cloudera

Referências

Documentos relacionados

As matérias primas são colocadas na plataforma através de empilhadeiras e dosadas dentro do tacho.. Os tachos tem proteção superior o agitador é único e é transferido de um para

Seu mecanismo de ação ocorre por meio de estímulo de receptores alfa-adrenér- gicos, com subseqüente constrição de capilares arteriolares. A epinefrina inalatória tem um

No interior, em especial o visado no presente estudo, o Interior Norte, enquanto região, no geral, geradora de população migrante, conhece, na última década (1991-2001), crescimento

1º As categorias do Para-Karate nas Etapas do Campeonato Paulista de Karate acontecerá em forma de Festival (Apresentação) e o Paratleta deverá apresentar no mínimo dois Kata dentro

–  emancipá-los para a participação, e não domesticá-los para a obediência;. –  valorizá-los em suas diferenças individuais, e não nivelá-los por baixo ou

Todavia, se retirarmos o efeito da linha Outras Receitas (Despesas) Operacionais em ambos os anos, por terem uma natureza não recorrente, temos um crescimento de

Reduzido Quando evidenciar reduzida capacidade para identificar, interpretar e avaliar diferentes tipos de dados e relacioná-los de forma lógica e reduzido sentido crítico. 7

Foram considerados os seguintes critérios de inclusão para participação no estudo: mulheres com idade entre 30 e 60 anos, fototipo III, IV ou V segundo a escala de