Terracotta 3.3, Ehcache 2.2 Betas Go Live Tonight!

DZone 's Guide to

Terracotta 3.3, Ehcache 2.2 Betas Go Live Tonight!

· Performance Zone ·
Free Resource
This news came down today through the Twitter stream with a few links and tidbits of info to share.  Terracotta and their Ehcache, Hibernate, and Quartz products are still on a roll with speedy releases coming almost on a monthly basis.  You can grab the beta when it goes live tonight (US Pacific time I think).

Enterprise Edition Exclusive Features

New in Terracotta 3.3 is an enhanced storage option for Ehcache that dramatically lowers local heap usage and increases the addressable cache size by 10x.  This new optional storage strategy can be configured per cache and enabled with a new XML attribute of the <terracotta> subtag - storageStrategy="DCV2".  The strategy is designed to support caches with a high number of entries (depending on the use case - up to 100M items) and a high number of nodes, maintaining linear scale for high write throughput rate use-cases, even with large numbers ( e.g. >10 - of L1s).  This storage mode works with an optional client side cache, which has the added benefit of meaning that the memory required on the client is fixed - making it easy to tune.  The client-side cache is not enabled by default because it's still rough around the edges.  Terracotta Enterprise 3.3 also supports LDAP authentication for controlling access to the Developer Console and Ops Console.

Developer Console and Clustering Enhancements

The Terracotta Developer Console will feature new control panels for Web Sessions and Quartz in 3.3.  In addition, the tree hierarchy has been reorganized to simplify usage for new users.  Simplified Cluster Configuration will allow automatic selection of sensible defaults (-n usage is now optional in most cases, port selection is automatic).

Current Developer Console

New Terracotta Toolkit APIs

The Terracotta Toolkit has gotten a very warm reception by the community and it now features a new Common Runtime library that reduces memory usage, network connections, and provides new common developer constructs (concurrent maps, locks, counters, queues, an evictor etc.).  The functionality in this library is frequently updated, so users particularly interested in this are recommended to also look at the latest nightly builds.  Steven Harris explains this toolkit in more detail:

"The toolkit will have highly concurrent maps, locks, counters, queues, evictors and more so stay tuned.  All of the toolkit classes will have tests in our TCK. The toolkit will run on any 1.5/1.6 JVM and requires no boot-jars, agents or container specific code. Given versions of the TCK will allow people to just drop in that toolkit jar at runtime for any app developed using that version of the API provided by the version of the TCK."

The Terracotta Toolkit is for developers to easily build scaled out frameworks, tools, and apps.  The client libraries have been refactored so that now when clustering each of the core use cases a common shared jar is required:  common/terracotta-express-runtime-<version>.jar  This reduces the number of L1-L2 socket connections from applications that use multiple client types (Ehcache, Sessions etc) and in such cases also reduces permgen heap usage.

Specifically New in the 2nd Beta
  • Cluster Configuration Simplification - adding passives via Ops Console (Enterprise Feature)
  • Operational Simplicity - Operational event monitoring - for cluster management, control and behavior analysis. Delivered via an Events Console and JMX API (Enterprise Feature)
  • Operational Simplicity - Simplified configuration of heartbeat and reconnect though template sets

For those of you who don't know about Terracotta's mission statement, they are an open source company that provides commercial support and enterprise features on top of their free products (although the free software has enterprise-caliber features as well).  Their goal is to help developers be successful using Ehcache for performance, Hibernate for an ORM, Http Web Sessions for user state, and Quartz for scheduling in a single node application.  Then, without much thought or effort, add a couple lines of config to achieve scale-out and high availability via the Terracotta server (in traditional datacenters or the cloud.)  As the company moves forward with its releases it will focus on simple scaling, improved visibility, simple high availability, and modularity. 

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}