Skip to content

Async replication #5

Closed
Closed

Description

@ctengel

Activity

  1. added this to the Basic milestone on Aug 17, 2025
  2. added a commit that references this issue on Aug 17, 2025
  3. self-assigned this
    on Oct 25, 2025
  4. ctengel commented on Oct 25, 2025

    @ctengel
    OwnerAuthor

    Pin

  5. pinned this issue on Jan 7, 2026
  6. ctengel commented on Jan 7, 2026

    @ctengel
    OwnerAuthor

    Next steps

    • Deploy latest code
    • Manually scrub everything
    • Test manual async replication

    From there the next part is build out a client/server system that:

    • Takes multiple sources and multiple destinations
    • Allows user to set tgt number of replicas
  7. ctengel commented on Jan 10, 2026

    @ctengel
    OwnerAuthor

    Option A:

    • build out locator API that is ls with list of locations as part of metadata
    • also one for placing replicas, either:
      • expose known servers
      • modified PUT that instead of 409 will redirect to a server that doesn't have it yet
    • script takes a bucket and a min number of replicas
    • call API and if any below minimum, trigger a replication
      • use above replica placement (pull data and figure one out) or just PUT with appropriate switches
      • or user supplied targets

    Option B:

    • no change to locator or object servers
    • replicator takes source servers, dest servers, and min number of replicas
      • source and dest may overlap or even be the same
    • go to each source and list and store files and metadata along with where each was found
      • error if hash doesn't match
    • go through list and check each dest server, if count is too low, pick from remaining servers appropriate place(s) to replicate (similar to current locator put logic)

    Due to lack of locking #18 #25 maybe refuse to replicate if no sha sum?

  8. unpinned this issue on Jan 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions