<?xml version="1.0" encoding='utf-8'?>
<!-- 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
-->
<?xml-stylesheet type="text/xsl" href="https://rollerweblogger.org/roller-ui/styles/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom">
    <title type="html">Blogging Roller</title>
    <subtitle type="html">Dave Johnson on open web technologies, social software and software development</subtitle>
    <id>https://rollerweblogger.org/roller/feed/entries/atom</id>
        <link rel="self" type="application/atom+xml" href="https://rollerweblogger.org/roller/feed/entries/atom?tags=memcached" />
    <link rel="alternate" type="text/html" href="https://rollerweblogger.org/roller/" />
    <updated>2026-04-28T07:02:22+00:00</updated>
    <generator uri="http://roller.apache.org" version="6.1.5">Apache Roller</generator>
    <entry>
        <id>https://rollerweblogger.org/roller/entry/latest_links_misc</id>
        <title type="html">Latest Links - misc</title>
        <author><name>Dave Johnson</name></author>
        <link rel="alternate" type="text/html" href="https://rollerweblogger.org/roller/entry/latest_links_misc"/>
        <published>2008-06-17T19:00:30+00:00</published>
        <updated>2008-06-18T02:00:30+00:00</updated> 
        <category term="Links" label="Links" />
        <category term="glassfish" scheme="http://roller.apache.org/ns/tags/" />
        <category term="memcached" scheme="http://roller.apache.org/ns/tags/" />
        <category term="mysql" scheme="http://roller.apache.org/ns/tags/" />
        <category term="opensource" scheme="http://roller.apache.org/ns/tags/" />
        <category term="spring" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;p&gt;It&amp;#39;s time to catch up on blogging and I&amp;#39;m going to start by going through my backlog of links and adding some commentary, but not in this post; these are miscellaneous links that don&amp;#39;t fit nicely into my other posts.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://tech.slashdot.org/article.pl?sid=08/06/04/2120227&amp;from=rss&quot;&gt;Slashdot | Why Google Should Embrace OpenOffice.org&lt;/a&gt;&lt;br&gt; &amp;quot;If Google really wanted to deliver a knockout punch to Microsoft, it would integrate OpenOffice with Google Docs&amp;quot; -- and pump some money into OOo development&lt;/li&gt;

&lt;li&gt;&lt;a href=&quot;http://headius.blogspot.com/2008/05/power-of-jvm.html&quot;&gt;Headius: The Power of the JVM&lt;/a&gt;&lt;br&gt;&amp;quot;And while JRuby and Groovy will probably spend the next few months one-upping each other, we&amp;#39;ve both proven something far more important: the JVM is an *excellent* platform for dynamic languages. Don&amp;#39;t let anyone tell you it&amp;#39;s not.&amp;quot;&lt;/li&gt;

&lt;li&gt;&lt;a href=&quot;http://blog.springsource.com/main/2008/05/27/open-source-open-strategy-the-springsource-manifesto/&quot;&gt;SpringSource Blog - Open Source, Open Strategy&lt;/a&gt;&lt;br&gt;My 141 char summary: open source good, but we need money. we won&amp;#39;t relicense existing parts, but we&amp;#39;ll GPL the full-stack so we alone can ride it to the bank&lt;/li&gt;

&lt;li&gt;&lt;a href=&quot;http://www.theserverside.com/news/thread.tss?thread_id=49227&quot;&gt;Kohsuke Kawaguchi: GlassFish v3 just got embeddable&lt;/a&gt;&lt;br&gt; &amp;quot;GlassFish glassfish = new GlassFish(); glassfish.minimallyConfigure(8080);&amp;quot;&lt;/li&gt;

&lt;li&gt;&lt;a href=&quot;http://db.apache.org/derby/docs/10.4/tools/ctoolsimport16245.html&quot;&gt;Derby: Using the bulk import and export procedures&lt;/a&gt;&lt;br&gt; closest thing to mysqldump in Derby land&lt;/li&gt;

