Oracle Coherence


Published on

Introduction to Oracle Coherence

Published in: Technology, Business
1 Comment
No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Oracle Coherence

  1. 1. Oracle Coherence<br />לירן זילכה<br />מנכ&quot;ל משותף<br /><br />
  2. 2. Aluna<br />Israel’s leading Java/JavaEE and SOA consulting company<br />Customers:<br />
  3. 3. What is Oracle Coherence?<br />Distributed Memory Data Management Solution<br />(aka: Data Grid)<br />
  4. 4. How Can a Data Grid Help?<br />Provides a reliable data tier with a single, consistent view of data<br />Enables dynamic data capacity including fault tolerance and load balancing<br />Ensures that data capacity scales with processing capacity<br />
  5. 5. DataGrid View<br />Web<br />Services<br />Enterprise <br />Applications<br />Real Time<br />Clients<br />Application Tier<br />Data Services<br />Coherence™<br />Data Grid<br />Data Sources<br />Databases<br />Web Services<br />Mainframes<br />
  6. 6. Oracle Grid Computing: Enterprise Ready<br />Enterprise Application Grid<br />Extreme Transaction Processing XTP<br /><ul><li>Common Shared Application Infrastructure (Application Virtualization)
  7. 7. Data Virtualization (Data as a Service)
  8. 8. Middle tier scale out for Grid Based OLTP
  9. 9. Massive Persistent scale out with Oracle RAC</li></ul>Application <br />Tier<br />Oracle Coherence<br />Oracle RAC<br />
  10. 10. Requirements of Enterprise Data Grid<br />Reliable<br />Universal<br />Scalable<br />Data<br /><ul><li>Dynamically Expandable
  11. 11. No data loss at any volume
  12. 12. No interruption of service
  13. 13. Leverage Commodity Hardware
  14. 14. Cost Effective
  15. 15. Single view of data
  16. 16. Single management view
  17. 17. Simple programming model
  18. 18. Any Application
  19. 19. Any Data Source
  20. 20. Built for continuous operation
  21. 21. Data Fault Tolerance
  22. 22. Self-Diagnosis and Healing
  23. 23. “Once and Only Once” Processing
  24. 24. Data Caching
  25. 25. Analytics
  26. 26. Transaction Processing
  27. 27. Event Processing</li></li></ul><li>How Does Coherence Work?<br />Cluster of nodes holding % of primary data locally<br />Back-up of primary data is distributed across all other nodes<br />Logical view of all data from any node<br />
  28. 28. How Does Coherence Work?<br /><ul><li>All nodes verify health of each other
  29. 29. In the event a node is unhealthy, other nodes diagnose state</li></li></ul><li>How Does Coherence Work?<br /><ul><li>Unhealthy node isolated from cluster
  30. 30. Remaining nodes redistribute primary and back-up responsibilities to healthy nodes</li></ul>X<br />
  31. 31. Customer Scenarios<br />Caching<br />Applications request data from the Data Grid rather than backend data sources<br />Analytics<br />Applications ask the Data Grid questions from simple queries to advanced scenario modeling<br />Transactions<br />Data Grid acts as a transactional System of Record, hosting data and business logic<br />Events<br />Automated processing based on event<br />
  32. 32. Demo<br />
  33. 33. Topology #1 - Replicated Cache<br />
  34. 34. Topology #1 - Replicated Cache<br />
  35. 35. Topology #2 - Partitioned Cache<br />
  36. 36. Topology #2 - Guaranteed Cluster Resiliency<br />
  37. 37. Topology #2 - Partitioned Failover<br />
  38. 38. Topology #2a – Cache Client/Cache Server<br />
  39. 39. Topology #3 - Near Cache<br />
  40. 40. Use Case: Coherence*Web<br />Coherence*Web is an HTTP session-management module (built-in feature of Coherence)<br />Supports a wide range of application servers. <br />Does not require any changes to the application.<br />Coherence*Web uses the NearCache technology to provide fully fault-tolerant caching, with almost unlimited scalability (to several hundred cluster nodes without issue).<br />Heterogeneous applications running on mixed hardware/OS/application servers can share common user session data. This dramatically simplifies supporting Single-Sign-On across applications.<br />
  41. 41. Coherence*Web: Session State Management<br />Web<br />Tier<br />Web Application<br />ApplicationState<br />Router<br />CoherenceWeb<br />Java EE or ServletContainer<br />Web Application<br />ApplicationState<br />CoherenceWeb<br />Java EE or ServletContainer<br />Web Application<br />ApplicationState<br />CoherenceWeb<br />Load <br />Balanced<br />Java EE or ServletContainer<br />Clustered Oracle, WebLogic, WebSphere, JBoss, Tomcat<br />In Memory Coherence Data Grid for Session State<br />
  42. 42. Read-Through Caching<br />
  43. 43. Write-Through Caching<br />
  44. 44. Write-Behind Caching<br />
  45. 45. Transaction<br />Implicit: Queuing of operations<br />Virtual queue & thread per entry<br />Explicit: Pessimistic locking<br />Grid-Wide Mutex<br />Transactions: Unit of work management<br />Both optimistic and pessimistic transactions<br />Isolation levels from read-committed through serializable<br />Integrated with JTA<br />
  46. 46. Transaction<br />
  47. 47. Events<br />Universal: All data sets provide events, regardless of the topology.<br />Distributed: The events are always delivered efficiently to the interested listeners.<br />Regardless of originating node<br />Flexible:<br />Listen to entire data sets, specific identities, and even to queries!<br />Provides “before” and “after” state<br />Both sync and async event models<br />
  48. 48. Events<br />
  49. 49. Query<br />Parallel Query: A query is performed in parallel across the Data Grid, using indexing and a iterative Cost Based Optimizer.<br />Customizable predicates<br />Custom indexes<br />Custom aggregators<br />Continuous Query: Combines a query with events to provide a local materialized view.<br />Result is up-to-date in real-time<br />Like the Near Topology, but it always contains the desired data<br />
  50. 50. Query<br />
  51. 51. InvocableMap – Server Side Processing<br />
  52. 52. Coherence*Extend<br />Supports “fat client” real-time applications such as trading desks, as well as other server tiers<br />WAN support<br />Connection to the cluster is over TCP<br />Continuous query can be used to maintain real-time query results on the desktop!<br />
  53. 53. Tangosol Cluster Management Protocol (TCMP)<br />Coherence’s own protocol between cluster members<br />TCMP utilizes UDP<br />Massively scalable <br />Asynchronous<br />Point-to-point<br />UDP Multicast is used for:<br />New JVMs to join the cluster automatically<br />Maintaining cluster membership<br />Multicast is not required; it may be disabled with Well Known Addresses (WKA)<br />UDP Unicast is used for most communication<br />Very fast and scalable<br />TCMP guarantees packet order and delivery<br />TCP/IP connections do not need to be maintained<br />
  54. 54. Clustering is about Consensus!<br />Oracle Coherence Clustering is very different!<br />Goal: <br />Maintain Cluster Membership Consensus all times <br />Do it as fast as physically possible<br />Do it without a single point of failure or registry of members<br />Ensure all members have the same responsibility and work together to maintain consensus<br />Ensure that no voting occurs to determine membership<br />
  55. 55. Clustering is about Consensus!<br />Why: If all members are always known…<br />We can partition / load balance Data & Services<br />We don’t need to hold TCP/IP connections open (resource intensive)<br />Any member can “talk” directly with any other member (peer-to-peer)<br />The cluster can dynamically (while running) scale to any size<br />
  56. 56. Benchmarking Coherence<br /><ul><li>Aggregation (DoubleSum) of Trade objects
  57. 57. Scale out testing on Dual 2.3GHz PowerPC G5 Xserve
  58. 58. Use of on index for direct access
  59. 59. if you need to achieve 1,837,932 trade aggregations per second all that is required is to start 16 more cache servers across four more machines.</li></li></ul><li>Coherence Management and Monitoring<br />Management Features<br />Coherence provides standard JMX APIs<br />Cluster-wide JMX: Ability to monitor and manage the entire cluster from any node<br />Customizable web-based console<br />Does not require an mBean server or any JMX libraries on managed nodes<br />Support custom application mBeans<br />Support for Coherence*Web<br />