Persistence

What is Persistence?

Persistence in the world of computer software indicates that some data has some longevity - that it persists.

To enable persistence the data must be remembered in some retrievable way. This may range from storing in a named variable to enable persistent access within even a program fragment, to writing the data to non-volatile media such as a hard disk drive.

Conventionally, it is this last category that is meant by persistence.

Is Persistence Important?

Absolutely. Without persistence at various levels computer systems would not make sense or do anything useful.

Persistent Java?

Some people are working on a goal of "Persistent Java" that makes the java virtual machine - JVM - persistent. This is attractive for two reasons, first it allows all the usual programming structures to be used directly knowing that they will persist. A "persistent" JVM would simply be targetted when the environment is "restarted". The second major feature that I have not seen stressed anywhere, is that the full computational state of the application would be retained - even down to animations restarting where they left off.

However, I am not convinced that this kind of persistence is scalable, particularly with regard to locality of reference issues and general scalability to many gigabytes of data.

Java Persistence and Cut The Crap

A java-based persistence mechanism is central to the Cut The Crap Software.

The core package is GPO - Generic Persistent Object - and this provides more than simple persistence, but a powerful generic object model with scalable persistence designed in from the beginning.

Please check out the main website for more information and free downloads.