Persistent memory and orthogonal persistence : a persistent heap design and its implementation for the Java virtual machine

Detalhes bibliográficos
Ano de defesa: 2017
Autor(a) principal: Perez, Taciano Dreckmann
Orientador(a): Não Informado pela instituição
Banca de defesa: Não Informado pela instituição
Tipo de documento: Tese
Tipo de acesso: Acesso aberto
Idioma: eng
Instituição de defesa: Pontifícia Universidade Católica do Rio Grande do Sul
Faculdade de Informática
Brasil
PUCRS
Programa de Pós-Graduação em Ciência da Computação
Programa de Pós-Graduação: Não Informado pela instituição
Departamento: Não Informado pela instituição
País: Não Informado pela instituição
Palavras-chave em Português:
Link de acesso: http://tede2.pucrs.br/tede2/handle/tede/7562
Resumo: Current computer systems separate main memory from storage. Programming languages typically reflect this distinction using different representations for data in memory (e.g. data structures, objects) and storage (e.g. files, databases). Moving data back and forth between these different layers and representations compromise both programming and execution efficiency. Recent nonvolatile memory technologies, such as Phase-Change Memory, Resistive RAM, and Magnetoresistive RAM make it possible to collapse main memory and storage into a single layer of persistent memory, opening the way for simpler and more efficient programming abstractions for handling persistence. This Ph.D. thesis introduces a design for the runtime environment for languages with automatic memory management, based on an original combination of orthogonal persistence, persistent memory programming, persistence by reachability, and lock-based failure-atomic transactions. Such design can significantly increase programming and execution efficiency, as in-memory data structures are transparently persistent, without the need for programmatic persistence handling, and removing the need for crossing semantic boundaries. In order to validate and demonstrate the proposed concepts, this work also presents JaphaVM, the first Java Virtual Machine specifically designed for persistent memory. In experimental results using benchmarks and real-world applications, JaphaVM in most cases executed the same operations between one and two orders of magnitude faster than database- and file-based implementations, while requiring significantly less lines of code.
id P_RS_6242b52c6ceff3c69377105355494ec8
oai_identifier_str oai:tede2.pucrs.br:tede/7562
network_acronym_str P_RS
network_name_str Biblioteca Digital de Teses e Dissertações da PUC_RS
repository_id_str
spelling Persistent memory and orthogonal persistence : a persistent heap design and its implementation for the Java virtual machineMemória persistente e persistência ortogonal : um projeto heap persistente e sua implementação para a máquina virtual JavaNon-Volatile MemoryStorage-Class MemoryPersistent MemoryOrthogonal PersistenceJavaJava Virtual MachineMemória Não-VolátilMemória PersistentePersistência OrtogonalMáquina Virtual JavaCIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAOCurrent computer systems separate main memory from storage. Programming languages typically reflect this distinction using different representations for data in memory (e.g. data structures, objects) and storage (e.g. files, databases). Moving data back and forth between these different layers and representations compromise both programming and execution efficiency. Recent nonvolatile memory technologies, such as Phase-Change Memory, Resistive RAM, and Magnetoresistive RAM make it possible to collapse main memory and storage into a single layer of persistent memory, opening the way for simpler and more efficient programming abstractions for handling persistence. This Ph.D. thesis introduces a design for the runtime environment for languages with automatic memory management, based on an original combination of orthogonal persistence, persistent memory programming, persistence by reachability, and lock-based failure-atomic transactions. Such design can significantly increase programming and execution efficiency, as in-memory data structures are transparently persistent, without the need for programmatic persistence handling, and removing the need for crossing semantic boundaries. In order to validate and demonstrate the proposed concepts, this work also presents JaphaVM, the first Java Virtual Machine specifically designed for persistent memory. In experimental results using benchmarks and real-world applications, JaphaVM in most cases executed the same operations between one and two orders of magnitude faster than database- and file-based implementations, while requiring significantly less lines of code.Sistemas computacionais da atualidade tradicionalmente separam memória e armazenamento. Linguagens de programação tipicamente refletem essa distinção usando diferentes representações para dados em memória (ex. estruturas de dados, objetos) e armazenamento (ex. arquivos, bancos de dados). A movimentação de dados entre esses dois níveis e representações, bidirecionalmente, compromete tanto a eficiência do programador quanto de execução dos programas. Tecnologias recentes de memoria não-volátil, tais como memória de transição de fase, resistiva e magnetoresistiva, possibilitam combinar memória principal e armazenamento em uma única entidade de memória persistente, abrindo caminho para abstrações mais eficientes para lidar com persistência de dados. Essa tese de doutorado introduz uma abordagem de projeto para o ambiente de execução de linguagens com gerência automática de memória, baseado numa combinação original de persistência ortogonal, programação para memória persistente, persistência por alcance, e transações com atomicidade em caso de falha. Esta abordagem pode melhorar significativamente a produtividade do programador e a eficiência de execução dos programas, uma vez que estruturas de dados em memória passam a ser persistentes de forma transparente, sem a necessidade de programar explicitamente o armazenamento, e removendo a necessidade de cruzar fronteiras semânticas. De forma a validar e demonstrar a abordagem proposta, esse trabalho também apresenta JaphaVM, a primeira Máquina Virtual Java especificamente projetada para memória persistente. Resultados experimentais usando benchmarks e aplicações reais demonstram que a JaphaVM, na maioria dos casos, executa as mesmas operações cerca de uma a duas ordens de magnitude mais rapidamente do que implementações equivalentes usando bancos de dados ou arquivos, e, ao mesmo tempo, requer significativamente menos linhas de código.Pontifícia Universidade Católica do Rio Grande do SulFaculdade de InformáticaBrasilPUCRSPrograma de Pós-Graduação em Ciência da ComputaçãoDe Rose, César Augusto Fonticielha579.850.570-72http://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4723497Z5Perez, Taciano Dreckmann2017-07-03T15:03:25Z2017-05-03info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/doctoralThesisapplication/pdfhttp://tede2.pucrs.br/tede2/handle/tede/7562enginfo:eu-repo/semantics/openAccessreponame:Biblioteca Digital de Teses e Dissertações da PUC_RSinstname:Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS)instacron:PUC_RS2017-07-03T23:00:17Zoai:tede2.pucrs.br:tede/7562Biblioteca Digital de Teses e Dissertaçõeshttp://tede2.pucrs.br/tede2/PRIhttps://tede2.pucrs.br/oai/requestbiblioteca.central@pucrs.br||opendoar:2017-07-03T23:00:17Biblioteca Digital de Teses e Dissertações da PUC_RS - Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS)false
dc.title.none.fl_str_mv Persistent memory and orthogonal persistence : a persistent heap design and its implementation for the Java virtual machine
Memória persistente e persistência ortogonal : um projeto heap persistente e sua implementação para a máquina virtual Java
title Persistent memory and orthogonal persistence : a persistent heap design and its implementation for the Java virtual machine
spellingShingle Persistent memory and orthogonal persistence : a persistent heap design and its implementation for the Java virtual machine
Perez, Taciano Dreckmann
Non-Volatile Memory
Storage-Class Memory
Persistent Memory
Orthogonal Persistence
Java
Java Virtual Machine
Memória Não-Volátil
Memória Persistente
Persistência Ortogonal
Máquina Virtual Java
CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
title_short Persistent memory and orthogonal persistence : a persistent heap design and its implementation for the Java virtual machine
title_full Persistent memory and orthogonal persistence : a persistent heap design and its implementation for the Java virtual machine
title_fullStr Persistent memory and orthogonal persistence : a persistent heap design and its implementation for the Java virtual machine
title_full_unstemmed Persistent memory and orthogonal persistence : a persistent heap design and its implementation for the Java virtual machine
title_sort Persistent memory and orthogonal persistence : a persistent heap design and its implementation for the Java virtual machine
author Perez, Taciano Dreckmann
author_facet Perez, Taciano Dreckmann
author_role author
dc.contributor.none.fl_str_mv De Rose, César Augusto Fonticielha
579.850.570-72
http://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4723497Z5
dc.contributor.author.fl_str_mv Perez, Taciano Dreckmann
dc.subject.por.fl_str_mv Non-Volatile Memory
Storage-Class Memory
Persistent Memory
Orthogonal Persistence
Java
Java Virtual Machine
Memória Não-Volátil
Memória Persistente
Persistência Ortogonal
Máquina Virtual Java
CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
topic Non-Volatile Memory
Storage-Class Memory
Persistent Memory
Orthogonal Persistence
Java
Java Virtual Machine
Memória Não-Volátil
Memória Persistente
Persistência Ortogonal
Máquina Virtual Java
CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
description Current computer systems separate main memory from storage. Programming languages typically reflect this distinction using different representations for data in memory (e.g. data structures, objects) and storage (e.g. files, databases). Moving data back and forth between these different layers and representations compromise both programming and execution efficiency. Recent nonvolatile memory technologies, such as Phase-Change Memory, Resistive RAM, and Magnetoresistive RAM make it possible to collapse main memory and storage into a single layer of persistent memory, opening the way for simpler and more efficient programming abstractions for handling persistence. This Ph.D. thesis introduces a design for the runtime environment for languages with automatic memory management, based on an original combination of orthogonal persistence, persistent memory programming, persistence by reachability, and lock-based failure-atomic transactions. Such design can significantly increase programming and execution efficiency, as in-memory data structures are transparently persistent, without the need for programmatic persistence handling, and removing the need for crossing semantic boundaries. In order to validate and demonstrate the proposed concepts, this work also presents JaphaVM, the first Java Virtual Machine specifically designed for persistent memory. In experimental results using benchmarks and real-world applications, JaphaVM in most cases executed the same operations between one and two orders of magnitude faster than database- and file-based implementations, while requiring significantly less lines of code.
publishDate 2017
dc.date.none.fl_str_mv 2017-07-03T15:03:25Z
2017-05-03
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/doctoralThesis
format doctoralThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://tede2.pucrs.br/tede2/handle/tede/7562
url http://tede2.pucrs.br/tede2/handle/tede/7562
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.publisher.none.fl_str_mv Pontifícia Universidade Católica do Rio Grande do Sul
Faculdade de Informática
Brasil
PUCRS
Programa de Pós-Graduação em Ciência da Computação
publisher.none.fl_str_mv Pontifícia Universidade Católica do Rio Grande do Sul
Faculdade de Informática
Brasil
PUCRS
Programa de Pós-Graduação em Ciência da Computação
dc.source.none.fl_str_mv reponame:Biblioteca Digital de Teses e Dissertações da PUC_RS
instname:Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS)
instacron:PUC_RS
instname_str Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS)
instacron_str PUC_RS
institution PUC_RS
reponame_str Biblioteca Digital de Teses e Dissertações da PUC_RS
collection Biblioteca Digital de Teses e Dissertações da PUC_RS
repository.name.fl_str_mv Biblioteca Digital de Teses e Dissertações da PUC_RS - Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS)
repository.mail.fl_str_mv biblioteca.central@pucrs.br||
_version_ 1850041285807702016