A persistent, caching Java Map for extremely large maps