The Akamai module for Drupal 8 stores the Purge status in a key_value pair. On a busy site with many content updates, this can create performance problems as keeping track of a large amount of data in a single table row is poor design.
An example of how this key_value can grow to the point where it's not-performant, this is the size of this table relative to other tables on the same site.
+-----------------------------------------+-------------+
| name | Size in MiB |
+-----------------------------------------+-------------+
| akamai.purge_status | 10.04 |
| media.field_storage_definitions | 0.04 |
| node.field_storage_definitions | 0.04 |
| paragraph.field_storage_definitions | 0.03 |
This drupal.org issue describes an alternate design https://www.drupal.org/project/akamai/issues/3001392
We recommend:
-
Disable the Akamai module.
Use the Purge and Acquia Purge module. With those you have Cache tag based content purging enabled on your CMS. These work well with Content Delivery Networks like Akamai - Set the Edge Cache TTL (Time To Live) low – 1 minute - 5 minutes depending on your application requirements.
- Browser Cache TTL – 1 minute, or the same value as Edge Cache TTL
Occasionally, an application may require a shorter Edge Cache TTL lifetime. If you reduce the amount of your Edge Cache TTL, be sure to change the Browser Cache TTL to the same value.
When configured properly, the Acquia Purge module will cause content updates to purge selected portions of Varnish cache. The next time Acquia Cloud Edge CDN requests the asset from Varnish, it will receive the newly-updated content.
If you need to have the Akamai module installed, then from from the purge settings, /admin/config/akamai/config set the Purge Status expiry to 0