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

Detalhes bibliográficos
Autor(a) principal: Perez, Taciano Dreckmann
Data de Publicação: 2017
Tipo de documento: Tese
Idioma: eng
Título da fonte: Biblioteca Digital de Teses e Dissertações da PUC_RS
Texto Completo: http://tede2.pucrs.br/tede2/handle/tede/7562
Resumo: 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.
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 De Rose, César Augusto Fonticielha579.850.570-72http://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4723497Z5929.528.100-44http://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4169444Y6Perez, Taciano Dreckmann2017-07-03T15:03:25Z2017-05-03http://tede2.pucrs.br/tede2/handle/tede/7562Sistemas 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.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.Submitted by Caroline Xavier (caroline.xavier@pucrs.br) on 2017-07-03T15:03:25Z No. of bitstreams: 1 TES_TACIANO_DRECKMANN_PEREZ_COMPLETO.pdf: 1779781 bytes, checksum: 2111ccea963be0eea76bdbb7d24321d9 (MD5)Made available in DSpace on 2017-07-03T15:03:25Z (GMT). No. of bitstreams: 1 TES_TACIANO_DRECKMANN_PEREZ_COMPLETO.pdf: 1779781 bytes, checksum: 2111ccea963be0eea76bdbb7d24321d9 (MD5) Previous issue date: 2017-05-03application/pdfhttp://tede2.pucrs.br:80/tede2/retrieve/169389/TES_TACIANO_DRECKMANN_PEREZ_COMPLETO.pdf.jpgengPontifícia Universidade Católica do Rio Grande do SulPrograma de Pós-Graduação em Ciência da ComputaçãoPUCRSBrasilFaculdade de InformáticaNon-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 COMPUTACAOPersistent 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 Javainfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/doctoralThesis1974996533081274470600600600-30085425104011491443671711205811204509info: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_RSTHUMBNAILTES_TACIANO_DRECKMANN_PEREZ_COMPLETO.pdf.jpgTES_TACIANO_DRECKMANN_PEREZ_COMPLETO.pdf.jpgimage/jpeg3967http://tede2.pucrs.br/tede2/bitstream/tede/7562/4/TES_TACIANO_DRECKMANN_PEREZ_COMPLETO.pdf.jpg9706c0cd6fab40e2ca0ec09b1c52ed64MD54TEXTTES_TACIANO_DRECKMANN_PEREZ_COMPLETO.pdf.txtTES_TACIANO_DRECKMANN_PEREZ_COMPLETO.pdf.txttext/plain250767http://tede2.pucrs.br/tede2/bitstream/tede/7562/3/TES_TACIANO_DRECKMANN_PEREZ_COMPLETO.pdf.txtd4bac046377e8bce078d4e543c758accMD53ORIGINALTES_TACIANO_DRECKMANN_PEREZ_COMPLETO.pdfTES_TACIANO_DRECKMANN_PEREZ_COMPLETO.pdfapplication/pdf1779781http://tede2.pucrs.br/tede2/bitstream/tede/7562/2/TES_TACIANO_DRECKMANN_PEREZ_COMPLETO.pdf2111ccea963be0eea76bdbb7d24321d9MD52LICENSElicense.txtlicense.txttext/plain; charset=utf-8610http://tede2.pucrs.br/tede2/bitstream/tede/7562/1/license.txt5a9d6006225b368ef605ba16b4f6d1beMD51tede/75622017-07-03 20:00:17.268oai:tede2.pucrs.br:tede/7562QXV0b3JpemHDp8OjbyBwYXJhIFB1YmxpY2HDp8OjbyBFbGV0csO0bmljYTogQ29tIGJhc2Ugbm8gZGlzcG9zdG8gbmEgTGVpIEZlZGVyYWwgbsK6OS42MTAsIGRlIDE5IGRlIGZldmVyZWlybyBkZSAxOTk4LCBvIGF1dG9yIEFVVE9SSVpBIGEgcHVibGljYcOnw6NvIGVsZXRyw7RuaWNhIGRhIHByZXNlbnRlIG9icmEgbm8gYWNlcnZvIGRhIEJpYmxpb3RlY2EgRGlnaXRhbCBkYSBQb250aWbDrWNpYSBVbml2ZXJzaWRhZGUgQ2F0w7NsaWNhIGRvIFJpbyBHcmFuZGUgZG8gU3VsLCBzZWRpYWRhIGEgQXYuIElwaXJhbmdhIDY2ODEsIFBvcnRvIEFsZWdyZSwgUmlvIEdyYW5kZSBkbyBTdWwsIGNvbSByZWdpc3RybyBkZSBDTlBKIDg4NjMwNDEzMDAwMi04MSBiZW0gY29tbyBlbSBvdXRyYXMgYmlibGlvdGVjYXMgZGlnaXRhaXMsIG5hY2lvbmFpcyBlIGludGVybmFjaW9uYWlzLCBjb25zw7NyY2lvcyBlIHJlZGVzIMOgcyBxdWFpcyBhIGJpYmxpb3RlY2EgZGEgUFVDUlMgcG9zc2EgYSB2aXIgcGFydGljaXBhciwgc2VtIMO0bnVzIGFsdXNpdm8gYW9zIGRpcmVpdG9zIGF1dG9yYWlzLCBhIHTDrXR1bG8gZGUgZGl2dWxnYcOnw6NvIGRhIHByb2R1w6fDo28gY2llbnTDrWZpY2EuCg==Biblioteca 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.por.fl_str_mv Persistent memory and orthogonal persistence : a persistent heap design and its implementation for the Java virtual machine
dc.title.alternative.por.fl_str_mv 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.advisor1.fl_str_mv De Rose, César Augusto Fonticielha
dc.contributor.advisor1ID.fl_str_mv 579.850.570-72
dc.contributor.advisor1Lattes.fl_str_mv http://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4723497Z5
dc.contributor.authorID.fl_str_mv 929.528.100-44
dc.contributor.authorLattes.fl_str_mv http://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4169444Y6
dc.contributor.author.fl_str_mv Perez, Taciano Dreckmann
contributor_str_mv De Rose, César Augusto Fonticielha
dc.subject.eng.fl_str_mv Non-Volatile Memory
Storage-Class Memory
Persistent Memory
Orthogonal Persistence
Java
Java Virtual Machine
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
dc.subject.por.fl_str_mv Memória Não-Volátil
Memória Persistente
Persistência Ortogonal
Máquina Virtual Java
dc.subject.cnpq.fl_str_mv CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
description 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.
publishDate 2017
dc.date.accessioned.fl_str_mv 2017-07-03T15:03:25Z
dc.date.issued.fl_str_mv 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.relation.program.fl_str_mv 1974996533081274470
dc.relation.confidence.fl_str_mv 600
600
600
dc.relation.department.fl_str_mv -3008542510401149144
dc.relation.cnpq.fl_str_mv 3671711205811204509
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
dc.publisher.program.fl_str_mv Programa de Pós-Graduação em Ciência da Computação
dc.publisher.initials.fl_str_mv PUCRS
dc.publisher.country.fl_str_mv Brasil
dc.publisher.department.fl_str_mv Faculdade de Informática
publisher.none.fl_str_mv Pontifícia Universidade Católica do Rio Grande do Sul
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
bitstream.url.fl_str_mv http://tede2.pucrs.br/tede2/bitstream/tede/7562/4/TES_TACIANO_DRECKMANN_PEREZ_COMPLETO.pdf.jpg
http://tede2.pucrs.br/tede2/bitstream/tede/7562/3/TES_TACIANO_DRECKMANN_PEREZ_COMPLETO.pdf.txt
http://tede2.pucrs.br/tede2/bitstream/tede/7562/2/TES_TACIANO_DRECKMANN_PEREZ_COMPLETO.pdf
http://tede2.pucrs.br/tede2/bitstream/tede/7562/1/license.txt
bitstream.checksum.fl_str_mv 9706c0cd6fab40e2ca0ec09b1c52ed64
d4bac046377e8bce078d4e543c758acc
2111ccea963be0eea76bdbb7d24321d9
5a9d6006225b368ef605ba16b4f6d1be
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
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_ 1799765328108978176