- There is no more requirement to call setAttribute() to force data replication. Mandating the use of setAttribute() is error prone (forgetting to use it), and it is inefficient (leading to performance problems) if needlessly invoked. DSO is built from the ground up to record and distribute fine grained (field level) changes automatically. Furthermore, those fine grained updates are only sent to the set of nodes that actually hold instances of the affected object. In the case of sticky sessions, that set will almost always be empty.These benefits are possible due to Terracotta's hub and spoke architecture, where one instance of Terracotta's server maintains's the master cache and coordinates what working sets of data live on which nodes, and also controls failover. This reduces I/O and memory overhead between servers by eliminating the need for paired-server failover tactics which require each server in the cluster to share all clustered memory state with one other server (and vice versa) for failover purposes.
- Session data only exists in memory on those nodes that have actually accessed a particular session. Furthermore, since DSO takes care of managing memory, only the minimum working set of session data will stay resident on the heap (leaving more for your application). You no longer have to allocate precious heap space just to store replicated session data that may never be referenced. Additionally, since the heap is no longer the bottleneck, the idle/timeout period before a session is invalidated can be virtually unlimited.
- DSO is not based on java serialization, thus the problems with object identity, 3rd party libraries, etc are likewise not present with objects placed into session. (see: Object Identity and Tradition).
Terracotta has not published any benchmarks to measure performance of their DSO compared to WL's built in infrastructure, but claim that performance was close to that of WL on a single server (not clustered), as opposed to WL clustered which is 50% slower.
More information has been published on Terracotta's blog.