---
title:  General Region Data Management
---

<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements.  See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License.  You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->

For all regions, you have options to control memory use, back up your data to disk, and discard stale data from your cache.

-   **[Persistence and Overflow](../developing/storing_data_on_disk/chapter_overview.html)**

    You can persist data on disk for backup purposes and overflow it to disk to free up memory without completely removing the data from your cache.

-   **[Eviction](../developing/eviction/chapter_overview.html)**

    Use eviction to control data region size. Eviction actions are triggered by space-based thresholds.

-   **[Expiration](../developing/expiration/chapter_overview.html)**

    Use expiration to keep data current and to reduce region size by removing stale entries. Expiration actions are triggered by time-based thresholds.

-   **[Keeping the Cache in Sync with Outside Data Sources](../developing/outside_data_sources/sync_outside_data.html)**

    Keep your distributed cache in sync with an outside data source by programming and installing application plug-ins for your region.


