Improving Bitbucket Push Performance

Avo Assure Client introduces an enhanced Bitbucket push mechanism that uses parallel processing to handle large volumes of test artifacts efficiently. It splits Test cases across multiple threads instead of processing them one by one.

This improvement significantly speeds up the push operation and reduces execution time from several minutes to a few seconds. It improves overall performance, minimizes waiting time, and provides a smoother experience when working with large projects in Avo Assure.

About the Source Control Management Parameters

The Source Control Management (SCM) configuration parameters can be increased or decreased based on project requirements and system capability. The optimal values depend on your local systems processor speed, available RAM, and network stability. Adjust these parameters as per requirement to balance performance, reliability, and resource usage.

Note:

  • Source Control Management (SCM) parameter values are set by default based on your systems performance capacity, available RAM, and network stability.

  • Configure these Source Control Management (SCM) parameters based on your systems performance capacity and the size of your project.

Below are the Source Control Management (SCM) configuration parameters you can edit to improve the push method:

  1. scm_export_worker_count

    • The scm_export_worker_count parameter defines how many parallel threads Avo Assure Client uses to push test artifacts to the Bitbucket repository. Each thread processes a portion of the Test cases at the same time, instead of running them one after another. When you increase or decrease the worker count, Avo Assure Client distributes the workload accordingly to improve the processing speed and reduces the overall push time. The system sets the scm_export_worker_count value to 20.

    • Example:

      • Suppose you need to push 1000 Test cases to the Bitbucket Repository.

        • You set the scm_export_worker_count to 10.

          • Avo Assure Client creates 10 parallel threads.

          • Each thread processes 25 Test cases at a time.

          • All 10 threads run together and push 250 Test cases per cycle.

          • As the cycles repeat, Avo Assure Client pushes all 1,000 Test cases much faster than a single thread process.

          • This parallel approach reduces the push time and makes the process faster than using a single thread

  2. scm_export_max_retries

    • The scm_export_max_retries parameter defines how many times Avo Assure Client retries an SCM API call when the call fails due to temporary issues such as server load or network instability. The system sets the scm_export_max_retries value to 5.

    • Example:

      • Suppose scm_export_max_retries is set to 5.

        • Avo Assure Client sends an SCM API request.

        • The API call fails due to a temporary server delay.

        • Avo Assure Client retries the same API call up to 5 times.

      • If the API call succeeds within these attempts, the push process continues.

      • If all retry attempts fail, Avo Assure Client stops the operation and reports the failure.

  3. scm_export_backoff_base

    • The scm_export_backoff_base parameter defines how long Avo Assure Client waits before retrying an API call after a failure. This waiting time increases gradually with each retry. This increasing delay is called exponential backoff, and it prevents the server from being overloaded with repeated requests. You set this value based on network stability and the server’s response capacity. The system sets the scm_export_backoff_base value to 0.5.

    • Example:

      • Suppose the scm_export_backoff_base value is 0.5 seconds.

        • Avo Assure Client waits 0.5s, then 1s, then 2s, 4s, and 8s for each retry attempt.

      • If you increase the base value to 1 second

        • Avo Assure Client waits 1s, 2s, 4s, 8s, and 16s between retries.

        • When the network is slow or the server takes time to respond, increasing this value gives the system more time to recover before the next retry.

  4. scm_export_chunk_size

    • The scm_export_chunk_size parameter defines how many test artifacts Avo Assure Client groups together in one API call. Each group is called a chunk. Smaller chunks create many small and quick API calls. Larger chunks reduce the number of calls but increase data size per call. You set this value based on project size, system performance, and network stability. The system sets the scm_export_chunk_size value to 25.

    • Example:

      • Suppose the chunk size is 25.

        • Avo Assure Client fetches 25 items per API call.

        • A project with 1000 Test cases requires 40 API calls.

      • If you increase the chunk size to 50

        • Avo Assure Client fetches 50 items per API call. The same project needs only 20 API calls, but each call is heavier and requires strong network performance.

      • If you decrease the chunk size to 10

        • Avo Assure Client makes 100 API calls, and each call is very quick, which helps when network interruptions occur frequently.

Editing Source Control Management Parameters

To edit the Source Control Management (SCM) configuration in Avo Assure Client to improve push performance, perform the following actions:

  1. From the local system, select the location of Avo Assure Client.

  2. From the Avo Assure Client location, select the Avo folder.

  1. From the Avo folder, select the AvoAssure folder.

  1. On the AvoAssure folder, select the assets folder.

  1. Under the assets folder, select the config.json file.

  1. From the dialog box, select the required application to open the config.json file.

  2. From the dialog box, select Always or Just once.

Note:

  • In this scenario, we are selecting the Notepad as an application to open the selected config.json file.

  • You can use any application on your system that supports opening JSON files to view the config.json file.

  1. Open the config.Json file in Notepad and select the Source Control Management (SCM) parameter to edit.

  2. Select the scm_export_worker_count parameter and change the value based on your system capacity.

Note: You can increase or decrease the worker count depending on your system processor and RAM.

  1. Select the scm_export_max_retries parameter and update the value as needed.

Note: This parameter defines how many times Avo Assure Client retries an Source Control Management (SCM) API call if it fails due to temporary issues.

  1. Select the scm_export_backoff_base parameter and modify the value if required.

Note: This parameter defines the base wait duration (in milliseconds) before retrying a failed Source Control Management (SCM) API call.

  1. Select the scm_export_chunk_size parameter and update the value according to your performance requirements.

Note: This parameter defines how many Test cases are grouped together in each API push operation.

  1. After editing the required configuration, press Ctrl + S to save the changes.

Last updated

Was this helpful?