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