This spec aims at improving the support of Ehcache in Ubuntu and drive toward the packaging of the full Terracotta stack (Terracotta Clustered Cache).

Release Note

Ubuntu 10.10.10 ships with an updated version of ehcache (2.1) and allows to install Terracotta Clustered Cache.


Ehcache is a standards-based cache used to boost performance, offload the database and simplify scalability. It is the most widely-used Java-based cache, and can scale from in-process with one or more nodes (ehcache library) to a mixed in-process/out-of-process configuration with terabyte-sized caches (Terracotta Clustered Cache server array). It makes perfect sense in our Cloud OS strategy.

User stories

As a Java application developer, I want to use ehcache as part of my system. I use ehcache 2.1 in Ubuntu and I get efficient in-process caching.

As the same developer sometime in the future, I want to scale out my cache. I use the Terracotta stack available in Ubuntu and I get efficient standalone caching.


This spec is about enabling Terracotta to deliver their stack into Ubuntu. We'll need their help in analyzing dependencies and making the upstream build systems behave, while we'll teach them missing packaging skills.



The plan would be to upgrade to 2.1.

Build dependencies:

  • From 1.5.0: commons-logging, commons-collections3, servlet2.4, backport-util-concurrent, jsr107cache, hibernate3, jgroups
  • Additional (already done): JTA, slf4j
  • Additional (package needed): bitronix (ant-based, no deps) -- now in debian (libbtm-java 1.3.3)

Build system:

  • Maven system, unclear what "ehcache 2.1" is looking at the website


Build dependencies:

  • Ehcache-core ?
  • ...

Terracotta server

Build dependencies:

  • Ehcache-Terracota ?
  • JRuby ?
  • ...

Terracotta clustered cache

Build dependencies:

  • Terracotta server ?
  • ...


Early actions:

  • Terracotta to investigate the build deps for Terracotta *
  • Ubuntu to engage eucalyptus to make sure they work with ehcache 2

See server-maverick-uds-ehcache-integration whiteboard for details.

Test/Demo Plan


Unresolved issues

Missing the dependency analysis, which is necessary to set acceptable targets.

BoF agenda and discussion

UDS discussion notes

Current situation

  • ehcache 1.5.0 in Debian/Ubuntu universe
  • Duplicated into eucalyptus-commons-ext in main
    • same for hibernate, spring, etc
  • Not in main currently because:
    • Depends on Hibernate -> JBoss4 libs -> more JBoss4 libs -> GF toplink essentials...

Plan A: Move current to main

  • Needs 33 main promotions to go to main (as is), including jbossas4 and glassfish
  • Question of resources/gain, only matters for Canonical, not really a technical issue
  • All 1.5.0 deps not in main are also deps of 2.1. We can move both or only latest.
    • Works with Hibernate 3.1 / 3.5
  • Not relevant to debian or ubuntu, prefer plan B

Plan B: Moving to ehcache 2.1

  • ehcache 2.x
    • core (needed for compat)
      • already done: JTA, slf4j
      • needed: bitronix - easy
    • Terracotta-Ehcache
    • Terracotta server
      • Build-depend on JRuby
    • Target (10.10?): clustered cache (needs terracotta server)
  • Future
    • standalone HTTP server (not needed by clustered cache)
    • ...
  • Apparently uses maven as build system ?


  • Terracotta to investigate the build deps for Terracotta *
  • Ubuntu to engage eucalyptus to make sure they work with ehcache 2
  • Ubuntu: Update to ehcache-2.1 <- mentoring (sync it back to debian when done)

  • Debian to consider looking into JRuby situation
  • Canonical to consider spending the resources to push hibernate to main


EhcacheSpec (last edited 2010-06-02 06:39:19 by lns-bzn-48f-81-56-218-246)