Data cache overview

This page provides an overview of data cache, our recommendations on choosing workloads on which to enable data cache, and the limitations of using a data cache.

Data cache is an optional feature that stores data pages on high-speed local solid state drives (SSD) to accelerate query processing. Data cache extends the OS page cache to use both the memory and the local SSD.

You can enable data cache when you create an instance. You can also enable or disable data cache on an existing instance with near-zero downtime. To change the data cache setting on your instance, see edit an instance and

When you enable data cache on your instance, this is how Cloud SQL processes read and write requests:

  • Read request: Cloud SQL prioritizes reading data from the main memory, followed by the data cache, and then the instance's storage. This allows for the read operations to be processed with the lowest possible latency.

  • Write request: Cloud SQL commits the data to the instance's storage and simultaneously writes it to the data cache.

Recommendations

Data cache provides performance benefits for certain workload types. We recommend that you enable data cache for the following workload types:

  • Workloads where the working dataset doesn't fit in the main memory.

    Using a data cache delivers maximum performance benefits when the entire working dataset can't fit in the instance's main memory. In this scenario, Cloud SQL stores the working dataset in the main memory and the data cache. The working dataset is generally smaller than the full dataset.

  • Workloads with more read operations than write operations.

    Use a data cache for workloads that are predominantly made up of read operations.

Limitations

  • When a data cache becomes full, it removes the stored data based on the least recently used analysis to accommodate subsequent updates to the data cache.
  • The following operations on the instance erase the contents of the data cache and can lead to a drop in performance while the data cache is repopulated:
    • Planned maintenance
    • An unexpected shutdown (stopping the instance)
    • A major version upgrade
    • The instance switching from zonal to regional or from regional to zonal
    • A change to the machine type for the instance
  • The number of CPU cores determines the size of the SSD. You can't resize the SSD independently.
  • Fine-grained caching (for example, table-level caching or query-level caching) isn't supported.
  • If an instance is stopped, then the contents of the data cache are lost. This can lead to reduced performance while the data cache gets repopulated as the instance is restarted.