Introdução aos sistemas distribuídos
on-line para processamento de fluxos
de dados – Parte I
PR O F. A NDR É L E O N S . G R A DVO HL , D R .
G R ADVO HL @FT.UNICAMP.BR
7/agosto/2015
Plano de apresentação
• Sobre o Palestrante.
• Histórico e motivação para a utilização de Complex Event
Processing – CEP systems.
• Definição de sistemas CEP e conceitos importantes.
Parte I
• Questões de tolerância a falhas envolvidas em sistemas CEP.
• Questões de escalabilidade envolvidas em sistemas CEP.
• Principais sistemas CEP atualmente e suas características.
Parte II
• Perspectivas de pesquisa e desenvolvimento na área de
sistemas distribuídos para processamento de fluxos de dados.
2
Sobre o palestrante
• Prof. André Leon S. Gradvohl, Dr.
• Formação:
•
•
•
•
•
Graduação em Computação, UFC (1997)
Mestrado em Eng. Eletrônica e Computação, ITA (2000)
Doutorado em Telecomunicações, FEEC/Unicamp (2005)
Especialização em Jornalismo Científico, Labjor, Unicamp (2010)
Pós-doutorado em Sistemas Distribuídos, Paris VI (2014)
• Linhas de pesquisa
3
Sobre o grupo de pesquisas do palestrante
• High Performance Intelligent Decision Systems – HighPIDS.
• Our research group works on design and implementation of decision support systems based on
intelligent algorithms to work on high performance computer architectures.
• The goal of such algorithms is to solve semi-structured data mining and optimization problems.
• http://highpids.ft.unicamp.br
We are always looking for great
graduate students.
4
Histórico e motivação para a utilização de
Complex Event Processing – CEP systems
• Big data Streams
Velocidade
Variedade
Volume
Fluxos
On-line
Exemplos:
• Análise financeira de
ações em tempo real.
• Análise de tendências em
redes sociais.
• Detecção de padrões de
ataques a servidores.
5
Histórico e motivação para a utilização de
Complex Event Processing – CEP systems
• Análise financeira em tempo real.
Dados são recebidos e permitem a
recomendação de compra e venda de
ações.
Fonte: Oriani, F. B. Sistema para recomendação de compra e venda no mercado de ações utilizando Ensembles.
Monografia de qualificação do Mestrado. Faculdade de Tecnologia/UNICAMP, 2015.
6
Histórico e motivação para a utilização de
Complex Event Processing – CEP systems
• Análise de tendências em redes sociais.
Dados são recebidos e permitem a
análise dos tópicos (textos) em redes
sociais isoladamente ou em conjunto.
7
Histórico e motivação para a utilização de
Complex Event Processing – CEP systems
• Detecção de padrões de ataques em servidores
Informações fornecidas pelos
dispositivos de rede são analisadas para
identificar padrões e evitar novas
tentativas.
8
Histórico e motivação para a utilização de
Complex Event Processing – CEP systems
9
Definição de sistemas CEP e conceitos importantes.
•
Dados são processados pelos operadores e
Sistemas distribuídos
para
online
podem
serprocessamento
transformados por eles,
antesde
de eventos complexos
serem enviados a outros operadores.
• Arquitetura genérica
Sistema de Processamento de Eventos
Os fluxos de dados podem
vir de diferentes fontes
(e. g. sites, celulares,
sensores)
001001100110
010010001011
Fluxo de
dados
<key_2,
value_B>
<key_1,
<key_3, value_A>
value_C>
Alguns operadores podem
estar juntos no mesmo nó
de processamento.
Esses vértices são
operadores. Eles
realizam computações
simples.
Esses arcos são
fluxos de dados.
O grafo acíclico
direcionado é a
topologia do sistema.
Eventualmente,
alguns operadores
salvam dados em
disco.
10
Definição de sistemas CEP e conceitos
importantes.
• Event Stream Processing – ESP ou Complex Event Processing – CEP
• São sistemas distribuídos
• Cada operador pode ficar em um nó de processamento e cada nó de
processamento pode conter um ou mais operadores.
• Cada operador pode manter seu estado (stateful) ou não (stateless).
• Precisam ser executados continuamente.
• Dentro do possível, devem ser tolerantes as falhas, sempre disponíveis,
escaláveis e elásticos.
• Precisam ter um bom desempenho
• Processar o maior número de eventos no menor tempo possível.
11
Questões de tolerância a falhas envolvidas
em sistemas CEP.
• O principal elemento a ser observado são os operadores.
• Lembrar que esses operadores estão em um nó de processamento,
mas um nó de processamento pode conter um ou mais operadores.
• São basicamente três tipos de técnicas para aumentar a tolerância a
falhas:
• Replicação de componentes.
• Checkpoints.
• Upstream backup.
• Stateless e Stateful
12
Replicação de Componentes (operadores)
Supervisor
Nó
caiu!
13
Questões de tolerância a falhas envolvidas
em sistemas CEP.
• Questões envolvidas na replicação de componentes:
• Se já estiverem instanciados, consumirão recursos (memória, cpu etc).
• Se não estiverem instanciados, sua instanciação consumirá tempo e acarretará
na perda de tuplas, estouro de buffers.
• O supervisor deve ficar atento, observando toda a topologia, para
tomar providências necessárias em caso de falhas.
14
Checkpoints
Coordenado
Não coordenado
Cada operador salva
seu estado no mesmo
tempo.
Cada operador salva
seu estado em tempos
diferentes.
15
Questões de tolerância a falhas envolvidas
em sistemas CEP.
• Questões envolvidas no Checkpoint:
• Checkpoints coordenados podem aumentar a latência do sistema, pois o
tratamento do fluxo (stream) é suspenso para realizar o checkpoint.
• No entanto, o estado do sistema pode ser recuperado sem preocupações com
consistências.
• Checkpoints não coordenados não impactam muito a latência do sistema, pois os
nós upstream podem manter as tuplas nas filas.
• Contudo, são necessários algoritmos para verificar e garantir a consistência do
sistema.
16
Arquitetura de um operador
Fila de Entrada
Estado
do
processamento
Estado de
Roteamento
Fila de saída
17
Upstream backup (stateless)
Operador Upstream
Fila de saída
Os itens
seguintes só são
enviados quando
os últimos forem
processados.
Enquanto não forem
confirmados, os itens
são mantidos na fila
de saída.
Nó
caiu!
Fila de Entrada
Operador Downstream
18
Upstream backup (stateful)
Operador Upstream
De tempos em tempos
Fila
Fila de
de Entrada
Entrada
Estado
do
do
processaprocessamento
Estado de
RoteaRoteamento
Fila
Fila de
de saída
saída
Operador Downstream
19
Questões de tolerância a falhas envolvidas
em sistemas CEP.
• Questões envolvidas no upstream backup:
• No upstream backup para operadores stateless, a questão é o tamanho das filas
de entrada e saída:
• Filas muito curtas podem acarretar em “buffer overflow”, se as confirmações
demorarem.
• Filas muito longas podem consumir mais recursos e aumentar a latência.
• No upstream backup para operadores stateful, a questão é a propagação dos
estados dos operadores.
• Em uma topologia muito extensa, propagar os estados pode aumentar a latência e
causar perdas de tuplas.
• A consistência também pode ser um problema, se não for bem gerenciada.
20
Algumas Referências
• GOONETILLEKE, O. et al. Twitter analytics. ACM SIGKDD Explorations
Newsletter, v. 16, p. 11–20, 2014.
• CHARDONNENS, T. et al. Big data analytics on high Velocity streams: A case
study. IEEE International Conference on Big Data. out. 2013.
• CHEN, Q.; HSU, M.; CASTELLANOS, M. Backtrack-Based Failure Recovery
in Distributed Stream Processing. In: 14th ACIS International Conference on
Software Engineering, Artificial Intelligence, Networking and
Parallel/Distributed Computing (SNPD), pp.261,266, 1-3 July 2013.
• GRADVOHL, A. L. S. et al. Comparing Distributed Online Stream Processing
Systems Considering Fault Tolerance Issues. Journal of Emerging
Technologies in Web Intelligence, v. 6, p. 174-179, 2014.
21
Perguntas? e Respostas!
22
Download

Introdução aos sistemas distribuídos on-line para