Notícias, apontadores, pensamentos e pesquisas do Laboratório de Sistemas Distribuídos da UFCG
quarta-feira, 26 de outubro de 2011
Conversa LSD: Planejamento de capacidade para aplicações de comércio de eletrônico no contexto de SaaS.
Na Conversa LSD desta semana (27/10 16h) iremos discutir um pouco a respeito do trabalho que David Candeia desenvolve no LSD.
Resumo:
A oferta de aplicações de comércio eletrônico que buscavam atender um grande número de clientes, ou ainda, que estavam sujeitas a fortes restrições, despertou na última década um forte interesse a respeito do gerenciamento das infraestruturas de provedores considerando métricas de negócios. Com o surgimento do mercado de Computação na Nuvem, novos modelos de serviços de computação despontaram no mercado. Dentre tais modelos destaca-se o modelo de Aplicação como Serviço (Software-as-a-Service, SaaS) que abrange uma grande variedade de aplicações como gerenciadores de tarefas, editores de documento e aplicações de comércio eletrônico. O objetivo do trabalho é avaliar técnicas de planejamento de capacidade orientadas a negócio para aplicações de comércio de eletrônico no contexto de SaaS.
quarta-feira, 28 de setembro de 2011
Ativistas, passageiros, ocasionais e especialistas: perfis de usuário na construção de um site de Q&A
Adabriand nos diz que,
A apresentação de Adabriand é de livre entrada. Contamos com sua presença.
quarta-feira, 6 de julho de 2011
Conversa LSD: Automatic Suggestion of Efficiency Improvements on Database Routines
hoje, às 16h, Dimas Cassimiro, aluno de mestrado em ciência da computação da UFCG orientado pelos professores Carlos Eduardo Pires e Tiago Massoni, gentilmente apresentará sua pesquisa sobre como automatizar a detecção de melhorias no desempenho de rotinas de banco de dados.
Assim falou Dimas sobre seu trabalho -- "An efficient and common way to allow data manipulation in databases by applications is implementing database routines. However, if such implementations present inefficient programming logic or data manipulation, excessive delays are provided to the client application layers. Such delays can cause, among other problems, expressive financial losses. To solve this problem, the database routines must undergo a tuning process. Since the tuning process involves manual analysis of source code, its implementation usually becomes too much expensive. In order to reduce the cost of the tuning process, we present an approach based on static analysis of source code to perform automatic detection of potential efficiency improvements on database routines."
Antes da palestra haverá um coredump (Linux Tracing Capabilities) que será apresentado por Thiago Emmanuel.
terça-feira, 28 de junho de 2011
Conversas LSD: Massively-Parallel Graph Processing e Assessing the Value of Tags in Social Tagging Systems
Segue abaixo informações sobre o que será conversado
Terça, 16h, auditório do LSD
Abstract: The goal of this project is to understand the challenges in
porting graph algorithms to commodity, hybrid platforms; platforms
that consist of processors optimized for sequential processing and
accelerators optimized for massively-parallel processing. This study
fills the gap between current graph processing platforms that are
either expensive (e.g., supercomputers) or ine cient (e.g., commodity
clusters). Our hypothesis is that hybrid platforms (e.g.,
GPU-supported clusters) can bridge the performance-cost chasm, and
o er an attractive graph-processing solution for many graph-based
applications such as social networks and web analysis.
This work presents the first step towards designing Totem (a
graph-processing framework that leverages massively parallel hybrid
platforms. In particular, we design, implement, and evaluate core
graph algorithms (i.e., BFS, Dijkstra's algorithm, and PageRank).
Also, we discuss the future work based on the current experience
provided by these initial implementations.
(joint work with Lauro Beltrão Costa and Abdullah Gharaibeh)
Quarta, 16h, auditório do LSD
Similar to other commons-based peer-production systems, the efficiency of tagging rely on the individial contributions of participants. On the other hand, as opposed to systems desinged for resource sharing (e.g., BitTorrent, OurGrid), quantifying the value of contributions in tagging systems poses different challenges, as users produce information instead of physical resources.
This work investigates methods to assess the value of tags from the perspective of a user who is interested in navigating the system. The long term goal is to understand the aspect that influence the perceived value of tags and to inform the design of new mechanisms (e.g., incentive to produce more socially useful tags, or spam detection). In particular, in this talk I will provide an overview of the progress to date towards the aforementioned goal.
quarta-feira, 15 de junho de 2011
Perspectivas sobre computação na nuvem
quarta-feira, 8 de junho de 2011
Democratizing Resource-Intensive e-Science Through Peer-to-Peer Grid Computing
Conversa LSD: Eficiência de download em comunidades BitTorrent
sábado, 4 de junho de 2011
UFCG é "bi-campeã" no SBRC
O artigo intitulado "Sobre a Amplitude da Elasticidade dos Atuais Provedores de Computação na Nuvem", de Rostand Costa, Francisco Vilar Brasileiro, Guido Lemos de Souza Filho e Dênio Mariz Sousa, foi selecionado entre os 5 melhores artigos do XXIX Congresso Brasileiro de Redes de Computadores e Sistemas Distribuídos, realizado em Campo Grande entre 30 de maio e 3 de junho. Esses 5 artigos serão publicados em uma edição especial da Revista Brasileira de Redes de Computadores e Sistemas Distribuídos editada pela Sociedade Brasileira de Computação.
No ano passado um outro artigo descrevendo pesquisa desenvolvida na UFCG também havia recebido a mesma premiação neste conceituado evento. Trata-se do artigo intitulado "Análise de Estratégias de Green Computing em Grades Computacionais Oportunistas", cujos autores são Lesandro Ponciano, Jaindson Santana, Marcus Carvalho, Matheus Gaudencio e Francisco Brasileiro.
Parabéns à UFCG, "bi-campeã" no SBRC. E que venham mais!
terça-feira, 24 de maio de 2011
LSD no SBRC 2011
Esse ano o LSD participará com 7 artigos no Simpósio Brasileiro de Redes de Computadores e Sistemas Distribuídos. Quatro destes artigos serão apresentados na trilha principal do evento, e os restantes em três workshops. Aliás, um dos workshops esse ano também está sendo organizado pelo LSD (Nazareno é o coordenador do WP2P).
Seguem abaixo os artigos, com links e os respectivos temas:
Sobre a Amplitude da Elasticidade dos Atuais Provedores de Computaçãoo na Nuvem - Rostand Costa, Giuliano Maia, Guido Lemos de Souza Filho, Dênio Mariz Sousa, Francisco Vilar Brasileiro
Os provedores atuais de computacão na nuvem impõem um limite estrito na quantidade de recursos que um usuário pode adquirir concomitantemente, o que prejudica uma série de aplicações que poderiam se beneficiar de mais elasticidade. Por que a elasticidade prometida pela nuvem não é atualmente fornecida?
Análise do impacto de detectores de falhas adaptativos no OurGrid - Abmar Barros e Francisco Brasileiro
Qual o efeito do uso de detectores de falha estado-da-arte nas métricas de aplicação de sistemas distribuídos complexos? Esse estudo usa o OurGrid como estudo de caso e explora essa pergunta usando três dos detectores adaptativos mais conhecidos na literatura.
Uma Nova Políıtica de Incentivos para Grades Computacionais
Entre-Pares - Matheus Gaudencio e Francisco Brasileiro
Estendendo a rede de favores do OurGrid para melhor acomodar participantes que doam recursos apenas esporadicamente.
Computação intensiva em dados com MapReduce em ambientes oportunistas - Jonhnny Weslley Silva, Thiago Emmanuel Pereira, Carla de Araujo Souza, Francisco Brasileiro
Como executar aplicações MapReduce em ambientes não-dedicados sem transtornar usuários ou comprometer o desempenho? Esse artigo apresenta heurísticas e sua aplicação numa modificação do BashReduce, uma implementacao leve do modelo MapReduce.
Construindo Infraestruturas Computacionais Distribuídas e Seguras Baseadas em Receptores de TV Digital - Rostand Costa, Giuliano Maia, Guido Lemos de Souza Filho, Dênio Mariz Sousa, Francisco Vilar Brasileiro
Usando dados de observações empíricas, que fatores afetam a eficiência da distribuição de conteúdo via BitTorrent e como podemos analisar isso?
Estimando o Valor de uma Grade Entre Pares para a Execucao de Aplicacoes do Tipo Saco de Tarefas - Edigley Fraga, Francisco Brasileiro e Dalton Serey
Um comparativo de custo e e desempenho entre o uso de grades entre-pares e Infraestrutura como Serviço para a execução de aplicações do tipo Saco de Tarefas.
domingo, 8 de maio de 2011
Ciberciência cidadã
Talvez o exemplo mais conhecido desse tipo de atividade são os projetos de computação voluntária, como SETI@home e folding@home, onde os cidadãos doam o tempo ocioso de seus computadores ou consoles de videogame para executar aplicações científicas. O software usado no projeto SETI@home foi generalizado dando origem ao middleware BOINC que no momento é usado por cerca de 40 projetos de computação voluntária, entre eles os projetos World Community Grid, financiado pela IBM, e o Ibercivis, financiado por várias entidades na Espanha e em Portugal. Esses dois projetos têm a particularidade de serem projetos "guarda-chuva", abrigando diversas aplicações de vários domínios científicos. De 23 a 27 de maio estaremos recebendo no LSD dois membros do projeto Ibercivis que irão nos ajudar a implantar um serviço de computação voluntária no Brasil, parte da federação do projeto Ibercivis. Nesse período tentaremos também portar duas aplicações científicas para serem executadas no novo serviço: uma aplicação de bioinformática da Fundação Oswaldo Cruz e outra de gestão de recursos hídricos de nossos parceiros da UFCG.
Mais recentemente a ciberciência cidadã tem buscado um maior envolvimento dos cidadãos que vai além da simples utilização do tempo ocioso de seus computadores. A idéia é usar a capacidade cognitiva dessa grande rede de recursos para avançar a ciência. Esse tipo de atividade ganhou o nome de volunteer thinking e vai desde a ajuda para coletar dados, passando por atividades de classificação, até verdadeiras descobertas científicas. O projeto oldWeather.org, por exemplo, usa o trabalho voluntário de centenas de pessoas para armazenar em bancos de dados as informações sobre o tempo nos últimos 200 anos registradas nos diários de navios da marinha Britânica. Esses dados são muito importantes para uma avaliação consistente dos impactos que as mudanças climáticas podem trazer para o planeta. Outro projeto de volunteer thinking é o GalaxyZoo, que usa voluntários para classificar galáxias. Esses e outros projetos semelhantes estão organizados no portal Zooniverse. Finalmente, aplicações bem mais elaboradas podem tirar ainda mais proveito do trabalho de voluntários. A aplicação Foldit é um jogo que busca encontrar alvos de drogas para doenças através de uma abordagem lúdica, onde o jogador é levado a avaliar a melhor forma de acoplar proteínas.
Como resultado do evento Brasil@home, está se tentando formar uma comunidade no Brasil para fomentar iniciativas de ciberciência cidadã. Em breve essas iniciativas serão agrupadas no portal Ciência Cidadã. O serviço de computação voluntária que o LSD irá prover, deverá ser uma das primeiras ações concretas desta comunidade. Várias idéias de projetos de volunteer thinking também estão sendo discutidas. Se você tiver uma idéia de um projeto interessante, nós teremos o maior prazer de poder lhe ajudar a desenvolvê-lo.
Mais sobre a repercussão do evento pode ser visto/ouvido no video abaixo e neste programa da voz do Brasil.
segunda-feira, 7 de fevereiro de 2011
Processamento de fluxo de eventos
Eventos são mensagens que não são explicitamente endereçadas e que sinalizam a ocorrência de alguma mudança de estado em um sistema. Os eventos propriamente ditos podem de uma simples lista de nomes de atributos e valores associados até mesmo um objeto serializado de uma linguagem tipo Java.
Quando os componentes de um sistema se comunicam apenas através da geração e recebimento de eventos, diz-se que o sistema possui uma arquitetura orientada a eventos (EDA – Event Driven Architecture). Como os eventos não são explicitamente endereçados, um sistema orientado a eventos requer um canal de comunicação de eventos. Esse canal funciona da seguinte forma: (a) os componentes geradores de eventos registram no sistema de comunicação os tipos de eventos que serão gerados; (b) por sua vez, os componentes interessados em monitorar eventos de certo tipo, registram o seu interesse em receber eventos daquele tipo; (c) finalmente, quando um evento é de fato gerado, o sistema de comunicação entrega o evento a todos os componentes interessados naquele tipo de evento. Observe que o componente gerador dos eventos não conhece os componentes que receberão o evento. Esse isolamento faz com que sistemas orientados a eventos sejam fracamente acoplados.
Arquitetura orientada a eventos é muito comum em sistemas de monitoramento, pois a adição de mais monitores não influencia o sistema monitorado. Em um sistema de monitoramento, um sistema monitor observa o comportamento de outro sistema, o monitorado. O monitor precisa então observar os eventos gerados pelo sistema monitorado e interpretá-los, de forma a detectar se algo relevante aconteceu no sistema monitorado. Desta forma, é preciso primeiro coletar os eventos que este sistema observado produz e depois processar esses eventos de forma a determinar se eles sinalizam situações de interesse. Um exemplo de situação de interesse é uma queda brusca de preço em uma ação no mercado de ações. Neste caso, o sistema monitorado é o mercado de ações e o sistema monitor pode ser uma aplicação que detecta oportunidades de negócios no mercado de ações. Quando uma situação de interesse é detectada, neste caso, uma oportunidade de negócio, o sistema de monitoramento pode acionar uma atividade de resposta, por exemplo, uma compra de ações cujos preços estão atraentes.
O exemplo acima é conhecido como negociação de alta frequência (High Frequency Trading). Observe que em uma aplicação como o mercado de ações, eventos de compra ou venda acontecem constantemente, milhares de vezes por segundo. O sistema de monitoramento recebe então eventos continuamente. Por essa razão, sistemas de monitoramento baseados em eventos são também conhecidos como sistemas de processamento de fluxos de eventos. Sistemas de processamento de fluxos de eventos (no inglês, ESP – Event Stream Processing) são tipicamente compostos por um grafo de operadores. Cada operador executada parte da tarefa de processar os eventos. Exemplos de operadores são os seguintes:
- Filtros (descartam ou repassam eventos de acordo com atributos do mesmo);
- Conversores (aplicam uma função a um evento, gerando um evento de saída que possui, por exemplo, um formato diferente);
- Agregadores (combinam vários eventos, gerando um evento de saída que agrega informações de todos eles como, por exemplo, a média aritmética).
Observe que alguns dos tipos de operações acima requerem que o operador mantenha algum estado local. Por exemplo, para calcular uma média, é preciso considerar não somente o último evento, mas também os eventos anteriores (normalmente, operações de agregação são feitas considerando uma janela de eventos, por exemplo, os eventos dos últimos 10 minutos). Quando operações não tem estado, é fácil paralelizá-las, basta criar várias cópias do mesmo operador e dividir o fluxo de eventos entre eles. No entanto, quando o operador mantem um estado (no caso da média, uma janela com um determinado número de eventos), as várias cópias do operador precisam coordenar de que forma elas acessam o estado do mesmo.
Infelizmente, coordenar o acesso de várias cópias do operador a um só estado não é fácil. Se travas forem utilizadas, ou a área de código coberta por uma trava é minimizada ou pouco paralelismo será alcançado. No entanto, minimizar a área de cobertura de uma trava é difícil e é uma causa frequente para bugs não determinísticos no código. Além do problema da paralelização correta, aplicações de processamento de eventos têm frequentemente outro requisito, a ordem de processamento dos eventos é importante. Quando um operador é paralelizado com travas, a ordem de processamento dos eventos não é necessariamente a mesma de uma execução sequencial.
Durante meu trabalho de doutorado, investiguei formas de prover paralelização automática que preservam a ordem do fluxo de eventos. O resultado foi um sistema de paralelização especulativa baseado em memórias transacionais em software (STM – Software Transactional Memory). Este sistema processa eventos em paralelo de forma especulativa e monitora os acessos ao estado do operador. Quando o processamento de dois eventos não acessa posições de memória em comum, a execução paralela especulativa funcionou e a ordem foi garantida. Caso contrário, quando há interferências, o processamento do evento que deveria ser processado primeiro é confirmado e o processamento do segundo evento é repetido para considerar as modificações no estado causadas pelo processamento do primeiro. Um exemplo de interferência é quando o processamento dos dois eventos exige o incremento de um mesmo contador, neste caso, se nenhuma abordagem especial (específica para o incremento de variáveis) for utilizada, os eventos precisam ser processados sequencialmente para que o segundo considere o incremento feito durante o processamento do primeiro.
Por fim, investiguei formas de tolerância a falhas em sistemas de processamento de eventos. Como resultado, propus abordagens para a implantação de replicação ativa e passiva que aproveita os mecanismos de especulação providos pelo esquema de paralelização especulativa para reduzir o custo em desempenho da replicação.
Slides: http://www.lsd.ufcg.edu.br/~andrey/ConversaLSD_IntroESP.pdf