[Bug 6903] New: Durable push replication

mercurial-bugs at mercurial-scm.org mercurial-bugs at mercurial-scm.org
Wed Aug 21 22:45:36 UTC 2024


https://bz.mercurial-scm.org/show_bug.cgi?id=6903

            Bug ID: 6903
           Summary: Durable push replication
           Product: Mercurial
           Version: 6.7.4
          Hardware: PC
                OS: NetBSD
            Status: UNCONFIRMED
          Severity: feature
          Priority: wish
         Component: Mercurial
          Assignee: bugzilla at mercurial-scm.org
          Reporter: mercurial-bugzilla at campbell.mumble.net
                CC: mercurial-devel at mercurial-scm.org
    Python Version: ---

Say I have a primary hg repository server and two or three distributed replica
servers.

I want to ensure that if `hg push' from my development workstation to the
primary server completes successfully, then whatever I pushed has been written
(and fsynced) to a quorum of two servers -- primary and at least one replica,
or primary and two of three replicas.  If it can't be written to this quorum
after a deadline, `hg push' must fail.

(Whether the system rolls back an aborted distributed transaction, or just
saves incremental progress of pushing to less than a quorum so the next hg push
can be quicker, is probably not important but I'm open to being convinced it
matters.)

How can I achieve this?  Is there any existing Mercurial extension to implement
a two- or three-phase commit protocol for push replication, like Github claims
to use (https://github.blog/engineering/infrastructure/stretching-spokes/)?

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the Mercurial-devel mailing list