Scalability of TWiki
Sometimes we get the question on how well TWiki can scale. This blog post compiles scalability related information so that you can plan your TWiki deployment effectively.
008-03-25 | Peter Thoeny | Category Best Practices
- Scaling Across Teams and Departments
- Server Selection, Caching, Load Balancing
- Scalability of Search
- Flat File Back-end
- Multiple webs (workspaces):
- You can create as many webs as you need. Some large TWiki deployments have over 1000 webs. Think of a web like a wiki within TWiki. Each team can get their own wiki. People need to register only once, then they can create content in their own space. If needed you can link across webs, such as to reference a registered user or an entry in the Glossary web.
- Fine grained access control:
- You can create TWikiGroups and restrict access to content for view and edit based on those groups. Although it is possible to restrict access on a topic (page) level, it is typically done on a web level for ease of administration.
- Authentication:
- In a large deployment it is advisable to authenticate users against your directory server, such as Active Directory or LDAP. That reduces the workload on registration/login questions.
- File attachments:
- TWiki has a per-topic namespace for file attachments. That means, if one team uploads a file called
inventory.xlsto their team page, and another team uploads a file of the same name to a different page, they will not collide. Try that with Mediawiki or other wikis. - You can limit the maximum size of attachments that can be uploaded. This can be done for the whole site and also on a web level.
- TWiki has a per-topic namespace for file attachments. That means, if one team uploads a file called
- Organize content:
- You can categorize content with TWikiForms and run meaningful reports with FormattedSearches.
- You can install the TWiki:Plugins.TagMePlugin to tag content. See for example the tag cloud of TWiki extensions on the TWiki.org website.
- Web 2.0 platform:
- Web 2.0 is all about user generated content. TWiki is a web 2.0 platform where you can install ready made applications. For example, check out the TWiki:Plugins.BlogAddOn, the TWiki:Plugins.TWikiDotNetForumAppAddOn and other TWiki extensions in the TWiki:Plugins.WebHome web.
- Create your own applications:
- TWiki goes beyond Web 2.0: The TWiki platform is about user generated application logic. Your users can create situational applications that solve specific business needs, such as a bug tracker, a employee news portal, TWiki's Support web and more. You do not need to be a programmer; all application logic is done in TML (TWiki Markup Language) using TWiki forms, reports and optionally some HTML and JavaScript.
- The IT department is in charge of the wiki dial tone and wants to have some control over the wiki deployment. With TWiki you allow users to experiment in a controlled environment. That is, IT can get the dreaded "shadow IT" under control.
- Integrate:
- TWiki has a plugin API and ready made plugins to connect to external databases. That way you can run a query in MySQL and other RDBMS and display the result in TWiki pages. Useful to show CRM data to sales teams and bug trends to engineering teams.
- Enterprise class Linux
- Dual core CPU 2.6 GHz
- 2 GB RAM
- RAID 1 or RAID 5 for redundancy
- Dual power supply for redundancy
- Plan disk space:
- Page content: 15MB per 1000 page (yes, MB, not GB)
- File attachments: 1GB per 1000 pages
- Caching:
- Several caching extensions are available, such as TWiki:Plugins.PublicCacheAddOn, TWiki:Plugins.VarCachePlugin and other extensions on caching.
- Load balancing:
- For high volume traffic sites it is possible to put TWiki on a load balanced setup. Here is an example:
- Cisco Ace load balancer.
- 3 webservers.
- NAS storage back-end.
- Webservers share data on NAS for pages, file attachments and log files.
- In the early days, TWiki.org was on a load balanced server setup while hosted at SourceForge.net. Now it is on a single server. The TWiki community plans to move TWiki.org again to a load balanced server setup which will improve the performance considerably.
- For high volume traffic sites it is possible to put TWiki on a load balanced setup. Here is an example:
- Simple installation
- Simple backup and restore
- Simple migration of content between TWiki installations (think of grassroots wiki consolidations, spin-offs and acquisitions of companies)
- Well understood caching and replication technologies available
- Resilient to data corruption
- TWiki scales well on number of webs, e.g. it does not matter much if you have 3 webs or 3000 webs.
- TWiki has a limit on the number of pages in a web. You will see a performance impact if you have more than 20,000 pages in a single web. This depends on the file system/configuration used, on the bandwidth of your server I/O and on the memory installed.
- TWiki scales well on the number of registered users. We have not done tests on the upper limit. It is also feasible to not register users in TWiki, e.g. to rely solely on LDAP login.
TWIKI.NET Blog
Recent Posts
- Matt Hodgson's views on the ROI of Social Networking in the enterprise
- TWIKI.NET is Finalist in LinuxWorld Product Excellence Awards
- TWiki User Meetup in Silicon Valley, 2008-05-16
- Scalability of TWiki
- New Leadership Supporting Community
- TWIKI.NET Sponsors YouTube Contest 2008
- Videos of TWiki Meetup 2007-11-29
- TWiki Meet Up - Silicon Valley - 29 Nov 2007
- Case Study: KQED's QUEST Program Managed by TWiki
- TWIKI.NET launched at LinuxWorld in San Francisco
- Roles People Play in a Wiki
- Wiki Spam on Public Wikis
- Wiki Applications and The Long Tail
- What is a Structured Wiki?
- The Wiki Champion
- Value of Tagging Wiki Content
