archive_me1Add my vote for this tag create new tag
, view all tags
Just thinking: doesn't TWiki provide read-only mirroring facilities? What say we create some mirrors of TWiki.org to combat the intermittant read errors. I'd be happy (and eager) to host a mirror located in Texas, USA.

-- MartinCleaver - 28 Aug 2002

I would certainly like to have TWiki available at more than one location, but I think it would be pretty frustrating for the mirrors to be readonly.

-- MattWilkie - 28 Aug 2002

True - but when I just want to think about things I find it even more frustrating to not be able to read what's been written. Anyway, I think this is a case of EatYourOwnDogFood - ie. we should consume what we produce. If the functionality is not good enough for us then its probably not good enough for anyone!

I guess the mirroring functionality directs readers on mirrors back to the master-site when ever they try to make a change. How quickly and how the changes get back to the mirrors is a puzzle to me. I'll check the docs.

-- MartinCleaver - 29 Aug 2002

This is pretty similar to the setup I did inside Inktomi really. (See TWikiStoryOfInktomi for details) For that we used rsync and a slightly different from normal internal TWiki organisation -- things it also allowed was mirroring of skins along with data & code upgrades independently without impacting the data)

Without access to the data directly however you can still do something similar. However you can't (AFAICT) do the following:

  • Access or update skins.
  • Use or make use of the plugins in use remotely.
  • Probably some other things.

In order to scrape a remote TWiki, and have local updates updating the remote TWiki via web methods only, you'd have to do the following at present:

  • Setup phase - grabbing a local copy:
    • A list of topics in each web - not exactly rocket science...
    • A piece of code to grab the raw=1 version, and dump locally just the contents of the raw box. (Some clean delimiters around the raw box would help here)

  • Local reading - nothing special, just a local Twiki.

  • Sending updates back to the central server & vice versa:
    • Need to find out if your local changes clash with remote TWiki server.
    • If they do you need to have some form of clash resolution method. Could assume the following:
      • Store the remote (shared) version locally (grabbed again using raw=1), as if it was a new edit. Reason: That way people can see that their changes have been clobbered by the community, but can go back and see what's changed/different without anything special changes to the local twiki.
      • Mail the diff between the two versions to the local person who last editted that page so that they can resolve the clash.
      • Store the diffs in a local "clashes to be resolved" topic.
    • For local updates that do not clash with local updates:
      • The local version has to perform an edit/save cycle on the remote TWiki for each topic that's locally been modified.
    • The system then has to download the remote changes, again using the raw=1 form, and store the

None of these things need changes to existing TWiki code, and can be coded as a standalone remote update tool. Also none of this requires the mirroring code that was put into TWiki to be used either. (Indeed neither did the setup we used inside Inktomi, despite the fact we were mirroring round several different locations. What we did need though was better support for DataAndCodeSeparation )

Indeed nothing about this process (aside from setup) requires local admin access to the TWiki server, and you can easily have a third party site mirroring a set of TWiki's amongst themselves. (Probably a good thing in many respects)

-- TWikiGuest - 29 Aug 2002

I like idea of mirroring. But what instead of complicated syncing, edit on mirror site will display a page like this:

This is Twiki mirror. Click here to grab latest page from central just to be sure. When you click edit, you'll lock and edit page in original Twiki.org (in new window). After saving your changes, click here to broadcast your changed page to all mirrors.

This will require 2 new scripts mirroredit on mirror (to display above page and redirect to Twiki.org), and broadcast on Twiki.org to send changed pages.

-- PeterMasiar - 29 Aug 2002

This would be useful. I do believe there is already code in the current TWiki that does some of that, but it is not documented at all. I am not sure how much of the mirror site handling is actually being done....

-- ThomasWeigert - 30 Aug 2002

TWiki.org has far too many 'Internal Server Error' names at the moment to make mirroring worth doing IMO - you might be able to get the read-only mirrors working OK via rsync, but if you frequently get an error when you hit Edit there's not that much point. Once we have moved to a more reliable hosting platform this may be more of an option.

Read/write mirroring would be useful, but the real solution is to ensure that TWiki.org hosting is more reliable.

-- RichardDonkin - 30 Aug 2002

Hmm, what's the ratio of reads to edits? I read far more than I edit. If all the reads are done from a mirror site, things are good for readers.

-- RandyKramer - 30 Aug 2002

Edit | Attach | Watch | Print version | History: r10 < r9 < r8 < r7 < r6 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r10 - 2004-10-30 - WillNorris
  • Learn about TWiki  
  • Download TWiki
This site is powered by the TWiki collaboration platform Powered by Perl Hosted by OICcam.com Ideas, requests, problems regarding TWiki? Send feedback. Ask community in the support forum.
Copyright © 1999-2018 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.