I have been playing with Anonymous Page Cache in 1.9 and a few other new caching features like the compressionFilter and maxAgeFilter. I've very happy to see that you are improving the cache-ability of clearspace. Especially considering the standar 90% anon viewing 10% active user ratios that are often quoted.
I had a few issues
1) My log is filled with anonymous authentication exceptions when anonymous users come to site. It makes debugging a difficult and I know i could filter it out in log settings but it seems like there should be a better way.
2008.01.11 00:01:46 Invalid username/password. javax.naming.AuthenticationException: Invalid username/password. at sun.reflect.GeneratedConstructorAccessor59.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at com.jivesoftware.util.Errors.failIf(Errors.java:32) at com.jivesoftware.spi.user.impl.db.AuthenticationProviderImpl.login(AuthenticationProviderImpl.java:38) at com.jivesoftware.base.AuthFactory.authTokenFromAuthProvider(AuthFactory.java:367) at com.jivesoftware.base.AuthFactory.createAuthToken(AuthFactory.java:315) at com.jivesoftware.base.AuthFactory.getAuthToken(AuthFactory.java:180) at com.jivesoftware.community.web.filter.JiveCacheFilter.doFilter(JiveCacheFilter.java:177)
curl -D headers.out --compress http://myapp/clearspacex/themes/custom/resources/overlay.js
HTTP/1.1 200 OK
Set-Cookie: JSESSIONID=42ADDA61D92FFF2A7B9B3FD4BF6C07DF; Path=/home
Last-Modified: Thu, 10 Jan 2008 06:52:42 GMT
Date: Fri, 11 Jan 2008 05:21:46 GMT
2) I wanted to use the maxAgeFilter for avatars but it looks like you already add
max-age=60 in the image server
and this didn't seem to work (any suggestions)?
3) Your web.xml had the wrong path from feeds in for the compressionFilter.
<filter-mapping> <filter-name>compressionFilter</filter-name> <url-pattern>/feeds/*</url-pattern> It should be <url-pattern>/community/feeds/*</url-pattern> </filter-mapping>
4) maxAgeFilter didn't cover themes, we've done custom themes and most of js files live there. It would be nice if these were defaulted.
<filter-mapping> <filter-name>maxAgeFilter</filter-name> <url-pattern>/themes/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>maxAgeFilter</filter-name> <url-pattern>/scripts/*</url-pattern> </filter-mapping>
5) I wanted to move some of the anon page caching up further (apache proxy cache) but it seems that each anon user gets a session and has the fact that they are an anonymous user in the session (ANONYMOUS_USER_ID = -1). Why do anon users need a sessions (if we disable anonymous actions)? Would it make sense to set an cookie with an anon value so that apache or other front end webservers could do the anon page caching based on the cookie value?