Add pipl_users table and switch traffic to it.
What does this MR do and why?
As part of the PIPL compliance enforcement, we need to store the PIPL compliant users on a dedicated table. This is needed in order for us to maintain high performance on the queries and provide a scalable and maintainable solution.
There was a discussion over the technical approach and the query volume here and we ended up deciding on the final approach here
Issue: https://gitlab.com/gitlab-org/gitlab/-/issues/499260.
What this MR does:
- Create a new table called PIPL Users
- Flag the
last_access_from_pipl_country
column for removal from theusers
table as it will be moved to thepipl_users
table - Modify the application code to use the new column from the
pipl_users
table - When the user was marked as PIPL compliant but logs in from a non-PIPL country, destroy the record to keep the table small
What about the data on the existing column?
While we store the data, no action is taken based on them right now, so we can ignore them as the database is updated daily.
MR acceptance checklist
Please evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.