La prochaine révolution du soft viendra du hard !
Nous sommes à l'aube d'une nouvelle révolution informatique. Bientôt, nos programmes ne seront plus comme avant (figure 1), grâce à une nouvelle technologie : les RAM persistantes ou NVRAM pour Non-Volatile-RAM [1].
Fig. 1 : RAM volatile.
Dans peu de temps [2], il sera possible d'acheter de la RAM qui n'a pas besoin d'être alimentée pour maintenir les informations (figure 2) ! Et cela avec…
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première
[1] Également connues sous le vocable NVDIMM-[NF] pour Non-Volatile Dual In-line Memory Module.
[2] « Des barettes DIMM en 2018 » : http://www.tomshardware.fr/articles/dimm-barrettes-3d-xpoint-intel,1-65955.html
[3] LEE S., BAHN H. et NOH S., « CLOCK-DWF: A Write-History-Aware Page Replacement Algorithm for Hybrid PCM and DRAM Memory Architectures », IEEE Transactions on Computers, Volume 63, Issue 9, 2014 : http://dx.doi.org/10.1109/TC.2013.98
[4] Ferroelectric RAM : https://fr.wikipedia.org/wiki/Ferroelectric_Random_Access_Memory
[5] Magnetic RAM : https://fr.wikipedia.org/wiki/Magnetic_Random_Access_Memory
[6] Transfert de spin : https://fr.wikipedia.org/wiki/Transfert_de_spin
[7] Resistive RAM : https://fr.wikipedia.org/wiki/Resistive_random-access_memory
[8] 3D XPoint : https://fr.wikipedia.org/wiki/3D_XPoint
[9] « Stockage SSD : Samsung répond à Intel avec sa technologie Z-NAND », https://www.generation-nt.com/samsung-z-nand-intel-3d-xpoint-reponse-riposte-stockage-ssd-actualite-1940822.html
[10] Software transactional memory : https://en.wikipedia.org/wiki/Software_transactional_memory
[11] Pmem.io : http://pmem.io
[12] « Intel Optane and Scylla: Providing the Speed of an In-memory Database with Persistency » : http://www.scylladb.com/2017/09/27/intel-optane-scylla-providing-speed-memory-database-persistency/
[13] SENGUPTA D. et al., « A framework for Emulating Non-Volatile Memory Systems with Different Performance Characteristics », Proceedings of the 6th ACM/SPEC International Conference on Performance Engineering, 2015 : http://dl.acm.org/citation.cfm?id=2695529
[14] CHEN S. et JIN Q., « Persistent B+-Tree in Non-Volatile Main Memory » : http://www.vldb.org/pvldb/vol8/p786-chen.pdf
[15] YU S. et al., « Redesign the Memory Allocator for Non-Volatile Main Memory » : http://dl.acm.org/citation.cfm?id=2997651
[16] CONDIT J. et al., « Better I/O Through Byte-Addressable, Persistent Memory » : ftp://ftp.cs.utexas.edu/pub/dburger/papers/SOSP09.pdf
[17] Persistent Memory File System : https://github.com/linux-pmfs/pmfs
[18] NVM Library : http://pmem.io/nvml/libpmemobj/
[19] MEMARIPOUR A. et al., « Atomic In-Place Updates for Non-volatile Main Memories with Kamino-Tx » : https://www.microsoft.com/en-us/research/wp-content/uploads/2017/01/paper-1.pdf
[20] KOZYRAKIS C., « Hardware Support for Transactional Memory » : http://www.gsd.inesc-id.pt/~mcouceiro/eurotm/htdc2013/kozyrakis.pdf
[21] BAILEY A. et al., « Exploring Storage Class Memory with Key Value Stores » : https://syslab.cs.washington.edu/papers/pcm-inflow13.pdf
[22] Zuo P. et Hua Y., « A Write-friendly Hashing Scheme for Non-Volatile Memory Systems », Proceedings of MSST 2017, 2017 : https://csyhua.github.io/csyhua/hua-MSST2017-NVM.pdf
[23] AMZA C. et al., « TreadMarks : Shared Memory Computing on Networks of Workstations » : http://www.eecg.toronto.edu/~amza/papers/computer96.pdf
[24] Attention aux SSD sans batterie, les caches peuvent être perdus dans le contrôleur.
[25] « Durability for Memory-Optimized Tables » : https://docs.microsoft.com/en-us/sql/relational-databases/in-memory-oltp/durability-for-memory-optimized-tables
[26] « In-Memory OLTP in SQL Server 2016 » : https://www.youtube.com/watch?v=l5l5eophmK4
[27] PARK Y., AHN S. et BAHN H., « Efficient Management of PCM-based swap storage » : https://www.jstage.jst.go.jp/article/elex/12/17/12_12.20150614/_pdf
[28] CHEN S., GIBBONS P. et NATH S., « Rethinking Database Algortihms for Phase Change Memory », CIDR 2011, 2011 : http://cidrdb.org/cidr2011/Papers/CIDR11_Paper3.pdf
[29] SolR : http://lucene.apache.org/solr/
[30] Elastic Search : https://www.elastic.co/fr/
[31] Kafka : https://kafka.apache.org/
[32] Persistent Memory Storage Engine : https://github.com/pmem/pmse
[33] Redis : https://github.com/pmem/redis
[34] NVML C++ Bindings : http://pmem.io/nvml/cpp_obj/master/cpp_html/index.html
[35] Scala : https://nbronson.github.io/scala-stm/
[36] Clojure : https://clojure.org/reference/refs
[37] Persistent Collections for Java : https://github.com/pmem/pcj
[38] HSU T. et al., « Nvthreads: Practical Persistence for Multi-threaded Applications » : https://www.cs.purdue.edu/homes/hsu62/nvthreads-eurosys.pdf
[39] WELC A., HOSKING A. et JAGANNATHAN S., « Transparently Reconciling Transactions with Locking for Java Synchronization » : https://www.cs.purdue.edu/homes/suresh/papers/ecoop06.pdf
[40] BAILEY K. et al., « Operating System Implications of Fast, Cheap, Non-Volatile Memory » : https://www.gribble.org/papers/hotos-OS-NVRAM.pdf
[41] TinyOS : https://fr.wikipedia.org/wiki/TinyOS
[42] WU C. et ZHANG G., « Rethinking Computer Architectures and Software Systems for Change-Phase Memory », 2016 : http://www.cs.newpaltz.edu/~lik/publications/Chengwen-Wu-ACM-JETC-2016.pdf
[43] Hardware Support for NVM programming : http://research.cs.wisc.edu/sonar/tutorial/03-hardware.pdf
[44] Restricted Transactional Memory Overview : https://software.intel.com/en-us/node/524025
[45] Documentation libnvdimm : http://lxr.free-electrons.com/source/Documentation/nvdimm/nvdimm.txt