CallBacks / Reap Listener

I've just uploaded a new build of the CacheBox core framework including a new version of the cacheboxagent.cfc and modifications to the service. These changes add support for a callback to your application when content is deleted or reaped from the cache, which Mark Mandel needed to integrate it with Transfer. This adds a new "ReapListener" init argument to the cacheboxagent.cfc following the "evict" argument, which accepts a CFC object. This object must have a single "ReapCache" method like this:

<cfcomponent displayname="ReapListener" output="false">
   
   <cffunction name="init" access="public" output="false">
      <cfreturn this />
   </cffunction>
   
   <cffunction name="ReapCache" access="public" output="false">
      <cfargument name="cachename" type="string" required="true" />
      <cfargument name="content" type="any" required="true" />
      <!--- execute clean-up code here --->
   </cffunction>
   
</cfcomponent>

CF on Wheels Plugin

Mike Henke has taken the original CF on Wheels sample code that I created and turned it into a plugin for Wheels. Thanks, Mike! You can read more about it on the CF on Wheels discussion group here.

Google Group

I already had a couple of google groups for the other two projects I maintain when Mike Henke asked me about a group for CacheBox, so I figured I should probably create one. :)

http://groups.google.com/group/cfcachebox

Released Version 0.9.8 with Fix for Cluster Agents

Since the beginning with CacheBox, I've always had this idea that the service should be able to adjust itself to accommodate whatever resources are available, independent of the requests from the agents. So if an agent requests placement in the Cluster context and there isn't any cluster storage available, the service should automatically downgrade to the next available context, specifically the server context.

I just realized today while testing integration with DataFaucet that this wasn't actually working, so I had to fix that and it also required a modification to the CacheBoxAgent.cfc. So the service is now up to version 0.9.8 and the Agent is up to version 1.3. If you have an agent in your distribution, you should update it.

So now if you have an agent that requests the cluster context and there isn't any cluster storage then when you view the agent list, that agent will appear in the server context instead. The detail for the agent however will show two lines - context and requested context, indicating that the agent has been automatically downgraded to another context. If it hasn't been downgraded, then it won't show the "requested context" line in the detail.

0.9.7 BETA Released

Not too much going on in this release. A few bug fixes -- timehit wasn't being updated in the cache metadata, so I fixed that. And if you had restarted the server or the CF service and then refreshed a page with the detail for an agent before the agent registered, you'd get a CF error, so I added a friendly error message in the management application that explains what's going on there.

I also added a plugin installer for the onTap framework -- I just finished up the initial 3.3 release of the onTap framework that makes use of CacheBox for several aspects of caching that had already been built-in to the framework. What's interesting about the plugin installer is that it doesn't actually do anything in the onTap framework itself, it just downloads the latest version of CacheBox. The reason why it doesn't do anything in the onTap framework is because this latest version of the framework already includes the CacheBoxAgent.cfc, which makes it independent of the CacheBox service. So you can run the onTap framework still with or without CacheBox, you just don't get any of the expiration policies, cluster syncing or other fancy features. I did run into a couple issues with the installer though and had to upload the CacheBox.zip and the plugin zip archive a couple times to get it to work right. And it's on the plugin webservice now, so once you've downloaded the onTap framework you can install CacheBox automatically from within the plugin manager without needing to download it separately.

My next task is updating the caching features in DataFaucet. :)

New Samples including ColdBox in 0.9.6 BETA Released

I fixed a few bugs in this next release. I've also finally got a ColdBox sample in there, and a stand-alone blog sample. The ColdBox sample has been partially tested. (I haven't tested the Mach-II sample or the DataMgr sample yet.)

I also managed to simplify the custom eviction policies quite a bit thanks to the addition of an expire() method in the agent CFC that allows you to flag content as no longer valid without immediately deleting it. If you've got a lot of content in cache, using expire() instead of delete() may result in faster page load times for your users, in exchange for allowing the content to hang-out in memory a bit longer until the next reap-cycle (which by default happens once per minute). Expired content won't be returned from a fetch operation, so it's otherwise functionally the same as deleting the content.

