[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...
| Author: | |
|---|---|
| Format: | doctoral thesis |
| Status: | Published version |
| Publication Date: | 2016 |
| Country: | Brasil |
| Institution: | Pontifícia Universidade Católica do Rio de Janeiro (PUC-RIO) |
| Repository: | Repositório Institucional da PUC-RIO (Projeto Maxwell) |
| Language: | Portuguese |
| OAI Identifier: | oai:MAXWELL.puc-rio.br:26115 |
| Online Access: | 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: | Open access |
| Keyword: | [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 |
| Summary: | [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. |
|---|