Hammer on-the-move

Matthew Dillon dillon at apollo.backplane.com
Thu Jul 10 10:43:24 PDT 2008


:Hi,
:
:I think it shouldn't be too hard to switch a hammer master into a slave
:and a slave to a master, isn't it?
:...
:Many years ago I really hoped that what I descibed above would work out
:well using the Coda File System. Then came hammer... :)
:
:Regards,
:
:   Michael

    You don't have to convince me :-)  I want to be able to do that to
    implement fail-over support.

    I restricted those options a few days ago (its basically just two lines
    of code in the HAMMER user utility) and I haven't decided whether
    to unrestrict them for the release or not.  The main reason is to
    prevent early adopters of HAMMER from shooting themselves in the foot
    because we do *NOT* have multi-master support yet and trying to
    cross-mirror two masters can blow up a filesystem faster then chocolate
    melts on a hot day.   The mirroring occurs at the B-Tree record level
    and has no concept of high level filesystem topology.

    To do multi-master merging support the mirroring program needs to be
    made a lot smarter.  The low level structures *CAN* already identify
    which master made a modification (the low 4 bits of the transaction id
    will identify which master made the change, as long as every master
    is given a different master id).  But the mirroring program does not
    yet use that information to resolve conflicts between masters when
    you want to merge their data sets into a single coherent whole.

    We are right on cusp of being able to do this but I am awfully worried
    that enabling the feature in the release, before all the support
    is in place, will cause too many user-support headaches and foot-shooting.

    Maybe what I should do is allow slaves to be upgraded to masters but
    put all sorts of 'are you really really really sure' warnings in if
    someone tries to downgrade a master into a slave.  Either way I will
    not allow the mirroring program to mirror between two masters, so
    you'd have to downgrade a master into a slave first.  With the proviso
    that merging two master data sets where BOTH may have been independantly
    modified is strictly off limits, I could allow it for the release.

					-Matt
					Matthew Dillon 
					<dillon at backplane.com>





More information about the Users mailing list