To satisfy the [Protocells exit criteria](https://gitlab.com/groups/gitlab-com/gl-infra/-/epics/1616),
it is expected that we will need to migrate a substantial portion of the top 1,000 active namespaces,
which consumes about [67% of database time](https://gitlab.com/groups/gitlab-com/gl-infra/-/work_items/1616#note_2990334245).
A cohort is a set of GitLab root namespaces and their data,
selected as a single collection to incrementally transfer/migrate to other cells.
Cohort Naming Convention: We use 0 for the test cohort because it must complete successfully before we proceed to production cohorts. Subsequent cohorts (A, B, C, etc.) use letters to indicate they can be executed in parallel without sequential dependencies.
| Cohort ID | Cohort Name | Cohort size indication | Purpose | Simplified eligibility criteria | Impact on Exit criteria |
| Cohort 0 | Test cohort | Up to 100 orgs | Use test namespaces to test the transfer & migration process from end-to-end | | None |
| Cohort A | Subset of Inactive Free users | Up to 5,000 orgs | To establish Protocells as part of real, production use, and refine the migration process. | - Inactive root namespaces<br/><br/>- Free plan<br/><br/>- Private only | Tiny impact on database size |
| Cohort B | Active opt-in Beta | Up to 1000 orgs | Gain experience with real daily active users. | - Opt-in / guided<br/><br/>- Active root namespaces<br/><br/>- Free, or paid<br/><br/>- Private only | Tiny impact on WAL, LWLocks and database size |
| Cohort C | Top 1000 opt-in | Up to 300 orgs | Relieve the legacy cell | - Opt-in / guided<br/><br/>- Top 1000 root namespaces by database time<br/><br/>- Private only<br/><br/>- Prerequisite: Feature parity | At least 20% `[1]` decrease in WAL saturation, and Database size |
| Cohort D | Active long tail opt-in | Approximately 10,000 orgs | Relieve the legacy cell | - Opt-in / self-service<br/><br/>- Active root namespaces<br/><br/>- Private only<br/><br/>- Prerequisite: Feature parity<br/><br/>- Free, or paid | At least 10% `[2]` decrease in WAL saturation, and Database size |
-`[1]`: The 20% target is derived from 1/3 × 67% [database time](https://gitlab.com/groups/gitlab-com/gl-infra/-/work_items/1616#note_2990334245) consumed by the top 1000 namespaces.
-`[2]`: The 10% target comes from potentially moving 1/3 of 33% of long tail database time.