private void cache(final long chunk, final Region region) {
        final long existing = this.references.put(region, this.references.get(region) + 1);
        if (existing == 0) this.catalog.registerOptions(region);

        Set<Region> loaded = this.cache.get(chunk);
        if (loaded == null) loaded = new HashSet<Region>();
        if (!loaded.add(region)) return;

        if (loaded.size() == 1) this.cache.put(chunk, loaded);
    }