More efficient RubyForge mirroring

19 Apr 2006

Dennie Oelkers and I have gotten the RubyForge "push files to mirrors on demand" gizmo working! In the old days, Dennis' server would hit RubyForge once every 20 minutes or so and do an rsync of various directories. This worked fine, although it gobbled RubyForge CPU during the rsync scan since it happened whether there were any files to be transferred or not. Now it works like this:

  • RubyForge notices a new RubyGem or large file has been added
  • RubyForge pings Dennis' machine using HTTPS
  • Dennis' machine reaches back and rsyncs over any new files

This means that the number of rsync hits on RubyForge has dropped from six per hour to - so far this morning - about once every four hours. So your releases get synced to the mirrors faster and RubyForge should perform better overall. Good times. Many thanks to Dennis and the other mirror providers!