Coconut Cache is an in-memory Java based caching framework licensed under the Apache License Version 2.0. Coconut Cache has no external dependencies and is very easy to embed into external applications. It is available as a single jar and requires a Java SE 5 JVM (or later) to run.
While it only supports in-memory caching currently. Disk-based storing and distributed caching will be available in future releases.
Check out the Quick Start Guide to get a quick and easy introduction to Coconut Cache. You only need to download a single jar and copy 10 lines of code to have a simple example up and running. Or look at the next section for individual functionality.
Cache Features and Services
Most of the functionality of Coconut Cache is grouped into separate service areas. All services can be configured both programmatically or via XML.
Here is an overview of the various services currently available in Coconut Cache.
| Service | Description |
|---|---|
| Events | It is possible to define event handlers that are called whenever different types of cache events arise. Such as when a cache is cleared or when entries are added, removed or updated. |
| Eviction | A lot of different replacement policies are available. Some of the more advanced policies evict data based on their individual size and the cost, for example, in terms of access time to retrieving the data again. |
| ExceptionHandling | Features a very flexible error handling mechanism supporting popular logging frameworks such as Log4j, java.util.logging and others. |
| Expiration | Policies can be defined for when data is no longer valid and must no longer be returned by the cache. |
| Loading | Cache loaders are any an easy way to load data and content from external application or storage. Data can be transparently refreshed at certain intervals or according to custom policies. |
| Management | Local and remote (JMX) monitoring and management of cache instances and all of its services. |
| Servicemanager | Bind custom services to the life cycle of the cache. Making it easy to extend the functionality of a cache. |
| Statistics | Delivers detailed statistics about hit ratios, cache misses, access time, update time and more. |
| Worker | Controls the execution of asynchronous tasks in the cache. Allows for flexible threading policies. |
Cache Concepts
| Area | Description |
|---|---|
| Cache Attributes | Cache Attributes can be used to define individual properties of cached elements. For example, when is was last updated or how times it has been accessed. |
| Cache Configuration | See more details on how you can configure a cache both programmatically and via XML. |
| Cache Lifecycle | Describe the series of states that a cache and its services passes through from the initial creation to the their termination. |
| Cache Entries | Hmm, not much functionality besides holding onto attributes |
Other documentation
| Area | Description |
|---|---|
| Cache TCK | The test compatibility test suite used to test cache implementations against for making sure they are consistent with the specification. Contains around 600 tests. |
| Performance Comparison | See how Coconut Cache compares to other popular caching framework both performance and memory usage wise. |
| Feature Comparison | See how Coconut Cache compares to other popular caching framework in terms of features. |
Latest news
(Misc Codehaus News) |
|---|
|
Confluence infrastructure changes
There will be intermittent outages to Confluence during the window to upgrade the JVM and make threading changes. This is part of the ongoing effort to stabilise Confluence. Unity powered sites will continue to operate during the outage. |
|
Fisheye upgrade
We’ve had quite a few issues with repositories; the recommendation from Atlassian is to upgrade; so we’re doing an emergency upgrade to try and quell the issues. Sit back and relax. |
|
Spam attack
There is yet another fine spam attack occurring. There are 42K messages in the queue and they will take time to clear. We are investigating acquiring a new server to cover mail requirements. (We’ve moved to UCE DNSBL 1+2; and switched to an rsynced version rather than the direct DNS query version) |
|
codehaus03 mail slow
Email is currently backed up due to DNS issues (that mean we can’t use the spamhaus DNS RBL). You WILL receive your email; but it might take some time. We are also aware of the issues in resending the verification messages and will be fixing that later today. Please be patient – and blame the spammers (and an almost perfect storm) |
|
Confluence outage
We’re upgrading docs.codehaus.org to run on Tomcat to try and resolve some out-of-memory issues. The outage should be far less than 2 hour. Unity powered sites should be unaffected by the outage. |
|
PostgreSQL on codehaus04
We now have a PostgreSQL database on the build server. Raise a chore to get databases / users created for your builds. |
|
Mail Archive
There is an outage on the mail archive due to a data migration failure. This is being repaired by Contegix and everything should be online at the end of this outage. In the interim, you can use http://codehaus.markmail.org/ for all your archive needs. |
|
ical
You can now subscribe to an ical feed of outages and other time based events. This capability will be rolled out Xircles wide at some point (so projects can schedule events etc). For the main outage feed; point your calendar at: webcal://xircles.codehaus.org/ical or http://xircles.codehaus.org/ical Any issues; let us know – support hat codehaus.org |
|
Confluence 2.8 upgrade #2
Confluence will be upgraded to version 2.8 Start: July 5, 2008 03:00 AM (CDT -0500) Sites that use the Confluence back-end (“Unity” powered) will remain available during this outage. Apparently there are some minor theming issues with 2.8; so if you have made theme edits in Confluence (only a handful of projects); please check your sites to ensure they display correctly after the update (as we may not notice certain nuances). (This is a repeat outage after a failure last week; we have successfully upgraded into a staging environment and corrected the issues that caused failures last week) |
|
Confluence 2.8 upgrade
Confluence will be upgraded to version 2.8 Start: June 28, 2008 03:00 AM Finish: June 28, 2008 07:00 AM Sites that use the Confluence back-end (“Unity” powered) should remain available during this outage. Apparently there are some minor theming issues with 2.8; so if you have made theme edits in Confluence (only a handful of projects); please check your sites to ensure they display correctly after the update (as we may not notice certain nuances). Outage window extended – upgrade proceeding well but slowly Upgrade failed; issues have been escalated to Atlassian and we’ll try again next weekend |
|
Xircles upgrade complete
The Xircles upgrade is now complete; with almost all functionality back in working order. If you receive an error page from Xircles; you do not need to notify us as we are automatically emailed all the details and will be working on fixing it as time permits. The changes that were made are mostly internal and will allow us to support a distributed VCS like Git / Mercurial in the near future. These changes also allow us to support multiple repositories for a single project (an extension of the “contrib” concept). This will be of use to many projects that have requested this feature in the past. |
|
Xircles upgrade
Xircles will be upgraded this evening; taking out various services while the upgrade and data migrations complete. Start: June 21, 2008 04:00 AM -0500 (CDT) Finish: June 21, 2008 08:00 AM -0500 (CDT) Subversion will be the most noticably affected system; commit access will be interrupted while LDAP is resynchronised. |
|
FishEye instability (tarball downloads disabled)
FishEye is currently experiencing some “issues”. This is being actively pursued by Atlassian who have identified some bugs that were causing instability. We have been given a workaround (disabling the tarball downloads); and should have a patched version of FishEye in the near future. |
|
Codehaus outages
Various parts of Codehaus will be offline for system upgrades. UPDATED – Moved to Saturday morning + 1 week After this period; you may notice glitches in the Xircles interface; this is due to a whole-sale rewrite of some under-the-covers parts. This will set us up for the implementation of a DVCS (distributed version control system) and better security integration between our satellite systems such as Confluence / JIRA etc. *We’ve pushed this upgrade back to improve several key features * |
|
Bamboo upgrade to 2.0.2
An upgrade to Bamboo will occur at the listed time. This is to deal with some severe memory leak issues we’re facing. |
|
Fisheye 1.5.1 upgrade
Fisheye will be upgraded to 1.5.1 this evening. |
|
Disk usage
We’re on a collision course with running out of space on codehaus03 (the grunty server with all your artifacts). To that end, we will be pruning SNAPSHOT distribution and SNAPSHOT repositories over the weekend. This pruning will progressively remove older artifacts until we have appropriate breathing space. Please contact us if you have any questions / concerns. |
|
Bamboo instability
We are aware of the Bamboo instability under the new strain of new users. We’re working with Atlassian to get the bugs fixed and a new version deployed, but it will be a week or two. |
|
Continuous Integration
Codehaus is mostly excited to now offer integrated continuous integration services. This service is provided by a Contegix managed server in our core network. There are several things that still remain to be improved, but you are free to start making requests in JIRA for assistance setting up plans etc. Please subscribe to discuss@codehaus.org if you wish to discuss new capabilities / requirements from CI (e.g. pushing snapshot artifacts across to the distribution / repository servers) |
|
CI Server Provisioned
The new server for continuous integration has been built. We will be loading the required software (Bamboo and Hudson) onto it over the next few days. Bamboo is loaded, however needs quite a bit of tweaking to build properly We will be addressing the Bamboo configuration over next 2 days |
