From bf1dd791a54458380d186ac811057801d3200505 Mon Sep 17 00:00:00 2001 From: Jon Chambers Date: Thu, 17 Jun 2021 15:21:21 -0400 Subject: [PATCH] Drop caching for pending accounts/devices. --- .../textsecuregcm/WhisperServerService.java | 4 +- .../storage/PendingAccountsManager.java | 60 ++----------------- .../storage/PendingDevicesManager.java | 60 ++----------------- 3 files changed, 10 insertions(+), 114 deletions(-) diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerService.java b/service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerService.java index d81155f0b..5c2e4a8ea 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerService.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerService.java @@ -440,8 +440,8 @@ public class WhisperServerService extends Application getCodeForNumber(String number) { - Optional code = memcacheGet(number); - - if (!code.isPresent()) { - code = pendingAccounts.getCodeForNumber(number); - code.ifPresent(storedVerificationCode -> memcacheSet(number, storedVerificationCode)); - } - - return code; - } - - private void memcacheSet(String number, StoredVerificationCode code) { - try { - final String verificationCodeJson = mapper.writeValueAsString(code); - - cacheCluster.useCluster(connection -> connection.sync().set(CACHE_PREFIX + number, verificationCodeJson)); - } catch (JsonProcessingException e) { - throw new IllegalArgumentException(e); - } - } - - private Optional memcacheGet(String number) { - try { - final String json = cacheCluster.withCluster(connection -> connection.sync().get(CACHE_PREFIX + number)); - - if (json == null) return Optional.empty(); - else return Optional.of(mapper.readValue(json, StoredVerificationCode.class)); - } catch (IOException e) { - logger.warn("Error deserializing value...", e); - return Optional.empty(); - } - } - - private void memcacheDelete(String number) { - cacheCluster.useCluster(connection -> connection.sync().del(CACHE_PREFIX + number)); + return pendingAccounts.getCodeForNumber(number); } } diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/storage/PendingDevicesManager.java b/service/src/main/java/org/whispersystems/textsecuregcm/storage/PendingDevicesManager.java index 9b39d32ee..377f1deeb 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/storage/PendingDevicesManager.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/storage/PendingDevicesManager.java @@ -4,78 +4,26 @@ */ package org.whispersystems.textsecuregcm.storage; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.whispersystems.textsecuregcm.auth.StoredVerificationCode; -import org.whispersystems.textsecuregcm.redis.FaultTolerantRedisCluster; -import org.whispersystems.textsecuregcm.util.SystemMapper; - -import java.io.IOException; import java.util.Optional; +import org.whispersystems.textsecuregcm.auth.StoredVerificationCode; public class PendingDevicesManager { - private final Logger logger = LoggerFactory.getLogger(PendingDevicesManager.class); + private final PendingDevices pendingDevices; - private static final String CACHE_PREFIX = "pending_devices2::"; - - private final PendingDevices pendingDevices; - private final FaultTolerantRedisCluster cacheCluster; - private final ObjectMapper mapper; - - public PendingDevicesManager(PendingDevices pendingDevices, FaultTolerantRedisCluster cacheCluster) { + public PendingDevicesManager(PendingDevices pendingDevices) { this.pendingDevices = pendingDevices; - this.cacheCluster = cacheCluster; - this.mapper = SystemMapper.getMapper(); } public void store(String number, StoredVerificationCode code) { - memcacheSet(number, code); pendingDevices.insert(number, code.getCode(), code.getTimestamp()); } public void remove(String number) { - memcacheDelete(number); pendingDevices.remove(number); } public Optional getCodeForNumber(String number) { - Optional code = memcacheGet(number); - - if (!code.isPresent()) { - code = pendingDevices.getCodeForNumber(number); - code.ifPresent(storedVerificationCode -> memcacheSet(number, storedVerificationCode)); - } - - return code; + return pendingDevices.getCodeForNumber(number); } - - private void memcacheSet(String number, StoredVerificationCode code) { - try { - final String verificationCodeJson = mapper.writeValueAsString(code); - - cacheCluster.useCluster(connection -> connection.sync().set(CACHE_PREFIX + number, verificationCodeJson)); - } catch (JsonProcessingException e) { - throw new IllegalArgumentException(e); - } - } - - private Optional memcacheGet(String number) { - try { - final String json = cacheCluster.withCluster(connection -> connection.sync().get(CACHE_PREFIX + number)); - - if (json == null) return Optional.empty(); - else return Optional.of(mapper.readValue(json, StoredVerificationCode.class)); - } catch (IOException e) { - logger.warn("Could not parse pending device stored verification json"); - return Optional.empty(); - } - } - - private void memcacheDelete(String number) { - cacheCluster.useCluster(connection -> connection.sync().del(CACHE_PREFIX + number)); - } - }