This commit is contained in:
Correl Roush 2022-06-20 14:41:31 -04:00
parent d13b06a454
commit 3b2f25715a
5 changed files with 146 additions and 4 deletions

View file

@ -1,6 +1,138 @@
:PROPERTIES:
:ID: ee5b8d5f-e3d4-45c2-9ce6-bcd8c7a63376
:ROAM_REFS: https://jira.aweber.io/browse/AWEB-378
:END:
#+title: Retire Redcache
#+title: Retire RedCache
https://jira.aweber.io/browse/AWEB-378
The goal of this initiative is to identify uses of the shared RedCache servers
and eliminate them. If a key/value store is required, use a sidecar redis or
memcached instance as appropriate.
Any keys that will require cross-team coordination to remove should be
documented in the [[https://confluence.aweber.io/display/AWD/RedCache+Inventory][RedCache Inventory]] page in Confluence.
* Usage in the [[id:57ee2f00-9bcd-4e0f-8a77-ae1f2d4cda89][Control Panel]]
** Cake Cache
The default Cake framework cache engine for the application is [[https://gitlab.aweber.io/CP/applications/sites/-/blob/master/aweber_app/config/core.php#L236-243][configured to use
RedCache]].
** Mapping
The [[https://gitlab.aweber.io/CP/applications/sites/-/blob/master/components/mapping.php][Mapping component]] caches mapping lookups.
** Avro Schemas
The [[https://gitlab.aweber.io/CP/applications/sites/-/blob/master/components/avro.php][Avro component]] caches schema documents.
** Private Labeling
A [[https://gitlab.aweber.io/CP/applications/sites/-/blob/master/php5-vendors/vendors/purge_pl_memcache.php][script to purge the private label cache]] exists, though it does not appear to
be used.
#+begin_notes
Private labeling is no longer used in the CP.
#+end_notes
** Click Tracking
The [[https://gitlab.aweber.io/CP/applications/sites/-/blob/master/php5-vendors/vendors/click_tracker.php][Click tracking component]] caches tracking url lookups in AppDB.
** Throttling
The [[https://gitlab.aweber.io/CP/applications/sites/-/blob/master/php5-vendors/vendors/throttler.php][Throttler component]] uses cache keys with a TTL to rate-limit various actions
in the CP including logins. An older [[https://gitlab.aweber.io/CP/applications/sites/-/blob/master/components/throttle.php][Throttle component]] also exists with
references to redcache, but appears unused.
** Verify-Optin Processing
The [[https://gitlab.aweber.io/CP/applications/sites/-/blob/master/php5-vendors/vendors/vo_processor.php][VO Processor component]] uses the =aweber_app_db_down= cache key to determine
whether the control panel is under scheduled maintenance.
This component also resides separately in the [[https://gitlab.aweber.io/CP/applications/verify-optin/-/blob/master/verify-optin/include/vo_processor.php][Verify-Optin]] project, doing the
same thing, and should be removed from the sites repository.
** Unsubscribe / Manage Subscriptions
The [[https://gitlab.aweber.io/CP/applications/sites/-/blob/master/aweber_app/webroot/z/r/index.htm][Manage Subscriptions page]] uses the =aweber_app_db_down= cache key to
determine whether the control panel is under scheduled maintenance.
This component also resides separately in the [[https://gitlab.aweber.io/CP/applications/unsubscribe][Unsubscribe]] project, doing the
same thing, and should be removed from the sites repository.
** Refer a Friend
The [[https://gitlab.aweber.io/CP/applications/sites/-/blob/master/components/refer_a_friend.php][Refer a Friend component]] uses the =refer_a_friend:access_token= key to store
and verify an access token.
** Showcased Applications
The [[https://gitlab.aweber.io/CP/applications/sites/-/blob/master/models/application.php][Application model]] caches the number of customers using each application from
queries to AppDB for six hours.
** Web Form Templates
The [[https://gitlab.aweber.io/CP/applications/sites/-/blob/master/models/web_form_template_category.php][Web Form Template Category model]] caches the top ten web form template
families using the =template_directory_web_form_popular= key.
** Active Lists
The [[https://gitlab.aweber.io/CP/applications/sites/-/blob/master/models/auto_responder.php][Auto Responder model]] caches the active lists for an account using the key
format =aweber_app_lists_{$a_id}_{$aServId}=, where =$a_id= is the integer
account ID and =$aServId= is an integer list ID or =false=.
** List Twitter Account
The [[https://gitlab.aweber.io/CP/applications/sites/-/blob/master/models/vendor_account_list.php][Vendor Account List model]] clears the twitter account on a list using the key
format =orm.list.by_id.$listId.twitter_account=. It is unclear what sets that
key.
** One-Click Unsubscribe
The [[https://gitlab.aweber.io/CP/applications/sites/-/blob/master/aweber_app/webroot/z/r/one_click_remove.php][One-click remove handler]] uses the =aweber_app_db_down= cache key to
determine whether the control panel is under scheduled maintenance.
** Web Form Chicklet Images
The [[https://gitlab.aweber.io/CP/applications/sites/-/blob/master/aweber_app/webroot/form/ci/index.php][Web form chicklet image handler]] caches image data stored in AppDB using the
key format =aweber_app_chicklet_$id= where =$id= is the integer ID of the
chicklet image.
** Template Gallery
The [[https://gitlab.aweber.io/CP/applications/sites/-/blob/master/aweber_app/views/helpers/template_gallery.php][Template Gallery view helper]] caches email templates from the [[http://template-directory.service.production.consul][Template
Directory Service]] using the =template_directory_{$type}_family_data= key format,
where =$type= is =web_form= or =block=.
** Blocked Orders
The [[https://gitlab.aweber.io/CP/applications/sites/-/blob/master/aweber_app/controllers/order_controller.php][Order controller]] checks and stores IP addresses for blocking orders with the
key pattern =orders_blocked_for_{$_SERVER['REMOTE_ADDR']}=
** Flagged Credit Card Numbers
The [[https://gitlab.aweber.io/CP/applications/sites/-/blob/master/aweber_app/controllers/order_controller.php][Order controller]] retrieves flagged credit card numbers using the key
=aweber_app_flagged_cc_bins=. Used to check the first six digits of a card for
flagging.
** Message Templates
The [[https://gitlab.aweber.io/CP/applications/sites/-/blob/master/aweber_app/controllers/message_templates_controller.php][Message Templates controller]] clears the key
=template_directory_block_family_data= when a message template is saved.
** Feed Broadcasts
The [[https://gitlab.aweber.io/CP/applications/sites/-/blob/master/aweber_app/controllers/feedbroadcaster_controller.php][Feed Broadcasts controller]] tracks feed gearman job status by setting and
retrieving the redis key patterns =aweber_app_process_feed_{$sid}_complete= and
=aweber_app_process_feed_{$sid}_status=, where =$sid= is the current session ID.
** Preferences
The [[https://gitlab.aweber.io/CP/applications/sites/-/blob/master/aweber_app/controllers/components/preferences.php][Preferences controller component]] stores and retrieves account-level
preferences using the key pattern
=aweber_app_{$namespace}_cp_preference_{$aId}=.
** Subscriber Search Locking
The [[https://gitlab.aweber.io/CP/applications/sites/-/blob/master/aweber_app/controllers/components/search_mutex.php][Search Mutex controller component]] sets and clears a lock preventing
concurrent searches within an account using the key pattern
=subscriber_search_lock_{$accountId}=.
** Lead Editing
The [[https://gitlab.aweber.io/CP/applications/sites/-/blob/master/aweber_app/controllers/leads_controller.php][Leads controller]] checks for blocked emails and email domains using the key
patterns =0-$email= and =0-$domain=.
** List Settings
The [[https://gitlab.aweber.io/CP/applications/sites/-/blob/master/aweber_app/controllers/settings_controller.php][Settings controller]] clears cached list settings using the key pattern
=aweber_app_{$namespace}_remove_options_{$list_id}=, where =$namespace= is the
value retrieved from the key =aweber_app_remove_options_namespace=.
** Login Email Verification
The [[https://gitlab.aweber.io/CP/applications/sites/-/blob/master/aweber_app/controllers/account_controller.php][Account controller]] stores an email verification token using the key pattern
=login_email:verification_token:{$user['id']}=
** Sift Login Verification
The [[https://gitlab.aweber.io/CP/applications/sites/-/blob/master/aweber_app/controllers/account_controller.php][Account controller]] stores a flag allowing previously verified logins to
bypass the Sift score check using the key pattern
=login_verification:verified_bypass:{$login}:{$ipAddress}=.
** Application maintenance
The [[https://gitlab.aweber.io/CP/applications/sites/-/blob/master/aweber_app/app_controller.php][App controller]] uses the =aweber_app_db_down= cache key to determine whether
the control panel is under scheduled maintenance.
** Web Form Generation
The [[https://gitlab.aweber.io/CP/applications/sites/-/blob/master/aweber_app/vendors/web_form_generator.php][Web Form Generator component]] stores and retrieves web form settings using the key pattern ={$namespace}_web_form_{$webFormId}{$type}= where =$namespace= is the value retrieved from the key =aweber_app_web_form_namespace=, and type is one of the following:
- =_js= (JavaScript)
- =s_js= (split JavaScript)
- =_htm=
- =_html=
** Web Form Serving
The [[https://gitlab.aweber.io/CP/applications/sites/-/blob/master/aweber_app/vendors/web_form_server.php][Web Form Server component]] caches web form split tests loaded from AppDB
using the key format =aweber_app_{$namespace}_web-form_split_{$split_id}= where
=$namespace= is the value retrieved from the key
=aweber_app_web_form_namespace=.
* Usage in Verify-Optin
** Control Panel Maintenance
The [[https://gitlab.aweber.io/CP/applications/verify-optin/-/blob/master/verify-optin/include/vo_processor.php][VO Processor component]] uses the =aweber_app_db_down= cache key to determine
whether the control panel is under scheduled maintenance.
* Usage in Unsubscribe
** Control Panel Maintenance
The [[https://gitlab.aweber.io/CP/applications/unsubscribe/-/blob/master/unsubscribe/webroot/z/r/index.php][Manage Subscriptions page]] uses the =aweber_app_db_down= cache key to
determine whether the control panel is under scheduled maintenance.
* Usage in [[id:03e00c18-99c0-477c-b7fb-95ddc538755e][Addlead]]
** Control Panel Maintenance
Uses the =aweber_app_db_down= cache key to determine whether the control panel
is under scheduled maintenance.

View file

@ -25,8 +25,7 @@ The current DynamoDB behavior will be kept intact so that the [[id:b285adee-2dab
Consumer]] can continue to keep the data stored in DynamoDB up to date.
** DONE Add support for reading subscriber data from AppDB to Recipient
** DONE Update subscriber-sync to use flag to read from DynamoDB
** TODO Switch recipient to read subscriber data from AppDB by default
** DONE Switch recipient to read subscriber data from AppDB by default
* Write subscriber data to AppDB

11
daily/2022-06-17.org Normal file
View file

@ -0,0 +1,11 @@
:PROPERTIES:
:ID: 48342489-c4e6-4c49-a7c5-dc9a1274c4fc
:END:
#+title: 2022-06-17
* Queue Alerts :ATTACH:
#+attr_org: :width 1000
[[attachment:_20220617_100534Screen Shot 2022-06-17 at 10.05.31 AM.png]]
#+attr_org: :width 1000
[[attachment:_20220617_100955Screen Shot 2022-06-17 at 10.09.53 AM.png]]

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 292 KiB