David Whitmarsh | Shadowmist Ltd
Case Study – An Oracle
Coherence Data Grid in
OSGi Containers
Background
• Investment bank client
• Post-trade Services
• Several distinct application services layered on a
set of comm...
Oracle Coherence
• Clustered in-memory data cache
• API extends java.util.Map
• Redundant storage of data – safe against n...
Hardware Topology
• Each node runs in a
container
• All nodes communicate
with all others by multicast
• Data nodes have 8...
Application Structure
Data Model Hierarchies
Conventional Coherence
Classpath Structure
• Stored object and serialisation classes normally
on classpath – accessible fr...
Object Models as OSGi Services
• All touch points where Coherence needs to be aware of
a data object can be intercepted an...
Data Node Deployment
• On data nodes, coherence must still have access to
serialisation and cache configuration
POF Evolvable and code
releases
• POF supports an “Evolvable” model for
converting objects between old and new
versions bo...
The Hard Bits - Coherence
• Coherence cache instances traditionally obtained via static
factory methods from a single glob...
The Hard Bits - OSGi
• Managing one container per grid node
• Development tooling
– Eclipse? Maven? Bundlor? Bnd? Spring D...
Upcoming SlideShare
Loading in...5
×

OSGi Community Event 2010 - Modular Applications on a Data Grid - A Case Study Using OSGi and Oracle Coherence

945

Published on

OSGi Community Event 2010 - Modular Applications on a Data Grid - A Case Study Using OSGi and Oracle Coherence (David Whitmarsh

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
945
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
17
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

OSGi Community Event 2010 - Modular Applications on a Data Grid - A Case Study Using OSGi and Oracle Coherence

  1. 1. David Whitmarsh | Shadowmist Ltd Case Study – An Oracle Coherence Data Grid in OSGi Containers
  2. 2. Background • Investment bank client • Post-trade Services • Several distinct application services layered on a set of common data services • High Volumes (up to 3m events/day) • Low Latency
  3. 3. Oracle Coherence • Clustered in-memory data cache • API extends java.util.Map • Redundant storage of data – safe against node or machine outage • Primary data store in this application – not 2nd level cache • Internal use of “Portable Object Format” - POF
  4. 4. Hardware Topology • Each node runs in a container • All nodes communicate with all others by multicast • Data nodes have 8Gb heaps • Application and Proxy nodes are full grid members but with local storage of data disabled
  5. 5. Application Structure
  6. 6. Data Model Hierarchies
  7. 7. Conventional Coherence Classpath Structure • Stored object and serialisation classes normally on classpath – accessible from Coherence code • Support for specifying ClassLoader – used in JEE, could be used in OSGi
  8. 8. Object Models as OSGi Services • All touch points where Coherence needs to be aware of a data object can be intercepted and delegated to OSGi services. • Cache configurations can be provided to Coherence via an OSGi service.
  9. 9. Data Node Deployment • On data nodes, coherence must still have access to serialisation and cache configuration
  10. 10. POF Evolvable and code releases • POF supports an “Evolvable” model for converting objects between old and new versions both ways without data loss. • Coherence “rolling upgrade” may take considerable time for a large grid • Serialisation via OSGi allows upgrade in- place with no node restarts.
  11. 11. The Hard Bits - Coherence • Coherence cache instances traditionally obtained via static factory methods from a single global configuration. – NamedCache cache = CacheFactory.getCache(cacheName); • Static access methods used internally in some places – Proxy service – Messaging pattern
  12. 12. The Hard Bits - OSGi • Managing one container per grid node • Development tooling – Eclipse? Maven? Bundlor? Bnd? Spring DM tools? • Version dependencies • Embedding Jars within bundles • Anomalously long startup time for DM server under Eclipse on Windows • Incomplete cleaning of state on restart • Controlled shutdown – order of service removal • Logging
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×