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

Changes Proposal #1

Open
4 of 13 tasks
iwanbk opened this issue Jan 9, 2025 · 1 comment
Open
4 of 13 tasks

Changes Proposal #1

iwanbk opened this issue Jan 9, 2025 · 1 comment
Assignees

Comments

@iwanbk
Copy link
Member

iwanbk commented Jan 9, 2025

The s3-cas project was developed as a Proof of Concept using:

  • sled.rs for metadata database
  • s3-server for S3 API frontend
  • Basic implementation without proper CI/CD

Proposed Changes

Transform the PoC into a production-ready product with modern dependencies and proper development practices.

Core Changes Required:

1. Database Migration

  • Replace sled.rs with fjall.rs (existing metadata migration is not needed) assesment: replace Sled with fjall.rs #11 Change the metadata DB  #16
    • Design new metadata schema for fjall.rs
    • Add documentation for database operations
    • Implement proper error handling
    • Add a tool to inspect DB (keysize, metadata size),
      add oject retrieval and integrity check... TBD

2. S3 Frontend Modernization

3. Stabilize Object RefCount

Righ now the refcount is defined as a feature, but in fact it would
need to be a default setting.

  • Design comprehensive failure tests to make sure that refcounts
    are NEVER too low. (There can be some data leakage, but never data loss)
  • Stabilize refcount

4. CI/CD Implementation

cc @delandtj

@iwanbk iwanbk self-assigned this Jan 9, 2025
@iwanbk
Copy link
Member Author

iwanbk commented Jan 9, 2025

Transform the PoC into a production-ready product with modern dependencies and proper development practices.

some notes:

  • Finishing this issue doesn't mean the s3-cas become production ready, this issue is more like a prequisite to the production ready version
  • More tasks could be added later

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

No branches or pull requests

1 participant