Fall 2009 Day 2 - Terracotta
TERRACOTTA
Hibernate
cache raw compenent types, no objects
1st level cache (tied to db connection, goes away when db connection
goes away)2nd level cache (avoid going back to db, pluggable, ehcache most
common, terracotta another option)needs to be across cluster for writing data
ehcache
option for clusterwide Hibernate 2nd cache
uPortal boxes all have to talk to eachother, get 5-10 becomes problem, exponentially chatty
Terracotta (open source)
option for clusterwide Hibernate 2nd cache
could use it directly as well
advantages in clustering, sharding
separate service, not run on uPortal boxes
less "chatty", all uPortal boxes talk to same terracotta box, this
allows "sharding" (see below)keeps data as Hibernate 2nd level objects (however those are done), like a shared memory for all uPortal boxes, "network attached memory" (like NAS for memory)
mark a particular part of application object as "distributed"
could be called an object oriented db, persists all of its cache to disk
data persists until orphaned, then its garbage collection
use to cluster Tomcat http sessions
does it better that Tomcat own session clustering for same
"chattiness" issuestill doesn't get around serializable requirement, but has config option in case you can't serialize in Java code
Big Savings: "sharding", only possible with terracotta's less-chatty architecture, terracotta will only push one box's cache to other boxes when other boxes look for it
? should people worry about clustering with uPortal?
Cris doesn't see big value to clustering http options, e.g. Madison only gets 1.7 requests per login, little chance for failover there
important for Sakai, e.g. things go boom in the middle of an exam
UofC will be in between
uPortal, 2nd level Hibernate cache for layout
trend in uPortal has been that session cache is becoming more serializable
Stuff going on
Sakai
Cris used in Sakai instance for John Wiley&Son, will be part of
Sakai 2.7 (code freeze Nov. 20 to meet late Winter/early Spring release)capabilities will be in Sakai, up to implementers to turn it on
with it on you should be able to fail over without having to log back in
for app specific things, e.g. an exam, you can terracotta-enable tool by tool, some tools don't have much state and don't need it
Hibernate 2nd level thing is huge
uPortal session is possibility, Eric has been thinking about it
Cris interested in finding uPortal instance where big gains can be made with terracotta
sidenote: there is a way to plug terracotta behind an ehcache
terracotta can be used without Hibernate, use configs to cache without app even knowing (good and bad)
"super static" - local static class attr, cluster in terracotta config, now static across cluster, not just local JVM
Webinar on changes made to Sakai October 29th 10:30 am pacific
possible alternative to db, does data really need to be in a db? e.g. Sakai "presence" data
questions? Talk to Cris, also the Terracotta guys are very accessible