&lt;li&gt;&lt;a href=&quot;http://archives.postgresql.org/pgsql-hackers/2008-05/msg00913.php&quot;&gt;Core team statement on replication in PostgreSQL&lt;/a&gt;&lt;br&gt; &amp;quot;it is time to include a simple, reliable basic replication feature in the core system&amp;quot;&lt;/li&gt;

&lt;li&gt;&lt;a href=&quot;http://www.linuxjournal.com/article/7451&quot;&gt;Distributed Caching with Memcached&lt;/a&gt;&lt;br&gt; Nice how-it-works article on memcached.&lt;/li&gt;
&lt;/ul&gt;</content>
    </entry>
    <entry>
        <id>https://rollerweblogger.org/roller/entry/howto_memcached_with_roller</id>
        <title type="html">HOWTO: Configure Roller to use Memcached</title>
        <author><name>Dave Johnson</name></author>
        <link rel="alternate" type="text/html" href="https://rollerweblogger.org/roller/entry/howto_memcached_with_roller"/>
        <published>2008-03-06T17:43:19+00:00</published>
        <updated>2008-08-09T06:22:16+00:00</updated> 
        <category term="Roller" label="Roller" />
        <category term="apacheroller" scheme="http://roller.apache.org/ns/tags/" />
        <category term="memcached" scheme="http://roller.apache.org/ns/tags/" />
        <summary type="html">In my last post, I explained the details of Roller cache configuration and I mentioned that Roller&amp;#39;s caching system is pluggable but I didn&amp;#39;t explain what that really buys you. Basically, what it means is that you can replace Roller&amp;#39;s in-memory LRU caching mechanism with something else. In this blog entry, I&amp;#39;ll explain how to do that.</summary>
        <content type="html">&lt;p&gt;In my last post, I explained the details of &lt;a class=&quot;external&quot; href=&quot;http://rollerweblogger.org/roller/entry/howto_configure_roller_caching&quot;&gt;Roller cache configuration&lt;/a&gt; and I mentioned that Roller&amp;#39;s caching system is pluggable but I didn&amp;#39;t explain what that really buys you. Basically, what it means is that you can replace Roller&amp;#39;s in-memory LRU caching mechanism with something else. In this blog entry, I&amp;#39;ll explain how to do that and specifically, how to replace Roller&amp;#39;s built-in cache with the popular &lt;a class=&quot;external&quot; href=&quot;http://www.danga.com/memcached&quot;&gt;Memcached&lt;/a&gt; caching system via the Roller Memcached plugin, which, like the rest of the Roller caching system was written by Allen Gilliland for use on &lt;a class=&quot;external&quot; href=&quot;http://blogs.sun.com&quot;&gt;blogs.sun.com&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;First, what is Memcached? Here&amp;#39;s what the Memcached web site says:
&lt;/p&gt;
&lt;dl&gt;&lt;dt&gt;&lt;/dt&gt;&lt;dd&gt;&lt;i&gt;&amp;quot;Memcached is a high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load.&lt;/i&gt;&lt;/dd&gt;&lt;/dl&gt;
&lt;dl&gt;&lt;dt&gt;&lt;/dt&gt;&lt;dd&gt;Danga Interactive developed memcached to enhance the speed of LiveJournal.com, a site which was already doing 20 million+ dynamic page views per day for 1 million users with a bunch of webservers and a bunch of database servers. memcached dropped the database load to almost nothing, yielding faster page load times for users, better resource utilization, and faster access to the databases on a memcache miss.&amp;quot;&lt;i&gt;&lt;/i&gt;&lt;/dd&gt;&lt;/dl&gt;
&lt;p&gt;&lt;i&gt;Lots of big sites use Memcached for distributed caching. In addition to LiveJournal, there&amp;#39;s also Wikipedia, Slashdot, SourceForge and  our very own blogs.sun,com. If you&amp;#39;re wanting to use Memcached, then you&amp;#39;re in good company.
&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Why would you want to use Memcached with Roller? Well, if you are running a large Roller site and you&amp;#39;ve got multiple instances of Roller running then you might run into problems with cache consistency. A blog update that hits server A will update the cache on server A, but server B will still have the old blog data for some time. Using a distributed cache will solve this problem. Another, hopefully &lt;/i&gt;much&lt;i&gt; less common, reason for wanting to use Memcache is to avoid using the JVM heap -- some folks have experienced some &lt;a class=&quot;external&quot; href=&quot;http://www.javalobby.org/java/forums/t99490.html&quot;&gt;weird problems&lt;/a&gt; with the JVM heap management and might want to use plain old C memory management instead via Memcached.
&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;br&gt;
&lt;b&gt;Download and install Memcached&lt;/b&gt;
&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;The first thing you need to do is to get yourself a copy of Memcached. You can get downloads and docs on the &lt;a class=&quot;external&quot; href=&quot;http://www.danga.com/memcached&quot;&gt;Memcached web site&lt;/a&gt;. You can build it yourself if you&amp;#39;re a manly man or a womanly woman, but there are some much easier options. 
&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;For example, on Ubuntu or Debian, you can install Memcached with one simple command:
&lt;/i&gt;&lt;/p&gt;
&lt;pre&gt;

   apt-get install memcached

