[en] PARALLEL PROGRAMING IN THE REDIS KEY-VALUE DATASTORE

[pt] Redis é um banco de dados chave-valor de código livre que dá suporte à avaliação de scripts Lua, mas sua implementação utiliza apenas uma tarefa de sistema operacional. Scripts longos são desencorajados porque a avaliação do código é bloqueante, o que pode causar degradação de desempenho para o...

Descripción completa

Detalles Bibliográficos
Autor: JUAREZ DA SILVA BOCHI
Tipo de recurso: tesis doctoral
Estado:Versión publicada
Fecha de publicación:2016
País:Brasil
Institución:Pontifícia Universidade Católica do Rio de Janeiro (PUC-RIO)
Repositorio:Repositório Institucional da PUC-RIO (Projeto Maxwell)
Idioma:portugués
OAI Identifier:oai:MAXWELL.puc-rio.br:26115
Acceso en línea:https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=26115&idi=1
https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=26115&idi=2
http://doi.org/10.17771/PUCRio.acad.26115
Access Level:acceso abierto
Palabra clave:[pt] MODELOS DE CONCORRENCIA
[pt] MODELO M :N
[pt] PROGRAMACAO PARALELA
[pt] REDIS
[pt] BANCOS DE DADOS
[pt] LUA
[en] CONCURRENCY MODELS
[en] M :N THREADING MODEL
[en] PARALLEL PROGRAMMING
[en] REDIS
[en] DATABASE DESIGN
[en] LUA
Descripción
Sumario:[pt] Redis é um banco de dados chave-valor de código livre que dá suporte à avaliação de scripts Lua, mas sua implementação utiliza apenas uma tarefa de sistema operacional. Scripts longos são desencorajados porque a avaliação do código é bloqueante, o que pode causar degradação de desempenho para os demais usuários. Através da aplicação do modelo de concorrência M:N, que combina tarefas de nível de sistema operacional com tarefas do nível de usuário, adicionamos no Redis a capacidade de execução de scripts em paralelo, permitindo que todos os núcleos do servidor sejam explorados. Com a utilização de corotinas Lua, implementamos um escalonador capaz de alocar e suspender a execução de tarefas de nível de usuário nos núcleos disponíveis sem necessidade de alteração do código dos scripts. Este modelo permitiu proteger o programador das complexidades naturais do paralelismo como sincronização no acesso a recursos compartilhados e escalonamento das tarefas.