Skip to content

Draft: Bubble Scheduler

Matthew Sevey requested to merge sevey/bubble-errors into sevey/g116-update

MERGE REQUEST

MR Guidelines

Overview

This MR adds a new struct bubbleScheduler. The bubbleScheduler manages bubble updates for the renter. The problem that this solves is that with large filesystems, an increasing number of bubbles get called on the top level directories. Since this bubbles are called in a go routine when the child directory bubble update is finished, the node can be overloaded with go routines and these root directories get stuck in a state of bubblePending but bubbles are never executed because of all the bubbles occurring on the child directories.

TestBubble/StressTest was added as a regression test that shows for large directories the AggregateLastHealthCheckTime does not get updated.

Example for Visual Changes

Checklist

Review and complete the checklist to ensure that the MR is complete before assigned to an approver.

  • All new methods or updated methods have clear docstrings
  • Testing added or updated for new methods
  • Any new packages are added to Makefile and .gitlab-ci.yml
  • API documentation updated for API updates
  • Module README.md updated for changes to workflow
  • Issue added to Sia-UI repo for new supporting features
  • Changelog File Created

Issues Closed

Merge request reports