&lt;/pre&gt;
&lt;p&gt;Or, if you&amp;#39;re on Solaris and you&amp;#39;re a &lt;a class=&quot;external&quot; href=&quot;http://www.blastwave.org/&quot;&gt;Blastwave&lt;/a&gt; user, then you can do this:
&lt;/p&gt;
&lt;pre&gt;

   pkg-get install memcached

&lt;/pre&gt;
&lt;p&gt;On Mac, you can probably do something similar with &lt;a class=&quot;external&quot; href=&quot;http://www.finkproject.org&quot;&gt;Fink&lt;/a&gt; or &lt;a class=&quot;external&quot; href=&quot;http://www.macports.org&quot;&gt;MacPorts&lt;/a&gt;. There&amp;#39;s also a &lt;a class=&quot;external&quot; href=&quot;http://jehiah.cz/projects/memcached-win32&quot;&gt;Win32 version&lt;/a&gt; for those less fortunate.
&lt;/p&gt;
&lt;p&gt;And, of course, you&amp;#39;ll have to install Memcached on each machine on which you want to act as a cache server.
&lt;/p&gt;
&lt;p&gt;
&lt;p&gt;&lt;br&gt;
&lt;b&gt;Setup your Memcached caches&lt;/b&gt;
&lt;/p&gt;
&lt;p&gt;Now that you&amp;#39;ve got Memcached installed, you need to start it up. 
&lt;/p&gt;
&lt;p&gt;For example, let&amp;#39;s say you want to have two 2GB caches running on your two machines with IP addresses 10.0.0.40 and 10.0.0.41. One one maching you&amp;#39;d run this command to start the Memcached daemon with 2048M RAM and listening on port 11211.
&lt;/p&gt;
&lt;pre&gt;

$ ./memcached -d -m 2048 -l 10.0.0.40 -p 11211 

&lt;/pre&gt;
And on your other machine 10.0.0.41, you&amp;#39;d start Memcached with this command:
&lt;pre&gt;

$ ./memcached -d -m 2048 -l 10.0.0.41 -p 11211

&lt;/pre&gt;
&lt;p&gt;And, you&amp;#39;ll almost certainly want to set things up so that your Memcached daemons start up whenever your servers start up. On Solaris or Linux that means adding things under the /etc/init.d directory. You&amp;#39;ll have to figure that out for yourself.
&lt;/p&gt;
&lt;p&gt;
&lt;p&gt;&lt;br&gt;
&lt;b&gt;Download and install the Roller Memcached plugin&lt;/b&gt;
&lt;/p&gt;
&lt;p&gt;Next, you need to get yourself a copy of the Roller Memcached plugin and install it into Roller. You can get it from the Roller Support project. Go to the project&amp;#39;s &lt;a class=&quot;external&quot; href=&quot;https://roller.dev.java.net/servlets/ProjectDocumentList&quot;&gt;file download page&lt;/a&gt; and navigate to &lt;b&gt;Roller Support 4.0 / Plugins&lt;/b&gt;, or just use the link below:
&lt;/p&gt;
&lt;p&gt;&lt;a class=&quot;external&quot; href=&quot;https://roller.dev.java.net/files/documents/190/88023/roller-memcached-4.0.tar.gz&quot;&gt;https://roller.dev.java.net/.../roller-memcached-4.0.tar.gz&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;Unzip that file and add the two jars within to your Roller install&amp;#39;s WEB-INF/lib directory. Assuming that the Roller context is in the directory $ROLLER_HOME, you might do that like so:
&lt;/p&gt;
&lt;pre&gt;

