I have a Drupal site with a provider that operates off one of two servers (with balancers in front of that). Each server has an allocation of memory that is assigned to memcached, and the Drupal site utilises memcached.
To solve an issue where stale content is presented after very large content deployments in Drupal I need to flush memcached (note: the content that is subsequently updated in Drupal does not update until memcached is flushed after the deployment, but the Drupal cache tag invalidation did run correctly). The flush_all command can be called from the SSH command line on the server and content then updates for users. Alternatively, the method can be called at the end of the content deployment and this works too. However, the service provider has advised (on many many occasions) we must call the flush_all command on each separate server—so the memcached data in memory on each server can be marked expired.
This seems fundamentally against the distributed memory model of memcached, and is there any reason (or even way) a flush_all memcached command called on one server would only operate on that server’s memcached memory and not the entire, multi-server, pool of distributed memory?
Thanks