[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...
| Autor: | |
|---|---|
| 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 |
| 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. |
|---|