Skip to content

iops split#665

Open
boddumanohar wants to merge 2 commits intodevfrom
iops-split
Open

iops split#665
boddumanohar wants to merge 2 commits intodevfrom
iops-split

Conversation

@boddumanohar
Copy link
Copy Markdown
Member

@boddumanohar boddumanohar commented Mar 16, 2026

fixes: simplyblock/vela#256

PR: simplyblock/simplyblock-csi#294 allows taking QOS IOPS parameters Via annotation. this PR makes use of it.

PTIR: split the assigned IOPS and provide 25% for the WAL and 75% for the data volume

testing

Created a branch with PITR enabled and IOPS as 1000 (which will create create 2 PVCs)

kubectl -n vela-pr665-01kmdjjheakq8dmd46vjdqsgm8 get pvc
NAME                            STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS                    VOLUMEATTRIBUTESCLASS   AGE
vela-autoscaler-vm-block-data   Bound    pvc-2182896e-0032-43ac-b63e-879a0e9e323f   1Gi        RWX            sc-01kmdjjheakq8dmd46vjdqsgm8   <unset>                 105s
vela-autoscaler-vm-pg-wal       Bound    pvc-2680739c-de3c-458c-bd84-95c2bf3e3150   100Gi      RWX            sc-01kmdjjheakq8dmd46vjdqsgm8   <unset>                 105s

for DATA PVC

sbctl lvol get pvc-2182896e-0032-43ac-b63e-879a0e9e323f | grep rw_ios_per_sec
| rw_ios_per_sec           | 750                                                                    |

and for WAL PVC

sbctl lvol get pvc-2680739c-de3c-458c-bd84-95c2bf3e3150 | grep rw_ios_per_sec
| rw_ios_per_sec           | 250                                                                    |

@boddumanohar boddumanohar requested a review from mxsrc March 17, 2026 04:54
@boddumanohar boddumanohar force-pushed the iops-split branch 2 times, most recently from a0d1273 to 409e5d5 Compare March 19, 2026 06:55
Base automatically changed from dev to main March 19, 2026 14:34
@boddumanohar boddumanohar changed the base branch from main to dev March 22, 2026 18:28
@boddumanohar boddumanohar force-pushed the iops-split branch 2 times, most recently from 7247ac6 to 060a346 Compare March 23, 2026 14:06
@boddumanohar
Copy link
Copy Markdown
Member Author

@mxsrc This PR is ready for review. Also have added testing results in the PR.
The changes on the CSI driver are already merged and are deployed to dev environment.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR implements PITR-aware IOPS allocation by splitting the requested branch IOPS budget between the main data volume and the WAL volume (25% WAL / 75% data), leveraging Simplyblock CSI’s per-PVC QOS annotations.

Changes:

  • Add support for rendering user-provided annotations onto the WAL PVC Helm template.
  • Introduce WAL_IOPS_FRACTION and apply IOPS splitting during branch provisioning/config generation and during volume IOPS updates.
  • Ensure clone/restore flows create the StorageClass with the (intended) data-volume IOPS portion.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 7 comments.

File Description
src/deployment/charts/vela/templates/autoscaler/wal-pvc.yaml Allows WAL PVC annotations to be rendered from chart values (needed for per-PVC QOS).
src/deployment/init.py Splits IOPS into data/WAL portions; annotates WAL PVC values; updates Simplyblock volumes accordingly.
src/api/organization/project/branch/init.py Adjusts clone/restore StorageClass creation to use the data portion of the IOPS budget.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@boddumanohar
Copy link
Copy Markdown
Member Author

boddumanohar commented Mar 24, 2026

moving this back to Draft. should be good now.

Base automatically changed from dev to main March 25, 2026 12:30
@boddumanohar boddumanohar changed the base branch from main to dev April 1, 2026 15:54
@boddumanohar boddumanohar marked this pull request as ready for review April 1, 2026 15:56
@boddumanohar boddumanohar requested a review from mxsrc April 2, 2026 06:03
Copy link
Copy Markdown
Collaborator

@mxsrc mxsrc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I count five places where the computation is taking place. This needs to be a single helper. Ideally, we'd be able to delegate everything to an update function, at the very least we need a helper to compute the fraction. This should be possible for all cases I can see here. Clone and restoration can simply clone and restore, and in a second step update the IOPS value, or maybe even reuse the resize functionality.

@boddumanohar
Copy link
Copy Markdown
Member Author

added a helper function to split the IOPS for DATA and WAL PVCs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants