Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Scheduler can be restarted without losing data for Git repositories #43

Open
2 tasks
dicortazar opened this issue Mar 18, 2024 · 3 comments
Open
2 tasks
Assignees
Labels
GrimoireLab 2.x scalability Tickets related to scalability topics

Comments

@dicortazar
Copy link

dicortazar commented Mar 18, 2024

Context

  • Task goal: define the technical needs to scale the technology to 3.5K repositories of high activity. This includes improvements and development in the area of operations and scalability mainly.
  • Scope: the initial scope goes for only Git repositories at the retrieval and enrichment phase. This may include the first gathering process, although this may face certain other difficulties as for example get banned by certain platforms.
  • Definition of done: when the first deployment of Bitergia Analytics is ready to go, the process to download and/or enrich 3.5 repositories should take no more than half day in total.

Task Description

Assure the completeness of the data and the resiliency of the processes: when running the instance, even if there are interruptions, the data gathering and enriching process have to be resilient to cuts. This will ensure the completeness and quality of the final datasets.

  • Definition of done: No data losses can happen, no matters the time the service is down. Data must be complete. This includes the raw indexes and the enriched indexes.
  • Missing work: define the several use cases to cover to assure the success of this task.

Technical description

Develop a mechanism to recover from failures. Currently, Git fails to recover from a repository that has fetched the latest commits and is unable to determine the last commit that was returned before failing, and continue the process from there. One potential solution is to utilize packfiles, which contain the commits fetched in the last update in the correct order.

Additionally, a system is needed to identify all repositories that failed in the previous execution, and start the fetch process in recovery mode.

Create a
GrimoireLab tickets


  • Technical Description
  • Business Description
@dicortazar dicortazar converted this from a draft issue Mar 18, 2024
@dicortazar dicortazar added the scalability Tickets related to scalability topics label Mar 18, 2024
@dicortazar dicortazar moved this to Backlog in Bitergia Analytics Mar 18, 2024
@dicortazar dicortazar moved this to Backlog in Bitergia Analytics Apr 15, 2024
@canasdiaz
Copy link

In our Monday meeting, @sduenas volunteered to link the tickets in CHAOSS or bitergia-analytics where our team is doing the work.

@canasdiaz
Copy link

@jjmerchante @sduenas Please discuss if what we have is enough to meet the requirement. We need to deliver software as soon as possible.

@dicortazar dicortazar moved this from In progress to Done in Bitergia Analytics Jan 13, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
GrimoireLab 2.x scalability Tickets related to scalability topics
Projects
Status: Done
Status: Backlog
Development

No branches or pull requests

3 participants