Skip to content

Conversation

@Faisal77666
Copy link

[GSOC][Kvrocks] Support database backup to cloud storage

Why this PR?

This is a Draft PR for my GSoC 2026 proposal: "Cloud Backup Support for Kvrocks".

I have started by implementing the configuration infrastructure. This allows the engine to recognize and validate cloud storage settings before we move to the integration phase.

The goal is to allow Kvrocks to natively support backups to cloud providers like S3, GCS, and Azure Blob Storage using Apache OpenDAL.

What has been implemented:

  • Configuration Registration: Added new fields (cloud-storage-type, cloud-storage-bucket, etc.) to the Config class.
  • Validation Logic: Implemented a field validator in initFieldValidator to ensure only supported cloud backends are accepted.
  • WIP Logic: I have verified these configurations using CONFIG GET and CONFIG SET on a running local instance.

Next Steps:

  1. Integrate the Apache OpenDAL C++ bindings via CMake.
  2. Implement the CloudStorage helper class to handle the actual upload/download logic.
  3. Link the backup/snapshot process to the cloud upload trigger.

I welcome any feedback on the naming conventions used in config.h or the validation logic!

@PragmaTwice
Copy link
Member

Hi, thanks for your contribution. I’d like to ask you to keep these two points in mind:

  • It hasn’t been confirmed yet that “Support database backup to cloud storage” will be part of GSoC 2026. That depends on whether someone has time to mentor it, and whether the ASF has enough project slots.
  • Even if this project does happen, submitting a PR early won’t increase your chances of being selected. On the contrary, it may confuse other applicants.

@Faisal77666
Copy link
Author

@PragmaTwice Thank you for the clarification! I completely understand. I opened this as a personal exploration to better understand the Kvrocks configuration engine while drafting my proposal. I will keep this as a Draft for my own learning and will focus on the proposal details as per the GSoC timeline. I'm happy to close the PR or leave it as a Draft—whichever the community prefers to avoid confusion.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants