Improve local fanout send performance.

This commit is contained in:
Cody Henthorne
2024-03-05 09:30:48 -05:00
committed by Alex Hart
parent 9f197b12ed
commit 619038f27d
4 changed files with 332 additions and 5 deletions

View File

@@ -136,7 +136,8 @@ public class ApplicationDependencyProvider implements ApplicationDependencies.Pr
provideGroupsV2Operations(signalServiceConfiguration).getProfileOperations(),
SignalExecutors.newCachedBoundedExecutor("signal-messages", ThreadUtil.PRIORITY_IMPORTANT_BACKGROUND_THREAD, 1, 16, 30),
ByteUnit.KILOBYTES.toBytes(256),
FeatureFlags.okHttpAutomaticRetry());
FeatureFlags.okHttpAutomaticRetry(),
FeatureFlags.useRxMessageSending());
}
@Override

View File

@@ -124,6 +124,7 @@ public final class FeatureFlags {
private static final String RETRY_RECEIPT_MAX_COUNT_RESET_AGE = "android.retryReceipt.maxCountResetAge";
private static final String PREKEY_FORCE_REFRESH_INTERVAL = "android.prekeyForceRefreshInterval";
private static final String CDSI_LIBSIGNAL_NET = "android.cds.libsignal";
private static final String RX_MESSAGE_SEND = "android.rxMessageSend";
/**
* We will only store remote values for flags in this set. If you want a flag to be controllable
@@ -200,7 +201,8 @@ public final class FeatureFlags {
RETRY_RECEIPT_MAX_COUNT,
RETRY_RECEIPT_MAX_COUNT_RESET_AGE,
PREKEY_FORCE_REFRESH_INTERVAL,
CDSI_LIBSIGNAL_NET
CDSI_LIBSIGNAL_NET,
RX_MESSAGE_SEND
);
@VisibleForTesting
@@ -274,7 +276,8 @@ public final class FeatureFlags {
RETRY_RECEIPT_MAX_COUNT,
RETRY_RECEIPT_MAX_COUNT_RESET_AGE,
PREKEY_FORCE_REFRESH_INTERVAL,
CDSI_LIBSIGNAL_NET
CDSI_LIBSIGNAL_NET,
RX_MESSAGE_SEND
);
/**
@@ -714,6 +717,11 @@ public final class FeatureFlags {
return getBoolean(CDSI_LIBSIGNAL_NET, false);
}
/** Use Rx threading model to do sends. */
public static boolean useRxMessageSending() {
return getBoolean(RX_MESSAGE_SEND, false);
}
/** Only for rendering debug info. */
public static synchronized @NonNull Map<String, Object> getMemoryValues() {
return new TreeMap<>(REMOTE_VALUES);