Published November 10, 2016 | Version https://github.com/pmem/pcj
Software Open

Persistent Collections for Java (PCJ)

Description

Persistent Collections for Java (https://github.com/pmem/pcj)

OVERVIEW

This is a "pilot" project to develop a library for Java objects stored in persistent memory. Persistent collections are being emphasized because many applications for persistent memory seem to map well to the use of collections. One of this project's goals is to make programming with persistent objects feel natural to a Java developer, for example, by using familiar Java constructs when incorporating persistence elements such as data consistency and object lifetime.

The breadth of persistent types is currently limited and the code is not performance-optimized. We are making the code available because we believe it can be useful in experiments to retrofit existing Java code to use persistent memory and to explore persistent Java programming in general.

This library provides Java classes whose instances can persist (i.e. remain reachable) beyond the life of a Java VM instance. Persistent classes include:

  1. Primitive arrays
  2. Generic arrays
  3. Tuples
  4. ArrayList
  5. HashMap
  6. LinkedList
  7. LinkedQueue
  8. SkipListMap
  9. FPTree
  10. SIHashMap
  11. ObjectDirectory
  12. Boxed primitives
  13. String
  14. AtomicReference
  15. ByteBuffer

This Java library uses the libpmemobj library from the Persistent Memory Development Kit (PMDK). For more information on PMDK, please visit http://pmem.io and https://github.com/pmem/pmdk.

For a brief introduction on use of the library, please see Introduction.txt.

Files

pcj-master.zip

Files (442.9 kB)

Name Size Download all
md5:1776b469e6b8dc9b392a55055d0f265b
442.9 kB Preview Download

Additional details

Software

Repository URL
https://github.com/pmem/pcj
Programming language
Java , C++
Development Status
Inactive