$ tar xzvf roller-memcached-4.0.tar.gz 
$ cp roller-memcached/* $ROLLER_HOME/WEB-INF/lib

&lt;/pre&gt;
&lt;p&gt;
&lt;p&gt;&lt;br&gt;
&lt;b&gt;Configure the Memcached Plugin and Roller caching&lt;/b&gt;
&lt;/p&gt;
&lt;p&gt;The final step is to configure Roller to use Memcached for caching.  To do that, you simply add some properties to your roller-custom.properties override file. To use Memcached for all of your caches, set the following property:
&lt;/p&gt;
&lt;pre&gt;   

   cache.defaultFactory=\ 
      net.java.roller.tools.cache.memcached.MemcachedLRUCacheFactoryImpl

&lt;/pre&gt;
&lt;p&gt;If you don&amp;#39;t want to use Memcached for all of your caches, then configure it for just the caches you want. Refer to my &lt;a class=&quot;external&quot; href=&quot;http://rollerweblogger.org/roller/entry/howto_configure_roller_caching&quot;&gt;previous post about Roller caching&lt;/a&gt; for details, but basically you just set the factory for the cache to use the Memcached cache factory. For example, to use Memcached for caching feeds only, you&amp;#39;d add this instead of the above:
&lt;/p&gt;
&lt;pre&gt;

   cache.weblogfeed.factory=\ 
      net.java.roller.tools.cache.memcached.MemcachedLRUCacheFactoryImpl

&lt;/pre&gt;
&lt;p&gt;You also need to tell the Roller Memcached plugin how to find the Memcached servers. To continue with the example we started above with servers 10.0.0.40 and 10.0.0.41, you could add this to set the default Memcached servers for all caches:
&lt;/p&gt;
&lt;pre&gt;

cache.memcached.default.servers=10.0.0.40:11211, 10.0.0.41:11211 

&lt;/pre&gt;
&lt;p&gt;You can also set the servers to be used for specific caches . For example, here we set the weblog feed cache to use two different Memcached servers from that used by the weblog page cache:
&lt;/p&gt;
&lt;pre&gt;

cache.memcached.weblogpage.servers=10.0.0.40:11211, 10.0.0.41:11211 
cache.memcached.weblogfeed.servers=10.0.0.50:11211, 10.0.0.51:11211

&lt;/pre&gt;
&lt;p&gt;
&lt;p&gt;&lt;br&gt;
&lt;b&gt;Fire it up!&lt;/b&gt;
&lt;/p&gt;
&lt;p&gt;Now you&amp;#39;re ready to start up Roller. You might want to add some debug logging the first time around just to make sure things are working. Roller uses Log4j caching and you can add the Log4j properties directly to your roller-custom.properties file. For example, to enable debug caching for the Roller Memcached plugin you&amp;#39;d add this:
&lt;/p&gt;
&lt;pre&gt;

log4j.category.net.java.roller.tools.cache.memcached=DEBUG

&lt;/pre&gt;
&lt;p&gt;And that&amp;#39;s that. Let me know via comments if I&amp;#39;ve left something out or gotten something wrong. I&amp;#39;d also like to hear if you&amp;#39;ve had some success with Roller and Memcached. &lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>https://rollerweblogger.org/roller/entry/howto_configure_roller_caching</id>
        <title type="html">HOWTO: Configure caching in Apache Roller</title>
        <author><name>Dave Johnson</name></author>
        <link rel="alternate" type="text/html" href="https://rollerweblogger.org/roller/entry/howto_configure_roller_caching"/>
        <published>2008-03-03T12:15:00+00:00</published>
        <updated>2008-11-23T17:23:18+00:00</updated> 
        <category term="General" label="General" />
        <category term="apacheroller" scheme="http://roller.apache.org/ns/tags/" />
        <category term="blogging" scheme="http://roller.apache.org/ns/tags/" />
        <category term="caching" scheme="http://roller.apache.org/ns/tags/" />
        <category term="java" scheme="http://roller.apache.org/ns/tags/" />
        <category term="memcached" scheme="http://roller.apache.org/ns/tags/" />
        <summary type="html">Since the early days, Roller has included a pluggable caching system for blog pages and feeds. In Roller 2.1 (early 2006), Sun&amp;#39;s Allen Gilliland rewrote the whole cache system and made it much more flexible and much easier to configure. But, apart from comments in the configuration file, we never provided any documentation for the cache system. In this post, I&amp;#39;ll start to correct that. I&amp;#39;ll explain the basics of how the cache works and how to configure it.</summary>
        <content type="html">&lt;p&gt;Since the early days, Roller has included a pluggable caching system for blog pages and feeds. In Roller 2.1 (early 2006), Sun&amp;#39;s Allen Gilliland rewrote the whole cache system and made it much more flexible and much easier to configure. But, apart from comments in the configuration file, we never provided any documentation for the cache system. In this post, I&amp;#39;ll start to correct that. I&amp;#39;ll explain the basics of how the cache works and how to configure it.
&lt;/p&gt;&lt;p&gt;&lt;b&gt;Overview&lt;/b&gt;
&lt;/p&gt;
&lt;p&gt;Displaying a blog page can take dozens of database queries and database queries can be expensive. They take time, consume CPU cycles and typically use network bandwidth. Roller&amp;#39;s built-in caching system addresses this problem by caching generated pages and feeds. By default, Roller caches pages and feeds in memory using a Least Recently Used (LRU) algorithm and by default caches are configured appropriately for a 100 blog system. If you are running a site with more blogs or a very high-traffic site, you should consider changing the caching configuration. First,  let&amp;#39;s discuss how the caches work.
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Cache invalidation and expiration&lt;/b&gt;
&lt;/p&gt;
&lt;p&gt;When Roller generates a page, it puts a copy of that page in a cache. The next time that a request comes in for that page, Roller returns the page from the cache. When a blog changes, Roller &lt;i&gt;invalidates&lt;/i&gt; the blog&amp;#39;s cache enties, i.e. it throws that blog&amp;#39;s pages out of the cache. And by default, when the cache is full and we need to add a new entry to the cache, we push out the least recently used entry in the cache to make room; that&amp;#39;s the LRU algorithm I mentioned before.
&lt;/p&gt;
&lt;p&gt;Sometimes, a blog page includes things that change frequently like a list of referrers or a server-side hit counter or data from some other source. We don&amp;#39;t want to invalidate a blog&amp;#39;s cache entries every time a hit is counted. That would defeat the purpose of the cache. So, by default Roller uses an &lt;i&gt;expiring cache&lt;/i&gt; that automatically invalidates cache entries after timeout period. 
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Cache configuration&lt;/b&gt;
&lt;/p&gt;
&lt;p&gt;To configure the Roller caches, you add properties to your roller-custom.properties properties override file. You can learn more about this override in Section 6 of the Roller 4.0 Installation Guide and you can find a complete list of the properties you can override in Section 11.
&lt;/p&gt;
&lt;p&gt;First, let&amp;#39;s cover the default caching mechanism. If you&amp;#39;re running  a large and high-traffic site, you &lt;i&gt;might&lt;/i&gt; want to consider using the non-expiring cache or setting the cache timeout very high (4, 6 or 12 hours).  Here&amp;#39;s how you tell all caches to use the non-expiring cache:
&lt;/p&gt;
&lt;pre&gt;

   cache.defaultFactory=org.apache.roller.util.cache.LRUCacheFactoryImpl

&lt;/pre&gt;
However, if you do that, then blogs that use Roller&amp;#39;s built-in hit counter or that display referrers will not be updated as often as your users would like. So, you might want to consider removing the #showReferrersList() macro from any themes in use on your site.
&lt;p&gt;&lt;b&gt;Configuring Roller&amp;#39;s four page and feed caches&lt;/b&gt;
&lt;/p&gt;
&lt;p&gt;You can configure caching differently for the different types of pages and feeds produced by Roller. There are four separately configurable caches. Here are their names and an explanation of each:
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;&lt;b&gt;weblogpages&lt;/b&gt;: this cache is used to cache weblog pages
&lt;/li&gt;&lt;li&gt;&lt;b&gt;weblogfeeds&lt;/b&gt;: this one is for weblog RSS and Atom feeds
&lt;/li&gt;&lt;li&gt;&lt;b&gt;sitewide&lt;/b&gt;: this is for the aggregated front-page blog and it&amp;#39;s RSS/Atom feeds
&lt;/li&gt;&lt;li&gt;&lt;b&gt;planet&lt;/b&gt;: this is for feeds produced by Roller&amp;#39;s built-in aggregator
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;And for each one of these caches you can configure these properties:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;enabled&lt;/b&gt;: for debugging purposes you can completely disable a cache by setting it&amp;#39;s enabled property to &amp;#39;false&amp;#39; 
&lt;/li&gt;&lt;li&gt;&lt;b&gt;size&lt;/b&gt;: sets the total number of entries allowed in a cache, each entry holds one page or feed response.
&lt;/li&gt;&lt;li&gt;&lt;b&gt;timeout&lt;/b&gt;: the number of seconds that an entry is allowed to remain in the cache. After this time expires the entry will be removed from the cache.
&lt;/li&gt;&lt;li&gt;&lt;b&gt;factory&lt;/b&gt;: set the classname of the cache factory to be used for this cache, otherwise default cache will be used
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Cache property names follow the pattern cache... The best way to understand how this works is to look at the default cache configuration used by Roller:
&lt;/p&gt;
&lt;pre&gt;

# Weblog page cache (all the weblog content)
cache.weblogpage.enabled=true
cache.weblogpage.size=400
cache.weblogpage.timeout=3600

# Feed cache (xml feeds like rss, atom, etc)
cache.weblogfeed.enabled=true
cache.weblogfeed.size=200
cache.weblogfeed.timeout=3600

# Site-wide cache (all content for site-wide frontpage weblog)
cache.sitewide.enabled=true
cache.sitewide.size=50
cache.sitewide.timeout=1800

# Planet cache (planet feeds)
cache.planet.enabled=true
cache.planet.size=10
cache.planet.timeout=1800

&lt;/pre&gt;
&lt;p&gt;The default cache configurations above are setup for a 100 weblog system.  To some extent, this is guess-work. For example, we&amp;#39;ve decided to cache 4 pages and 2 feeds for each blog. That&amp;#39;s how we arrived a cache.weblogpage.size=400 and cache.weblogfeed.size=200. And we&amp;#39;ve decided to cache blog entries for 30 minutes and feeds for one hour. That&amp;#39;s how we arrived at cache.weblogpage.size=400 and cache.weblogfeed.timeout=3600. 
&lt;/p&gt;
&lt;p&gt;You might decide to do things a little differently on your Roller system.  Copy the properties above to your roller-custom.properties file and set them to values you thing are appropriate for number of weblogs, average page size, traffic levels and JVM heap size of your Roller installation.
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Conclusion&lt;/b&gt;
&lt;/p&gt;
&lt;p&gt;Roller default cache configuration will work well without modification for a small to medium size Roller installation, but for large high-traffic sites you should increase cache sizes and think carefully about timeouts. And if you&amp;#39;re running Roller in a cluster you might want to consider using a distributed caching system like &lt;a class=&quot;external&quot; href=&quot;http://www.danga.com/memcached&quot;&gt;memcached&lt;/a&gt;. I&amp;#39;ll discuss that in my next HOWTO.
&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;</content>
    </entry>
</feed>

