Título
[en] PARALLEL PROGRAMING IN THE REDIS KEY-VALUE DATASTORE
Título
[pt] PROGRAMAÇÃO PARALELA NO BANCO DE DADOS CHAVE-VALOR REDIS
Autor
[pt] JUAREZ DA SILVA BOCHI
Vocabulário
[pt] MODELOS DE CONCORRENCIA
Vocabulário
[pt] MODELO M :N
Vocabulário
[pt] PROGRAMACAO PARALELA
Vocabulário
[pt] REDIS
Vocabulário
[pt] BANCOS DE DADOS
Vocabulário
[pt] LUA
Vocabulário
[en] CONCURRENCY MODELS
Vocabulário
[en] M :N THREADING MODEL
Vocabulário
[en] PARALLEL PROGRAMMING
Vocabulário
[en] REDIS
Vocabulário
[en] DATABASE DESIGN
Vocabulário
[en] LUA
Resumo
[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.
Resumo
[en] Redis is an open source key-value database that supports Lua programming
language scripts, but it s implementation is single threaded. Long running
scripts are discouraged because script evaluation is blocking, which may
cause service levels deterioration. Applying the M:N threading model,
which combines user and operating system threads, we added to Redis the
ability of running scripts in parallel, leveraging all server cores.With the use
of Lua coroutines, we implemented a scheduler able to allocate and suspend
user-level tasks in the available cores without the need of changing scripts
source code. The M:N model allowed us to protect the programmer from the
natural complexities that arise from parallel programming, such as access
to shared resources synchronization and scheduling of tasks into different
operational system threads.
Orientador(es)
NOEMI DE LA ROCQUE RODRIGUEZ
Banca
ROBERTO IERUSALIMSCHY
Banca
NOEMI DE LA ROCQUE RODRIGUEZ
Banca
ANA LUCIA DE MOURA
Catalogação
2016-04-12
Apresentação
2015-09-03
Tipo
[pt] TEXTO
Formato
application/pdf
Idioma(s)
PORTUGUÊS
Referência [pt]
https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=26115@1
Referência [en]
https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=26115@2
Referência DOI
https://doi.org/10.17771/PUCRio.acad.26115
Arquivos do conteúdo
NA ÍNTEGRA PDF