Skip navigation

POJO Clustering

Terracotta works with or without a container. Terracotta works with Open Source and proprietary frameworks. This is because Network Attached Memory works with the POJO's in those frameworks and it works the same for your own POJOs. No Spring beans, getters and setters, serialization, or other interfaces are required in order to use the technology.

Terracotta also supports Spring explicitly so when you decide to wire up your application using Spring's dependency injection, or when you start to use frameworks and abstractions like Spring Webflow, or Spring Batch you can cluster those applications without the need for RMI or Spring Remoting in your application.

Terracotta can cluster any POJO, not just HashMaps and HTTP Sessions.

This unique ability gives the developer the ability to cluster any data structure that Java already provides.

All Java Objects can be clustered, for example:

  • Java.util.concurrent.LinkedBlockingQueue
  • Java.util.concurrent.CyclicBarrier
  • Java.util.Hashtable
  • HashMap
  • ArrayList
  • Any POJO you write yourself!

Distributed synchronized/wait()/notify()

Normal Java semantics are preserved across the cluster. Threads in other nodes behave exactly the same as if they were threads in a single node.

No Serialization

Terracotta does not require objects to implement Serializable. Object replication is done using fine-grained changes which means POJO clustering is fast and efficient.

Java API

Code only to the Java model. Object identity is preserved meaning "==" in one JVM works when clustered in another JVM.

Virtual Heaps

Terracotta dynamically pages objects in and out of your local Heap. This means no more OOMEs, and a very simple, consistent programming model for accessing large datastructures - the standard JVM clustered with Terracotta behaves as if the Heap has hundreds of Gigabytes available!

Resources

Adaptavist Theme Builder Powered by Atlassian Confluence