Ari Zilka's Core Terracotta: Scaling your Java Application with Terracotta

Organiser
OpenSource & Agile Community Events
Date
Thu, 24 Sep 2009, 08:30 - 10:30 (Add to calendar) GMT
Venue
(Exact location not available) , London, GB
Cost
1095.0 GBP

DURATION: 2 DAY/S LOCATION: SKILLS MATTER, LONDON EC1R 0BE MORE INFORMATION: http://skillsmatter.com/course/java-jee/core-terracotta-scaling-your-java-application-with-terracotta/wd-86

COURSE SUMMERY Learn how to use Terracotta's JVM-level clustering technology with your application. Leverage Terracotta to make your Java Applications highly available and scalable, with minimal effort.

We'll discuss usage of Terracotta technology in System Implementations. We’ll highlight real-world use-cases where Terracotta was employed and as 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. We will cover 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:
      o Philosophy
      o Concepts
      o 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):
      o Cache Aside
      o Write through Cache
      o Write behind Cache
      o Partitioned Data-Grid
      o 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
      o Read-Only
      o Write Through
      o Write Behind
      o Cache Aside
      o Partitioned Data Grid 
* Scale, HA, Correctness, Simplicity characteristics of each configuration.
* Sample Application/Lab (Clustering a ConcurrentHashMap, EHCache)

Performance Tuning

* Memory Tuning:
      o Garbage Collection
      o Virtual Memory Manager
      o Distributed Garbage Collection 
* Lock Tuning:
      o Striping
      o Lock Granularity
      o Lock Types
      o Lock Pessimism/Optimism 
* Instrumentation Scope
* Other Tc-config.xml , tc.properties tuning
* Tools:
      o Admin Console (Lock Profiler, DGC Tab etc.)
      o Statistics Visualization Tab
      o 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 & Conclusion

You might also like...

Comments

Other nearby events

Map

Contribute

Why not write for us? Or you could submit an event or a user group in your area. Alternatively just tell us what you think!

Our tools

We've got automatic conversion tools to convert C# to VB.NET, VB.NET to C#. Also you can compress javascript and compress css and generate sql connection strings.

“PHP is a minor evil perpetrated and created by incompetent amateurs, whereas Perl is a great and insidious evil perpetrated by skilled but perverted professionals.” - Jon Ribbens