"JBoss clustering solutions Mission Critical Enterprise" by Mircea Markus @ eLiberatica 2009

Uploaded on

This is a presentation held at eLiberatica 2009. …

This is a presentation held at eLiberatica 2009.


One of the biggest events of its kind in Eastern Europe, eLiberatica brings community leaders from around the world to discuss about the hottest topics in FLOSS movement, demonstrating the advantages of adopting, using and developing Open Source and Free Software solutions.

The eLiberatica organizational committee together with our speakers and guests, have graciously allowed media representatives and all attendees to photograph, videotape and otherwise record their sessions, on the condition that the photos, videos and recordings are licensed under the Creative Commons Share-Alike 3.0 License.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads


Total Views
On Slideshare
From Embeds
Number of Embeds



Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

    No notes for slide


  • 1. Professional Open Source™ JBoss clustering solutions Mircea Markus, JBoss R&D 1
  • 2. Agenda Professional Open Source o Clustering terminology o JBoss clustering backbone o JGroups oJBossCache oPojoCache o The future – Infinispan o Q&A 2
  • 3. Clustering terminology Professional Open Source o Scalability o I want to handle x times the number of concurrent requests than I can now o High availability o Services are accessible with reasonable (and predictable) response times at any time o E.g., 99.999 (5 Nines in Telco) o Load balancing o A way to obtain scalability and better performance by dispatching incoming requests to different servers o Session affinity (or stickiness) o Checking heart beat o Failover o Process can continue when it is re-directed to a “backup” node because the original one fails o What is the policy? Round-robin? o Fault tolerance o A service that guarantees strictly correct behavior despite system failure o Cost? 3
  • 4. Load Balancing != Fault Tolerance Professional Open Source Load balancing is used for scalability, not for fault tolerance 4
  • 5. Load Balancing != Fault Tolerance Professional Open Source Failover and state replication is used for fault tolerance State Replication 5
  • 6. Cost of Fault Tolerance Professional Open Source For fault tolerance, state must be available to the failover node – Shared persistent store • Caching is a problem; need cache invalidation – Replicated state Synchronous vs. Asynchronous Replication – Reduced application responsiveness vs. chance that failover occurs before state arrives Analyze the likelihood of failure – How much fault tolerance is needed? Limit amount of replicated state – Entity data can be reconstructed – Consider keeping short term-conversational state on client • Form data from a wizard 6
  • 7. JGroups Professional Open Source o Library for reliable multicasting o Provides o Fragmentation o Message retransmission o Flow control o Ordering o Group membership, membership change notification o LAN or WAN based o IP multicasting transport default for LAN o TCP transport default for WAN 7
  • 8. JBossCache Professional Open Source o Replicated in memory data repository o Either locally or cluster-wide o Support for eviction of unused elements o Cache loading/storing to disk to free up memory o Chaining caches, remote caches using TcpCacheLoader o Support for JTA transactions o Listeners and notifications o JMX manageability o Multiple locking schemes (MVCC recommanded) o JGroups as a network stack 8
  • 9. PojoCache Professional Open Source oExtension of core cache oOptimised for caching large and complex objects with relationships oObject relationships maintained, even after replication or persistence oFine-grained replication oMinimal API 9
  • 10. Where is JBossCache used? Professional Open Source o JBoss Application Server - Clustering HTTP and EJB sessions, JPA entities o Hibernate - entity caching o SEAM - caching JSF generated content o JBoss Portal o Lucene/Hibernate Search - cluster-wide indexes o GridGain - data grid component to complement compute grid o Coming soon: – Drools - clustering rules engines – Mobicents – VOIP SIP server clustering o Many other open source and commercial projects 10
  • 11. Infinispan – the future Professional Open Source o JBossCache is now in maintenance o simple-to-use Map interface o Replication o Total o Distribution/consistent hashing – virtually linear scalability o Transaction support enhancement - XAResource o Data eviction redesign o JSR-107 compliant o Benchmark to come! (CacheBenchmarkFramework) 11
  • 12. Infinispan - data persistence Professional Open Source o Useful for o‘warm’ starts oSurvive server restarts oSwap data to disk to avoid OOM o Several ‘CacheStore’ implementations oJDBC oFile system oAmazon S3 (http://code.google.com/p/jclouds) oJDBM 12
  • 13. Infinispan – datagrid platform Professional Open Source o Data grid oUniform sea of memory oSpread over several servers o Solution to database limitations oPhysical limitations oDB does not scale o “memory is the new disk, disk is the new tape” - Tim Bray 13
  • 14. Infinispan – async API Professional Open Source o New API in Infinispan, major feature for 4.0 o Hybrid between sync and async calls 14
  • 15. New cool things to come! Professional Open Source omemcached server/clients, able to use from Python, Ruby, C++, C# oQuery API - do remote searches oMap/Reduce - pass the cache a Callable and have it execute wherever the data exists oJPA-style API. Easy migration from using a database to using the grid! oCheck it out here! http://www.jboss.org/infinispan 15