Page MenuHomePhabricator

fr-tech task: configure ObjectCache::getLocalClusterInstance() to use Memcached
Closed, DeclinedPublic

Description

The new fr-tech APIs being built to support the iOS In-App donations flow outlined here and here requires the AppPaymentSessionStore data to be shared across all payment hosts to work as proposed. Otherwise, we'll run into issues if the first API call originates on a different backend host to the one hit during the second API call. More specifically, the second API call will fail as it won't find the session created during the first API call if it happens on a different backend host.

Currently, traffic received at payments.wikimedia.org is distributed across the four payments-wiki backend host servers and managed via standard load balancing.

As it stands, payments-wiki's general cache store is the ObjectCache::getLocalClusterInstance(), and that's currently configured to use APC as the backend on a per-host basis. To switch to a distributed cache shared across all payment hosts, we need to use Memcached as the backend. The good news is we do have a production Memcached cluster that we discovered buried in our puppet config, so to try this out, we need to update the payments-wiki config to use Memcached as the backend and see how that performs with our existing components using that cache storage, e.g. the IP Velocity filter. If nothing breaks, we should be good!

Event Timeline

We're not gonna need to use Memcached now as we're planning to change the approach and combine the two API calls into a single API call.

Let's discuss this with the iOS team today to bring them up to speed. FYI @Tsevener

We're bringing this one back to life

Cstone subscribed.

This one is back to being declined