Commit Graph

158 Commits

Author SHA1 Message Date
Ehren Kret a7968ccc3c Address code review comments 2020-07-14 10:53:48 -05:00
Ehren Kret b7e0e5a356 Create a strategy class to decide which sender id to use
The rules around selecting sender ids can get complicated with some
countries not supporting it and others requiring pre-registration that
may result in having a different sender id for that country than
others. This strategy class handles the logic of dealing with this
expanded configuration and applying the appropriate sender id or none
when it's not appropriate to do so at all.
2020-07-14 10:53:48 -05:00
Brian Acton e3aecb2aa9 apply a 12 hour fudge to daily user counting to account for last seen timestamp fuzzing 2020-07-09 17:43:12 -07:00
Jon Chambers 116ab83b95 Include a PushType header when sending APNs notifications. 2020-07-09 16:12:20 -04:00
Jon Chambers c5d0d4acd0 Revert "Move rate limiter logic to Lua scripts"
This reverts commit b585c6676d.
2020-07-09 12:30:25 -04:00
Jon Chambers 06190286ec Remove temporary circuit breaker suppression. 2020-07-07 16:33:05 -04:00
Jon Chambers 3bca856e87 Remove a pair of spurious SET calls in the rate limiter script. 2020-07-07 16:33:05 -04:00
Jon Chambers b3a778b89a Temporarily catch and log all script execution exceptions to avoid opening the breaker. 2020-07-07 15:17:25 -04:00
Jon Chambers dcb11f7606 Log errors from experiments. 2020-07-07 15:17:25 -04:00
Jon Chambers 933ce42d5a Test rate limiters against a real cluster. 2020-07-07 15:17:25 -04:00
Ehren Kret 6c1ba957bd Ensure the default alphaId configuration is an empty list rather than null 2020-07-07 10:17:40 -05:00
Ehren Kret e021286eee Add configuration by country for sending from alpha IDs 2020-07-07 10:17:40 -05:00
Ehren Kret 0ee7a66033
Keep trying ports until you get one lower than 55535 (#83)
* Keep trying ports until you get one lower than 55535

* Rename method and change to do...while

* Limit attempts to 11,000 to find an open redis cluster port
2020-07-07 10:12:31 -05:00
Jon Chambers 42c797ee97 Set the default log level for tests to WARN. 2020-07-07 11:05:39 -04:00
Jon Chambers b585c6676d
Move rate limiter logic to Lua scripts 2020-07-06 10:10:13 -04:00
Jon Chambers f5ddb0f1f8 Test ClusterLuaScript against a real Redis cluster. 2020-07-02 18:58:30 -04:00
Jon Chambers ef97f9e738 Revert "Temporarily suspend execution of the "unlock" script."
This reverts commit 6aecd8d44a.
2020-07-02 18:58:30 -04:00
Jon Chambers 26a03b55de Un-reinvent the clustered script execution wheel. 2020-07-02 18:58:30 -04:00
Jon Chambers b93a16abae Honor the step size set in the micrometer config. 2020-07-02 11:40:41 -04:00
Jon Chambers ff2783d434 Fixed a goof where we were mirroring a write to the wrong key in the new cache cluster. 2020-07-02 11:40:27 -04:00
Ehren Kret 25a5a8db68
Set avatar to null on Account when request is false (#78) 2020-06-29 15:53:31 -05:00
Jon Chambers a68d91b54c Resolve some test flakiness by adding a deterministic "wait" mechanism. (SERVER-86) 2020-06-29 12:24:25 -04:00
Jon Chambers 88ec3a5751 Add a counter for dead letter events. 2020-06-26 09:00:11 -04:00
Jon Chambers 734dc2e37a Don't block the Redis instance when clearing the cache. 2020-06-19 10:52:18 -04:00
Jon Chambers 6aecd8d44a Temporarily suspend execution of the "unlock" script. 2020-06-17 22:27:02 -04:00
Jon Chambers bbf5e1fa78 Use the UA string from websocket upgrade requests if available. 2020-06-17 15:40:18 -04:00
Jon Chambers 7454e55693 Write synchronously to the cache cluster. 2020-06-17 15:38:56 -04:00
Jon Chambers c745fe7778 Fix a poorly-mirrored cache delete operation. 2020-06-17 15:35:46 -04:00
Jon Chambers 6adcebb247 Return to just using counters instead of timers for measuring experiment outcomes. 2020-06-17 15:34:02 -04:00
Jon Chambers 38f9b8f3dd Make write operations in `AccountDatabaseCrawlerCache` synchronous. 2020-06-17 10:05:43 -04:00
Jon Chambers 7faf143a97 Subdivide the account database crawler cache experiment and add logging to track down lingering disagreements. 2020-06-17 09:23:40 -04:00
Jon Chambers 17cfd4924c Fixed a poorly-mirrored write operation to the new cluster. 2020-06-16 16:46:41 -04:00
Jon Chambers a0bebca1e6 Extend Experiment to report more detail when results don't match. 2020-06-16 16:46:41 -04:00
Jon Chambers 75cbfa2898 Mirror unlock-via-script calls to the cache cluster. 2020-06-16 16:46:41 -04:00
Jon Chambers 58a8ed1588 Add a cluster-friendly version of LuaScript. 2020-06-16 16:46:41 -04:00
Jon Chambers e032f8df59 Add a command for clearing the cache cluster. 2020-06-16 16:46:41 -04:00
Jon Chambers b16e37d80a Record a histogram of incoming message list sizes. 2020-06-12 14:43:50 -04:00
Jon Chambers c17cc07b73 Instrument BlockingThreadPoolExecutor. 2020-06-12 14:43:50 -04:00
Jon Chambers 6f767a72a7 Add a timer for the private sendMessage method. 2020-06-12 14:43:50 -04:00
Jon Chambers 11196436e9 Time rate limiter validation calls. 2020-06-12 14:43:50 -04:00
Jon Chambers 9afc433db4 Record exceptions associated with server responses. 2020-06-11 22:08:07 -04:00
Jon Chambers f701e3d834 Record distributions of timer values; stop recording error causes. 2020-06-11 11:50:36 -04:00
Jon Chambers 4c623ca3c5 Compare Redis reads using Lettuce's synchronous path. 2020-06-11 11:50:36 -04:00
Jon Chambers 0671f05c05 Introduce experiment comparison methods for suppliers. 2020-06-11 11:50:36 -04:00
Jon Chambers 0713da7393 Record experiment results with a timer instead of a counter. 2020-06-11 11:50:36 -04:00
Jon Chambers 05955d0483 Check for null header values before trying to iterate through them. 2020-06-09 15:45:32 -04:00
Jon Chambers 28c765bd9a Add an in-app-context test for websocket metrics. 2020-06-09 15:45:32 -04:00
Ehren Kret 8287317be7 Add account device ID to the prekey rate limiter
This limits prekey fetching per device on an account instead of on an
account level.
2020-06-09 10:20:10 -07:00
Jon Chambers ec858b2d4c
Set a timeout for Redis cluster operations and shut down the cluster as part of service shutdown 2020-06-07 18:27:57 -04:00
Jon Chambers 47ece983d2 Added a Redis cluster health check. 2020-06-07 18:27:11 -04:00