This is the first of a two part presentation about on line distributed systems for data stream processing. It was presented at VI Escola Regional de Alto Desempenho, UNESP, São José do Rio Preto-SP. File in Portuguese.
Introdução aos sistemas distribuídos on-line para processamento de fluxos de ...André Leon S. Gradvohl
O documento apresenta uma introdução à processamento de eventos complexos em sistemas distribuídos. Ele discute conceitos como escalabilidade, elasticidade e tolerância a falhas em sistemas CEP e descreve a arquitetura genérica desses sistemas. Além disso, exemplifica a operação de "scale out" no sistema SEEP e lista algumas referências e pesquisas em andamento na área.
Sistemas Operacionais Processos e Threads - Wellington Pinto de OliveiraWellington Oliveira
O documento discute processos e threads em sistemas operacionais. Aborda tópicos como criação e término de processos, hierarquia de processos, estados de processos, implementação de processos, modelo de threads, comunicação interprocesso usando regiões críticas, semáforos, monitores e problemas clássicos como produtor-consumidor, jantar dos filósofos e escalonamento.
1) O documento discute processos, threads e suas relações no sistema operacional. Processos podem ter vários threads executando simultaneamente compartilhando o mesmo espaço de memória.
2) É explicada a estrutura de um processo incluindo contexto de hardware, software e espaço de endereçamento. Processos podem estar em diferentes estados como executando, pronto ou espera.
3) Threads são partes de um processo que executam concorrentemente, proporcionando paralelismo dentro do mesmo processo. Isso traz vantagens de desempenho em compara
Este documento discute mecanismos de sincronização em sistemas operacionais, como mutexes, monitores e semáforos. Mutexes garantem exclusão mútua em threads protegendo regiões críticas de modificações simultâneas. Monitores agrupam procedimentos, variáveis e dados para que apenas um processo possa acessar de cada vez. Semáforos controlam acesso simultâneo através de incremento/decremento de um contador e fila de espera.
O documento discute os conceitos de processos, threads, comunicação entre processos e problemas clássicos relacionados. Aborda técnicas como semáforos, monitores e regiões críticas para sincronização de acesso a recursos compartilhados e evitar condições de corrida. Apresenta exemplos como o problema do produtor-consumidor, jantar dos filósofos e barbeiro sonolento.
Análise e Caracterização das Novas Ferramentas para Computação em NuvemOtávio Carvalho
O documento analisa e caracteriza novas ferramentas para computação distribuída na nuvem. Ele classifica as ferramentas em três categorias: processamento batch, interativo e em tempo real. Uma tabela descreve várias ferramentas, incluindo Hadoop, Spark e Storm, indicando suas funcionalidades em cada categoria. Desafios na programação dessas ferramentas e conclusões sobre sua evolução futura são discutidos.
Discute algumas possibilidades de criacao de interacoes homem-maquina com o uso de sensores-atuadores e ambientes de programacao de sistemas interativos.
Introdução aos sistemas distribuídos on-line para processamento de fluxos de ...André Leon S. Gradvohl
O documento apresenta uma introdução à processamento de eventos complexos em sistemas distribuídos. Ele discute conceitos como escalabilidade, elasticidade e tolerância a falhas em sistemas CEP e descreve a arquitetura genérica desses sistemas. Além disso, exemplifica a operação de "scale out" no sistema SEEP e lista algumas referências e pesquisas em andamento na área.
Sistemas Operacionais Processos e Threads - Wellington Pinto de OliveiraWellington Oliveira
O documento discute processos e threads em sistemas operacionais. Aborda tópicos como criação e término de processos, hierarquia de processos, estados de processos, implementação de processos, modelo de threads, comunicação interprocesso usando regiões críticas, semáforos, monitores e problemas clássicos como produtor-consumidor, jantar dos filósofos e escalonamento.
1) O documento discute processos, threads e suas relações no sistema operacional. Processos podem ter vários threads executando simultaneamente compartilhando o mesmo espaço de memória.
2) É explicada a estrutura de um processo incluindo contexto de hardware, software e espaço de endereçamento. Processos podem estar em diferentes estados como executando, pronto ou espera.
3) Threads são partes de um processo que executam concorrentemente, proporcionando paralelismo dentro do mesmo processo. Isso traz vantagens de desempenho em compara
Este documento discute mecanismos de sincronização em sistemas operacionais, como mutexes, monitores e semáforos. Mutexes garantem exclusão mútua em threads protegendo regiões críticas de modificações simultâneas. Monitores agrupam procedimentos, variáveis e dados para que apenas um processo possa acessar de cada vez. Semáforos controlam acesso simultâneo através de incremento/decremento de um contador e fila de espera.
O documento discute os conceitos de processos, threads, comunicação entre processos e problemas clássicos relacionados. Aborda técnicas como semáforos, monitores e regiões críticas para sincronização de acesso a recursos compartilhados e evitar condições de corrida. Apresenta exemplos como o problema do produtor-consumidor, jantar dos filósofos e barbeiro sonolento.
Análise e Caracterização das Novas Ferramentas para Computação em NuvemOtávio Carvalho
O documento analisa e caracteriza novas ferramentas para computação distribuída na nuvem. Ele classifica as ferramentas em três categorias: processamento batch, interativo e em tempo real. Uma tabela descreve várias ferramentas, incluindo Hadoop, Spark e Storm, indicando suas funcionalidades em cada categoria. Desafios na programação dessas ferramentas e conclusões sobre sua evolução futura são discutidos.
Discute algumas possibilidades de criacao de interacoes homem-maquina com o uso de sensores-atuadores e ambientes de programacao de sistemas interativos.
sfCon 2012 - Conceitos de Engenharia Reversa aplicados na migração de sistema...Guilherme Veras
São abordados conceitos de Engenharia Reversa aplicados na migração de sistemas legados Symfony 1.x para Symfony 2.x.
O objetivo é que o responsável pela migração possa usar este conteúdo como guia de referência no desenvolvimento do seu processo de migração de sistemas.
O documento discute sistemas embarcados, incluindo suas características, áreas de aplicação, arquitetura e projeto. Sistemas embarcados são sistemas computacionais inseridos em máquinas ou equipamentos para controlá-los. Eles são encontrados em diversas aplicações como celulares, automóveis e eletrodomésticos.
Este documento apresenta o plano de ensino para a disciplina de Sistemas Operacionais no curso de Bacharelado em Sistemas de Informação. O plano descreve os objetivos da disciplina, conteúdo programático, metodologia, avaliação e cronograma com 18 aulas ao longo do semestre. O foco é desenvolver o entendimento dos alunos sobre os conceitos e componentes fundamentais de sistemas operacionais.
Este documento apresenta uma introdução sobre sistemas operacionais em menos de 3 frases:
O documento discute a história e evolução dos sistemas operacionais, desde as primeiras gerações baseadas em válvulas até os sistemas modernos da quinta geração com foco na computação ubíquita. Também resume os principais componentes de hardware de computadores e conceitos-chave de sistemas operacionais como processos, memória, E/S e chamadas ao sistema.
O documento discute sistemas de gerenciamento de redes. Ele aborda as dificuldades em isolar e diagnosticar problemas em redes, propondo a criação de um centro de operações de rede para monitorar a rede, identificar problemas e trabalhar em sua solução. Também discute a necessidade de ferramentas que apoiem o processo de diagnóstico, como um catálogo de problemas comuns.
Este documento descreve três tópicos principais:
1) Sistemas operativos de grande porte, que utilizam mainframes para permitir o acesso simultâneo de milhares de utilizadores a bases de dados complexas;
2) O sistema AS/400 da IBM, projetado para sistemas de tamanho médio e caracterizado por ser multiutilizador e ter integração de hardware e software;
3) O sistema VAX/VMS da Digital Equipment Corporation, desenvolvido para oferecer um sistema operativo multiutilizador para minicomputadores com arquitetura so
Este documento descreve três tópicos principais:
1) Sistemas operativos de grande porte, que utilizam mainframes para permitir o acesso simultâneo de milhares de utilizadores a bases de dados complexas;
2) O sistema AS/400 da IBM, projetado para sistemas de tamanho médio e caracterizado por ser multiutilizador e ter alta performance e segurança;
3) O sistema VAX/VMS da Digital Equipment Corporation, desenvolvido para oferecer um sistema operativo multiutilizador para minicomputadores com arquitetura sofistic
Arquitetura de Computadores - Lecom - UFMGdjonatascostsa
O documento apresenta uma introdução sobre o curso de Arquitetura de Computadores ministrado por Mario F. Montenegro Campos, abordando os tópicos que serão estudados como arquiteturas reconfiguráveis, sistemas paralelos e distribuídos, e hardware/software co-design. Também discute a importância do estudo da arquitetura de computadores e os pré-requisitos para o curso.
Introdução à Computação Aula 05 - Sistemas Operacionais (arquitetura do SO, p...Leinylson Fontinele
O documento discute os conceitos de sistemas operacionais, incluindo a arquitetura do SO, processos e gerenciamento de memória. É apresentada a visão geral do SO, os tipos de sistemas operacionais, estados de processos, comunicação entre processos, alocação de memória e fragmentação.
José Carlos de Paiva apresenta seu currículo com mais de 30 anos de experiência em sistemas mainframe IBM, atuando principalmente como analista de sistemas. Ele tem experiência em bancos como Banco Espírito Santo, Banco de Crédito Nacional e Banco Noroeste, onde liderou projetos de migração, integração e controle de versões.
Geração Automática de Autómatos Celulares para FPGAAndré Costa Lima
Este documento descreve um sistema para geração automática de autómatos celulares em FPGA. O sistema permite ao utilizador especificar as características e regras de um autómato celular que é então implementado em hardware reconfigurável. Os resultados demonstram um speed-up significativo em relação à implementação em software, atingindo um paralelismo de 100%. Futuramente, pretende-se melhorar o mapeamento físico para aumentar o desempenho.
O documento discute os desafios na medição da capacidade de processamento em sistemas mainframe. Apresenta diferentes métricas utilizadas ao longo do tempo para medir desempenho e capacidade, como MIPS, MHz, MSUs. Também discute ferramentas como o zPCR que permitem dimensionar sistemas mainframe de forma mais precisa, levando em conta fatores como carga de trabalho, configuração de LPARs e tipo de processador.
O documento descreve o plano de projeto para o desenvolvimento de um sistema de painel de estoque para um hospital universitário utilizando Java. Ele inclui estimativas de esforço, análise de riscos, planejamento de tarefas e qualidade, além de detalhar os requisitos funcionais e não funcionais do sistema. A equipe estima que o projeto pode ser concluído em 48 dias.
ASP.Net Performance – A pragmatic approach - Luis PaulinoComunidade NetPonto
Nesta sessão abordamos a performance de Sistemas de Informação desenvolvidos na plataforma ASP.NET com recurso a SQL Server com SGBD. Iremos explicar como surgem os problemas de performance em sistemas com alguns anos de existência e qual a abordagem a tomar, quando temos utilizadores insatisfeitos.
Abordaremos também alguns casos de sucesso no mercado a nível de sistemas de alta disponibilidade e como o mercado tem evoluído. De uma forma geral, pretendemos demonstrar técnicas de análise/tuning de performance em ASP.NET e sua evolução ao longo das várias versões, como também algumas técnicas de requisitos para obtenção e estruturação da informação.
Finalmente, o objetivo passa por divulgar procedimentos, técnicas e ferramentas que sirvam como uma referência que possam ser úteis caso surjam problemas de performance nos nossos sistemas de futuro, entre os quais : Do’s & Dont’s, Systematic Tuning, ASP.NET Trace, VS Profiling Tools, SQL Profiler entre outros.
Planejamento e Gerenciamento de Capacidade para Sistemas Distribuídosluanrjesus
O documento discute técnicas e desafios do planejamento e gerenciamento de capacidade para sistemas distribuídos. Ele aborda motivações históricas como o alto custo do mainframe e o crescimento desordenado com PCs, e técnicas como aquisição de métricas, consolidação, visualização e previsão. Também discute os impactos da virtualização, nuvem e métodos ágeis no planejamento de capacidade.
PostgreSQL Tuning: O elefante mais rápido que um leopardoelliando dias
O documento fornece dicas sobre como otimizar o desempenho de um banco de dados PostgreSQL. Ele discute problemas comuns de desempenho, escolhas de configuração erradas, melhorias de hardware e software, parâmetros do sistema operacional e do PostgreSQL, ferramentas de teste de desempenho e escalabilidade.
O documento descreve os tópicos e objetivos de uma disciplina de Sistemas Operacionais, incluindo a história e conceitos básicos do assunto, gerência de processos e memória, e estudos de sistemas operacionais existentes. Também inclui informações sobre atividades, avaliações e bibliografia para o curso.
O documento discute os conceitos de concorrência em sistemas operacionais, incluindo: (1) A possibilidade de o processador executar instruções em paralelo com operações de E/S permite que diversas tarefas sejam executadas concorrentemente; (2) Interrupções por hardware ou software são os eventos que permitem a concorrência através da troca de contexto entre tarefas; (3) Diferentes técnicas de E/S como buffering, spooling e DMA melhoram a concorrência e eficiência do sistema.
1. O documento apresenta o cronograma e plano de ensino da disciplina de Sistemas Operacionais ministrada entre agosto e dezembro de 2022, com aulas síncronas às segundas-feiras e possíveis aulas adicionais às terças e quintas-feiras.
2. As avaliações incluem atividades individuais e em dupla, apresentações e um relatório final.
3. Os objetivos de aprendizagem são compreender princípios básicos e históricos dos sistemas operacionais.
Mais conteúdo relacionado
Semelhante a Introdução aos sistemas distribuídos on-line para processamento de fluxos de dados – Parte I
sfCon 2012 - Conceitos de Engenharia Reversa aplicados na migração de sistema...Guilherme Veras
São abordados conceitos de Engenharia Reversa aplicados na migração de sistemas legados Symfony 1.x para Symfony 2.x.
O objetivo é que o responsável pela migração possa usar este conteúdo como guia de referência no desenvolvimento do seu processo de migração de sistemas.
O documento discute sistemas embarcados, incluindo suas características, áreas de aplicação, arquitetura e projeto. Sistemas embarcados são sistemas computacionais inseridos em máquinas ou equipamentos para controlá-los. Eles são encontrados em diversas aplicações como celulares, automóveis e eletrodomésticos.
Este documento apresenta o plano de ensino para a disciplina de Sistemas Operacionais no curso de Bacharelado em Sistemas de Informação. O plano descreve os objetivos da disciplina, conteúdo programático, metodologia, avaliação e cronograma com 18 aulas ao longo do semestre. O foco é desenvolver o entendimento dos alunos sobre os conceitos e componentes fundamentais de sistemas operacionais.
Este documento apresenta uma introdução sobre sistemas operacionais em menos de 3 frases:
O documento discute a história e evolução dos sistemas operacionais, desde as primeiras gerações baseadas em válvulas até os sistemas modernos da quinta geração com foco na computação ubíquita. Também resume os principais componentes de hardware de computadores e conceitos-chave de sistemas operacionais como processos, memória, E/S e chamadas ao sistema.
O documento discute sistemas de gerenciamento de redes. Ele aborda as dificuldades em isolar e diagnosticar problemas em redes, propondo a criação de um centro de operações de rede para monitorar a rede, identificar problemas e trabalhar em sua solução. Também discute a necessidade de ferramentas que apoiem o processo de diagnóstico, como um catálogo de problemas comuns.
Este documento descreve três tópicos principais:
1) Sistemas operativos de grande porte, que utilizam mainframes para permitir o acesso simultâneo de milhares de utilizadores a bases de dados complexas;
2) O sistema AS/400 da IBM, projetado para sistemas de tamanho médio e caracterizado por ser multiutilizador e ter integração de hardware e software;
3) O sistema VAX/VMS da Digital Equipment Corporation, desenvolvido para oferecer um sistema operativo multiutilizador para minicomputadores com arquitetura so
Este documento descreve três tópicos principais:
1) Sistemas operativos de grande porte, que utilizam mainframes para permitir o acesso simultâneo de milhares de utilizadores a bases de dados complexas;
2) O sistema AS/400 da IBM, projetado para sistemas de tamanho médio e caracterizado por ser multiutilizador e ter alta performance e segurança;
3) O sistema VAX/VMS da Digital Equipment Corporation, desenvolvido para oferecer um sistema operativo multiutilizador para minicomputadores com arquitetura sofistic
Arquitetura de Computadores - Lecom - UFMGdjonatascostsa
O documento apresenta uma introdução sobre o curso de Arquitetura de Computadores ministrado por Mario F. Montenegro Campos, abordando os tópicos que serão estudados como arquiteturas reconfiguráveis, sistemas paralelos e distribuídos, e hardware/software co-design. Também discute a importância do estudo da arquitetura de computadores e os pré-requisitos para o curso.
Introdução à Computação Aula 05 - Sistemas Operacionais (arquitetura do SO, p...Leinylson Fontinele
O documento discute os conceitos de sistemas operacionais, incluindo a arquitetura do SO, processos e gerenciamento de memória. É apresentada a visão geral do SO, os tipos de sistemas operacionais, estados de processos, comunicação entre processos, alocação de memória e fragmentação.
José Carlos de Paiva apresenta seu currículo com mais de 30 anos de experiência em sistemas mainframe IBM, atuando principalmente como analista de sistemas. Ele tem experiência em bancos como Banco Espírito Santo, Banco de Crédito Nacional e Banco Noroeste, onde liderou projetos de migração, integração e controle de versões.
Geração Automática de Autómatos Celulares para FPGAAndré Costa Lima
Este documento descreve um sistema para geração automática de autómatos celulares em FPGA. O sistema permite ao utilizador especificar as características e regras de um autómato celular que é então implementado em hardware reconfigurável. Os resultados demonstram um speed-up significativo em relação à implementação em software, atingindo um paralelismo de 100%. Futuramente, pretende-se melhorar o mapeamento físico para aumentar o desempenho.
O documento discute os desafios na medição da capacidade de processamento em sistemas mainframe. Apresenta diferentes métricas utilizadas ao longo do tempo para medir desempenho e capacidade, como MIPS, MHz, MSUs. Também discute ferramentas como o zPCR que permitem dimensionar sistemas mainframe de forma mais precisa, levando em conta fatores como carga de trabalho, configuração de LPARs e tipo de processador.
O documento descreve o plano de projeto para o desenvolvimento de um sistema de painel de estoque para um hospital universitário utilizando Java. Ele inclui estimativas de esforço, análise de riscos, planejamento de tarefas e qualidade, além de detalhar os requisitos funcionais e não funcionais do sistema. A equipe estima que o projeto pode ser concluído em 48 dias.
ASP.Net Performance – A pragmatic approach - Luis PaulinoComunidade NetPonto
Nesta sessão abordamos a performance de Sistemas de Informação desenvolvidos na plataforma ASP.NET com recurso a SQL Server com SGBD. Iremos explicar como surgem os problemas de performance em sistemas com alguns anos de existência e qual a abordagem a tomar, quando temos utilizadores insatisfeitos.
Abordaremos também alguns casos de sucesso no mercado a nível de sistemas de alta disponibilidade e como o mercado tem evoluído. De uma forma geral, pretendemos demonstrar técnicas de análise/tuning de performance em ASP.NET e sua evolução ao longo das várias versões, como também algumas técnicas de requisitos para obtenção e estruturação da informação.
Finalmente, o objetivo passa por divulgar procedimentos, técnicas e ferramentas que sirvam como uma referência que possam ser úteis caso surjam problemas de performance nos nossos sistemas de futuro, entre os quais : Do’s & Dont’s, Systematic Tuning, ASP.NET Trace, VS Profiling Tools, SQL Profiler entre outros.
Planejamento e Gerenciamento de Capacidade para Sistemas Distribuídosluanrjesus
O documento discute técnicas e desafios do planejamento e gerenciamento de capacidade para sistemas distribuídos. Ele aborda motivações históricas como o alto custo do mainframe e o crescimento desordenado com PCs, e técnicas como aquisição de métricas, consolidação, visualização e previsão. Também discute os impactos da virtualização, nuvem e métodos ágeis no planejamento de capacidade.
PostgreSQL Tuning: O elefante mais rápido que um leopardoelliando dias
O documento fornece dicas sobre como otimizar o desempenho de um banco de dados PostgreSQL. Ele discute problemas comuns de desempenho, escolhas de configuração erradas, melhorias de hardware e software, parâmetros do sistema operacional e do PostgreSQL, ferramentas de teste de desempenho e escalabilidade.
O documento descreve os tópicos e objetivos de uma disciplina de Sistemas Operacionais, incluindo a história e conceitos básicos do assunto, gerência de processos e memória, e estudos de sistemas operacionais existentes. Também inclui informações sobre atividades, avaliações e bibliografia para o curso.
O documento discute os conceitos de concorrência em sistemas operacionais, incluindo: (1) A possibilidade de o processador executar instruções em paralelo com operações de E/S permite que diversas tarefas sejam executadas concorrentemente; (2) Interrupções por hardware ou software são os eventos que permitem a concorrência através da troca de contexto entre tarefas; (3) Diferentes técnicas de E/S como buffering, spooling e DMA melhoram a concorrência e eficiência do sistema.
1. O documento apresenta o cronograma e plano de ensino da disciplina de Sistemas Operacionais ministrada entre agosto e dezembro de 2022, com aulas síncronas às segundas-feiras e possíveis aulas adicionais às terças e quintas-feiras.
2. As avaliações incluem atividades individuais e em dupla, apresentações e um relatório final.
3. Os objetivos de aprendizagem são compreender princípios básicos e históricos dos sistemas operacionais.
Semelhante a Introdução aos sistemas distribuídos on-line para processamento de fluxos de dados – Parte I (20)
Introdução aos sistemas distribuídos on-line para processamento de fluxos de dados – Parte I
1. Introdução aos sistemas distribuídos
on-line para processamento de fluxos
de dados – Parte I
PROF. ANDRÉ LEON S. GRADVOHL, DR.
GRADVOHL@FT.UNICAMP.BR
7/agosto/2015
2. 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.
• 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.
• Perspectivas de pesquisa e desenvolvimento na área de
sistemas distribuídos para processamento de fluxos de dados.
2
Parte I
Parte II
3. 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 emTelecomunicações, FEEC/Unicamp (2005)
• Especialização em Jornalismo Científico, Labjor, Unicamp (2010)
• Pós-doutorado em Sistemas Distribuídos, ParisVI (2014)
• Linhas de pesquisa
3
4. 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
4
We are always looking for great
graduate students.
5. Histórico e motivação para a utilização de
Complex Event Processing – CEP systems
• Big data Streams
Velocidade
Variedade
Volume
Fluxos
On-line
5
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.
6. Histórico e motivação para a utilização de
Complex Event Processing – CEP systems
• Análise financeira em tempo real.
6
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 deTecnologia/UNICAMP, 2015.
7. Histórico e motivação para a utilização de
Complex Event Processing – CEP systems
• Análise de tendências em redes sociais.
7
Dados são recebidos e permitem a
análise dos tópicos (textos) em redes
sociais isoladamente ou em conjunto.
8. Histórico e motivação para a utilização de
Complex Event Processing – CEP systems
• Detecção de padrões de ataques em servidores
8
Informações fornecidas pelos
dispositivos de rede são analisadas para
identificar padrões e evitar novas
tentativas.
10. Definição de sistemas CEP e conceitos importantes.
• Sistemas distribuídos para processamento online de eventos complexos
• Arquitetura genérica
10
Sistema de Processamento de Eventos
001001100110
010010001011
Fluxo de
dados
Esses vértices são
operadores. Eles
realizam computações
simples.
Esses arcos são
fluxos de dados.
Eventualmente,
alguns operadores
salvam dados em
disco.
Alguns operadores podem
estar juntos no mesmo nó
de processamento.
Os fluxos de dados podem
vir de diferentes fontes
(e. g. sites, celulares,
sensores)
<key_1, value_A><key_2, value_B><key_3, value_C>
Dados são processados pelos operadores e
podem ser transformados por eles, antes de
serem enviados a outros operadores.
O grafo acíclico
direcionado é a
topologia do sistema.
11. 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
12. 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
14. 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
16. 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
17. Fila de saída
Fila de Entrada
Arquitetura de um operador
17
Estado
do
processa-
mento
Estado de
Rotea-
mento
18. Fila de saída
Fila de Entrada
Nó
caiu!
Operador Upstream
Operador Downstream
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.
Upstream backup (stateless)
18
19. Fila de saída
Fila de Entrada
Estado
do
processa-
mento
Estado de
Rotea-
mento
Operador Upstream
Operador Downstream
Upstream backup (stateful)
19
Fila de saída
Fila de Entrada
Estado
do
processa-
mento
Estado de
Rotea-
mento
De tempos em tempos
20. 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
21. 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 highVelocity 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 FaultTolerance Issues. Journal of Emerging
Technologies in Web Intelligence, v. 6, p. 174-179, 2014.
21