create new tag
, view all tags

TWiki Standalone: What is it about?

2008-03-11 - 15:28:48 by GilmarSantosJr in General
I already wrote a post about TWikiStandAlone project, but after I read the minutes from GeorgetownReleaseMeeting2008x03x03, I realized many people could be thinking "Cool, but what is the benefit for me?". So I'll try to answer this question. wink

The standard way to run TWiki is as a CGI script. It's easy to setup and many web servers and hosting services support it. But it's also slow and resource-hungry. There are some hacks and discussions about using things like ModPerl and PersistentPerl (aka SpeedyCGI), but I don't think they are that easy to use currently and some stability problems may appear.

The initial proposal of TWikiStandAlone project, as name says, was to turn TWiki into a standalone server, so that could be performance benefits and it would be easy to use, but things changed a little: in order to make it possible to keep using TWiki as a CGI script I achieved an architecture design that makes it possible not only to run TWiki as a CGI script and as a standalone server, but also in many other ways, including ModPerl and FastCGI.

Then, I can point some benefits:

  • DONE Use of mechanisms other than CGI is easy
    • No more ugly hacks to use ModPerl
    • No patches needed to use FastCGI
  • DONE Use as CGI and CLI is exactly the same, I mean, it's totally transparent
  • DONE Standalone execution turns it very simple for personal use (No need to install/configure/run a web server)
  • DONE Both FastCGI and Standalone execution are really fast compared to plain CGI
  • DONE It's easy to take advantage of FastCGI and/or ModPerl support on many hosting services
  • DONE It's easy to predict how much RAM will be used by FastCGI or Standalone execution mechanisms, so it's also easy to do capacity planning
  • DONE Standalone execution permits to run TWiki as a different user than web server

In addition to all this, it opens some new possibilities:

  • ALERT! Persistent execution can be even faster if tasks common to all requests were performed only once
  • ALERT! Memory usage can be decreased by sharing common objects between TWiki processes
  • ALERT! Persistent execution with DatabaseStore can help a lot with scalability. It would even be possible to easily build a load-balance cluster of TWiki installations
  • ALERT! Standalone execution could permit execution inside some jail/chroot environment, decreasing the impact of possible security holes

If you think that none of those benefits are interesting for you, at least it's not harmful. wink

Up to now, development took place at it's own branch, but it is in process to be merged to core. I invite every one, specially developers, to read TWikiStandAlone topic carefully, more specifically implementation details and changes sections.

Feel free and invited to ask questions, make suggestions and get involved with this project! smile



Edit | Attach | Watch | Print version | History: r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r2 - 2008-03-11 - GilmarSantosJr

Twitter Delicious Facebook Digg Google Bookmarks E-mail LinkedIn Reddit StumbleUpon    
  • Help
  • 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-2017 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.