Skip to content

Acceptance Testing BlobService::GetNewLFSPointers

~Conversation: #935 (closed)

See the Migration Process documentation for more information on the Acceptance Testing stage of the process.

Details

  • Feature Toggle Name: gitaly_blob_get_new_lfs_pointers
  • GRPC Service: BlobService::GetNewLFSPointers
  • Required Gitaly Version: v0.87.0
  • Required GitLab Version: v10.6

1. Preparation

  • Routes: what routes use this migration?
    1. git push

2. Development Trial

Check Dev Server Versions

Enable on dev.gitlab.org:

  • !feature-set gitaly_blob_get_new_lfs_pointers true in #dev-gitlab

Then leave running while monitoring and performing some testing through web, api or SSH.

Monitor (initially )

Continue?

  • On unexpectedly high calls rates, error rates, CPU activity, etc, disable trial immediately with !feature-set gitaly_blob_get_new_lfs_pointers false in #dev-gitlab otherwise leave running and proceed proceed to next stage.

3. Staging Trial

Check Staging Server Versions

Enable on staging.gitlab.com

  • !feature-set gitaly_blob_get_new_lfs_pointers true in #development

Then leave running while monitoring for at least 15 minutes while performing some testing through web, api or SSH.

Monitor (at least every 5 minutes, preferably real-time)

Continue?

  • On unexpectedly high calls rates, error rates, CPU activity, etc, disable trial immediately using !feature-set gitaly_blob_get_new_lfs_pointers false in #development otherwise leave running and proceed to next stage.

4. Production Server Version Check

5. Initial Impact Check

  • Create an issue in the infrastructure tracker: Create issue now
  • Set Gitaly to 1% using the command !feature-set gitaly_blob_get_new_lfs_pointers 1 in #production

Then leave running while monitoring for at least 15 minutes while performing some testing through web, api or SSH.

Monitor (at least every 5 minutes, preferably real-time)

Continue?

  • On unexpectedly high calls rates, error rates, CPU activity, etc, disable trial immediately with !feature-set gitaly_blob_get_new_lfs_pointers false in #production otherwise leave running and proceed to next stage.

6. Low Impact Trial

  • Set Gitaly to 5% using the command !feature-set gitaly_blob_get_new_lfs_pointers 5 in #production

Then leave running while monitoring for at least 2 hours.

Monitor (at least every 20 minutes)

Continue?

  • On unexpectedly high calls rates, error rates, CPU activity, etc, disable trial immediately with !feature-set gitaly_blob_get_new_lfs_pointers false in #production otherwise leave running and proceed to next stage.

7. Mid Impact Trial

  • Set Gitaly to 50% using the command !feature-set gitaly_blob_get_new_lfs_pointers 50 in #production

Then leave running while monitoring for at least 24 hours.

Monitor (at least every few hours)

Continue?

  • On unexpectedly high calls rates, error rates, CPU activity, etc, disable trial immediately with !feature-set gitaly_blob_get_new_lfs_pointers false in #production otherwise leave running and proceed to next stage.

8. Full Impact Trial

  • Set Gitaly to 100% using the command !feature-set gitaly_blob_get_new_lfs_pointers 100 in #production

Then leave running while monitoring for at least 1 week.

Monitor (at least every day)

Success?

  • Close this issue and mark the ~Conversation as ~"Migration:Opt-In"
Edited by Zeger-Jan van de Weg
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information