New Password and Login Version 0.9.5 BETA Release

So the frustration yesterday was with the fact that the security would be a challenge for folks setting up clusters and configuring them to auto-sync storage types and agents. So today I recoded the security and added a password and a login form much like the ColdFusion Administrator. I updated the documentation -- the installation instructions are actually simpler now. :) And I uploaded version 0.9.5 with the changes.

Cluster Synchronization in Version 0.9.4 BETA Released

I've uploaded another point release (0.9.4 BETA), with a new Cluster tab that allows you to configure your servers in a cluster to auto-sync. What this means is that when you configure a storage type that supports the cluster context or when you configure a cluster agent, all the servers in your cluster will be updated with the new configuration automatically from the management application. For those of you with several servers in your cluster, this should really help keep your maintenance down to a minimum.

I will say though that I'm not entirely sure what to do about the links to alternate servers. Right now the links show up in the cluster tab, but don't work by default because the management application only works on the localhost for security reasons. Which means if you want the links in the cluster tab to work, you have to create a config.cfc and edit the applyRequestSecurity() method to tell it what IP addresses are safe. I suppose there won't be a huge number of people who run into this issue, since it only applies to people with clusters, but it's still not as easy to install the cluster as I'd like. Maybe I'll have some better ideas later on.

In the meantime I hope everyone's enjoying the new tools. :)

50 Downloads in the First Week!

I just uploaded version 0.9.3. I've managed to add samples of CacheBox integration for the Mach-II framework and for Steve Bryant's DataMgr tool (a data access layer). I haven't tested either of these yet. I've also updated the documentation again and added some information about using CacheBox for singleton storage and for managing sessions with it. It's not exactly what I had hoped for in terms of samples, but it'll do. :) I'd still like to get a simple blog or something in there if anybody knows of a small one that caches its content. I haven't found one yet, they're all at least 1MB download and I don't want to add something as a sample that's larger than the CacheBox. Anyway there's a new download on the project home page.

There've been about 50 downloads so far in just the first week. I'm still looking forward to hearing what everyone thinks! :) I know Matt Gersting integrated it into FuseCache for Fusebox applications, and said that he likes the management application so much he's probably going to use CacheBox for most of his caching. So that's one in the win column. ;) Where does everyone else stand? Am I doing a good job with the documentation? Is it working for you? Have you found any bugs? Is it just so good that everyone is speechless? :)

Version 0.9.2 BETA released w/ Fix for duplicated miss-counters

I was finally able to make a few minutes to sit down and seriously investigate the duplicated miss-counters bug mentioned in the release notes of the last 2 point versions. It turned out to be pretty easy to find and fix once I had the time to sit down and test it.

This is getting pretty close to a release candidate. Mostly before I declare it an RC, I'd like to include a sample application in the distribution.

I was hoping to use BlogCFC as a sample application, but it's gotten a lot bigger since the last time I installed it and I'm not wanting to include something that large. It's well more than twice the size of the whole CacheBox distribution as is right now. If you've got an older copy of BlogCFC, or if you know of another smaller open source project that caches content, send me an email. Thanks!

Version 0.9.1 w/ Memcached Support Released

I just incremented the version number to 0.9.1 because I got the memcached storage type coded and tested. Support for memcached requires installation of the cfmemcached project as well. Cool thing about that is it's just a matter of unzipping cfmemcached into your web root and then it's basically ready. You may also have to configure the storage type in the CacheBox Management App to provide the IP addresses of your memcached servers if you're running several distributed servers. I also managed to get the storage type to test to make sure a memcached server connection is available, so if you put in bad IP addresses, it will tell you that the storage type is still not ready. So if it says memcached is ready, it's really ready. :)

I also did a little more work on the documentation, added some information about supported engines, a namespace primer and a bit of clarification about contexts.

More Entries

BlogCFC was created by Raymond Camden. This blog is running version 5.5.006. | Protected by Akismet | Blog with WordPress