[MLton] mlton.org content migration
Matthew Fluet
matthew.fluet at gmail.com
Wed Jun 1 14:38:26 PDT 2011
I've continued to research alternative hosting solutions for the
mlton.org content. My preference is still to migrate back to
SourceForge.net. I've done some preliminary work and experiments, and
I think that most of the transition would be straightforward.
There were some concerns about SourceForge being "slow". My
experiments show that it is actually faster than the current mlton.org
hosting provider. Here are three experiments:
1) I exported the MLton Subversion repository and imported it into
mlton.svn.sourceforge.net. I performed a "/usr/bin/time svn checkout"
of mlton/trunk at HEAD from both, with the following results over five
trials:
mlton.org:
54.62 real 1.41 user 2.62 sys
67.31 real 1.41 user 2.62 sys
47.28 real 1.41 user 2.64 sys
42.38 real 1.40 user 2.60 sys
52.38 real 1.41 user 2.61 sys
mlton.svn.sourceforge.net:
18.18 real 1.86 user 2.59 sys
19.40 real 1.87 user 2.61 sys
20.37 real 1.86 user 2.61 sys
19.45 real 1.87 user 2.58 sys
20.33 real 1.87 user 2.54 sys
So, the slowest SourceForge checkout is half the time of the fastest
mlton.org checkout.
2) I copied the mlton-svnroot.tar.bz2 file (48M) to
mlton.sourceforge.net. I performed a "/usr/bin/time wget" of the file
from both, with the following results:
mlton.org (one large):
40.98 real 0.11 user 0.80 sys
41.50 real 0.11 user 0.79 sys
40.33 real 0.10 user 0.79 sys
40.98 real 0.11 user 0.79 sys
41.48 real 0.11 user 0.81 sys
mlton.sourceforge.net (one large):
41.19 real 0.06 user 0.68 sys
42.30 real 0.06 user 0.68 sys
40.84 real 0.05 user 0.57 sys
40.78 real 0.06 user 0.61 sys
42.21 real 0.06 user 0.63 sys
So, nearly identical performance for downloading one large file,
indicating that the bandwidth for web content is about the same.
3) I copied the guide/ directory from mlton.org to
mlton.sourceforge.net. These are static HTML snapshots of the wiki
from the past three releases (plus corresponding .tar.gz files),
totaling 7.4M over 401 files. I performed a "/usr/bin/time wget -r
-np -l inf" of this directory from both, with the following results:
mlton.org (many small):
39.50 real 0.12 user 0.27 sys
40.67 real 0.12 user 0.27 sys
41.05 real 0.12 user 0.27 sys
41.20 real 0.12 user 0.27 sys
41.12 real 0.12 user 0.28 sys
mlton.sourceforge.net (many small):
17.56 real 0.12 user 0.21 sys
20.64 real 0.11 user 0.20 sys
16.87 real 0.12 user 0.20 sys
15.92 real 0.11 user 0.20 sys
15.99 real 0.11 user 0.20 sys
So, the slowest SourceForge fetch is about half the fastest mlton.org
fetch, indicating that the latency for web content is much better on
SF.
Of course, what that doesn't test is speed of dynamic content
generation, which might or might not be important. Currently, all of
the wiki content of mlton.org is dynamic content, but it isn't clear
that it would be easy or worthwhile to install MoinMoin on MLton's
SourceForge project web.
The mlton-{devel,user}@lists.sourceforge.net mailing lists still
exist, though had been purged of subscribers. I worked through all of
the MailMan admin screens and configured them to reject all spam (as
identified by the SourceForge.net spam filters), to hold all
non-subscriber posts for moderation, to accept all subscriber posts,
and to admin approve subscription requests. [There are also
mlton-{announce,commit}@lists.sourceforge.net mailing lists,
configured as read-only.] As I mentioned previously, I think that
this is the simplest configuration. Certainly simpler than the
configuration currently on mlton.org, with its whitelist and no
automatic spam filtering. As I noted previously, we can also import
our existing archives, although they end up not as pipermail archives,
but as SF's "forum archives" [which I admit are significantly less
navigable than the pipermail archives]. It is also trivially to copy
our existing pipermail archives (they are just static web content)
over to mlton.sourceforge.net. In a perfect world, it would be nice
to continue to add new messages to the pipermail archives. Since one
can access the mbox archives of SF mailing lists for backup purposes,
it might be possible to do so, though non-trivial as pipermail seems
to be fairly tightly integrated with mailman.
That leaves the wiki content. As noted before, SF provides MediaWiki,
but at a rather deeper URL than just mlton.sourceforge.net. Also, as
noted before, we would lose many of our wiki macros for pulling in
content directly from the Subversion repository. Also, we would lose
syntax highlighting of SML code (whether directly in the page or
pulled from the Subversion repository).
One option is to move to a completely static site via a static site
generator. There seem to be quite a number of tools for generating
HTML from simplified markup. I don't imagine that it would be too
difficult to migrate the MoinMoin markup to a different markup.
Ideally, we would use a tool that could be extended with analogs of
our existing wiki macros and could make use of highlighting of SML
code (i.e., using enscript or Pygments). My "vision" would be to
place the markup pages plus any plugins/extensions to the base tool
under version control, which would ensure that anyone could rebuild
the site. Updating the web content from the version control content
would be a nightly cron job (or possibly triggered by commits).
Those are my thoughts. Migrating the Subversion repository is very
quick (a couple of hours). Migrating the mailing lists would be a
couple of days: freezing the lists; requesting the import of mbox
archives; allowing @mlton.org MX record to propagate through DNS.
Migrating the web content would be quick (once there existed a means
to generate the web content), plus the time to allow *.mlton.org CNAME
records to propagate through DNS.
More information about the MLton
mailing list