|
CODE: TERRACOTTA-01-02 DURATION: 2 DAY/S
Ari Zilka's two day course Core Terracotta: Scaling your Java Application with Terracotta teaches you how to use Terracotta's JVM-level clustering technology with your application. You will learn how to leverage Terracotta to make your Java Applications highly available and scalable, with minimal effort.
You will look at Terracotta technology in System Implementations and real-world use-cases where Terracotta was employed and, compared to alternatives, provided better Scale and HA with semantic correctness, whilst simultaneously providing low time-to-market and in-depth visibility into the Java Cluster. You will also study the following use-cases: Http sessions, Distributed Caches, clustering POJOs (e.g. Publisher-Consumer, Batch Processing etc.), Spring singleton-Beans/Context Events, JVM Co-ordination and clustering other development frameworks.
LEARN HOW TO:
- Apply Common Use Cases
- Use Session Clustering
Apply POJO Clustering
- Write a TIM
- Co-ordinate Clusters
- Manage Clusters
- Configure Distributed Cache
- Tune for performance
- Roll-out for Production
PROGRAMME
DAY-1:
Introduction-
Terracotta the Company
- Terracotta Services
- Terracotta Flag-ship Technology: Distributed Shared Objects:
- Philosophy
- Concepts
- Architecture Overview
- Terracotta Installation
- Terracotta Samples and Examples
Common Use-Cases – Introduction, Real-life Examples and what Terracotta provides as compared with alternatives:
- Session Clustering
- POJO Clustering
- The De-Container.
- JVM Co-ordination
- Cluster Management.
- Distributed Cache (Various topologies):
-
Cache Aside
- Write through Cache
- Write behind Cache
- Partitioned Data-Grid
- Other configurations
Session Clustering:
- Sample Application/Lab (Clustering a sample app)
- Scale, HA, Correctness, characteristics
POJO Clustering:
- Concepts and Considerations
- Sample Application/Lab (Clustering a LinkedBlockingQueue)
The De-Container:- TIMs Concept
- Terracotta TIMs for EHCache, Hibernate 2L Cache, Wicket, Struts, Quartz, Lucene, Compass.
- Sample Applications/Labs (Quartz, Compass)
- Writing a TIM.
Cluster Co-ordination:-
Distributed Wait-Notify
- Distributed Method Invocation
- Master/Worker
Cluster Management:-
JMX Events
- Sample Application
DAY-2:
Distributed Cache & Cache Configurations-
Distributed Cache:
- Cache configurations
-
Read-Only
- Write Through
- Write Behind
- Cache Aside
- Partitioned Data Grid
-
Scale, HA, Correctness, Simplicity characteristics of each configuration.
- Sample Application/Lab (Clustering a ConcurrentHashMap, EHCache)
Performance Tuning-
Memory Tuning:
-
Garbage Collection
- Virtual Memory Manager
- Distributed Garbage Collection
- Lock Tuning:
-
Striping
- Lock Granularity
- Lock Types
- Lock Pessimism/Optimism
- Instrumentation Scope
- Other Tc-config.xml , tc.properties tuning
- Tools:
-
Admin Console (Lock Profiler, DGC Tab etc.)
- Statistics Visualization Tab
- Debug options (tc-config.xml)
- LAB: Improve Throughput/Latency of a poorly performing app
· Production Roll-out-
Deployment Options
- Failure Analysis
- Monitoring the cluster in production
- Upgrades with minimal downtime
- Other post-production best practices
Summary & Conclusions
|
IN PARTNERSHIP WITH TERRACOTTA
IS THIS COURSE FOR YOU?
If you are a senior JEE/J2SE developer or architect, keen to learn how to add HA and Scale to your Java Applications and solve this problem generically, and you want to learn how to integrate, test, deploy and manage Terracotta’s technology with your application stack – this course is perfect for you!
COURSE PREREQUISITES
COURSE LABS & EXERCISES
30 % Labs, 70% Presentation
|