Added Success Story
Jesse Sheidlower [Sun, 17 Apr 2005 00:45:40 +0000 (00:45 +0000)]
lib/Catalyst/Manual/Intro.pod
lib/Catalyst/Manual/SuccessStories.pod

index b44c065..ae3f54d 100644 (file)
@@ -623,6 +623,7 @@ Mailing-lists:
 Sebastian Riedel, C<sri@oook.de> 
 David Naughton, C<naughton@umn.edu>
 Marcus Ramberg, C<mramberg@cpan.org>
+Jesse Sheidlower, C<jester@panix.com>
 
 =head1 COPYRIGHT
 
index 35f952b..a327ea7 100644 (file)
@@ -8,22 +8,68 @@ Catalyst is great, no question...
 
 =head1 STORIES
 
-=head2 A first benchmark after porting from Maypole to Catalyst
-
-    the_jester: Very fast. Very very fast.
-    the_jester: I've run some basic benchmarks. On a "list" page,
-                I was getting about 7-8 pages/second with Maypole;
-                I'm getting 18 with Catalyst. On a "view" page,
-                I'm getting 16 pages/second under Maypole,
-                and 57 under Catalyst.
-    the_jester: And NOTE: That's Maypole running with cached templates,
-                and Catalyst running without.
-                Adding template caching to Maypole gave me an
-                improvement of about 250%, so....
+=head2 Early Maypole -> Catalyst porting (Jesse Sheidlower)
+
+The original version of the Oxford English Dictionary's
+Science Fiction web site, now at
+L<http://www.jessesword.com/sf>, was written as plain CGI
+scripts. (No, it's worse than that. It was written as .shtml
+pages, with the SSI shelling out to a Perl script that
+generated HTML. And yes, this was written after 1996. So sue
+me.) While this was mostly satisfactory at one time, as the
+site grew there were very many problems introduced by this
+system. I decided to upgrade it to a modern system based on
+L<Maypole> and L<Template Toolkit|Template>. Among the
+user-visible features added were proper paging of the result
+sets, a search function, and the linking in of the OED's
+massive citation database to show all the quotations collected
+by the OED for each term. Back-end features included a
+mod_perl based framework, an extensible OO structure, proper
+templating, and the like.
+
+After some desultory work - I have a day job - a perfectly
+working Maypole-based system was ready. However, at this point
+development on Catalyst was going strong, and it was clearly
+the wave of the future for Perl-based MVC frameworks. Also,
+I was irritated by some features of Maypole, in particular its
+habit of setting up an enormous amount of structures for you
+regardless of whether they were needed. Since I was trying to
+optimize this application, I wasn't thrilled with the idea of
+having literally dozens of unneeded database calls on every
+request; it wasn't easy to switch this off without overriding
+large swathes of Maypole.
+
+So I delayed the launch of the new site to port it to
+Catalyst.  This took less than a day. My initial benchmarks
+showed a remarkable speed increase, in the range of 100-250%,
+depending on the type of request. (For example, on my
+development server, I had been getting 16 pages/second under
+Maypole for a "view" page that displayed a single full record;
+under Catalyst this jumped to 57 pages/second.) After a week
+or so of public beta testing, I shifted the entire site to the
+new system, e-mailed Slashdot, and waited for the onslaught.
+
+When it hit Slashdot, things held up very nicely. (Some early
+error pages, embarrassedly pointed out by a Slashdot poster,
+were in fact caused by a lack of available MySQL connections,
+for which misconfiguration the DB admin was harshly
+criticized, rather than from any app-specific failings.) In
+the hours after slashdotting, the app averaged about 3,000
+pages/hour, each representing a dynamic database-generated
+page; the total requests averaged about 30,000/hour. During
+this period the perceived speed of the app was extremely
+snappy. After a small bump in the first minute, the load
+average on the server was less than 1.0 the whole time,
+usually under .3. Other apps running on the server were also
+unaffected.
+
+The ease of use and speed of Catalyst contributed greatly
+to the success of this site.
 
 =head1 AUTHOR
 
 Sebastian Riedel, C<sri@oook.de>
+Jesse Sheidlower, C<jester@panix.com>
 
 =head1 COPYRIGHT