Freeze is a collection of services that simplify the use of persistence in Ice applications, as shown below:
Layer diagram for Freeze persistence services.
The Freeze map is an associative container mapping any Slice key and value types, providing a convenient and familiar interface to a persistent map. Freeze evictors are an especially powerful facility for supporting persistent Ice objects in a highly-scalable implementation.
The Freeze persistence services comprise:
- Freeze evictor
A highly-scalable implementation of an Ice servant locator that provides automatic persistence and eviction of servants with only minimal application code.
- Freeze map
A generic associative container. Code generators are provided that produce type-specific maps for Slice key and value types. Applications interact with a Freeze map just like any other associative container, except the keys and values of a Freeze map are persistent.
As you will see from the examples in this discussion, integrating a Freeze map or evictor into your Ice application is quite straightforward: once you define your persistent data in Slice, Freeze manages the mundane details of persistence.
Freeze is implemented using Berkeley DB, a compact and high-performance embedded database. The Freeze map and evictor APIs insulate applications from the Berkeley DB API, but do not prevent applications from interacting directly with Berkeley DB if necessary.