SlideShare a Scribd company logo
<Insert Picture Here>




Betting on Data Grids
Dave Felcey
Oracle Sales Consulting
Agenda

ā€¢   Oracle High Performance Computing
ā€¢   Oracle Coherence Architecture
ā€¢   Gaming Industry Challenges
ā€¢   Summary
Oracle High Performance Computing
 Comprehensive and Best of Breed

ā€¢ Oracle 11g WebLogic Server
  ā€¢ Fastest Applicaton Server, delivering 7,311 SPECjAppServer2004
    JOPS@Standard (jAppServer Operations per Second)
ā€¢ Oracle JRockit Real-Time JVM
  ā€¢ Fastest JVM, delivering 537,116 SPECjbb2005 bops/JVM p/s
ā€¢ Oracle Complex Event Processing
  ā€¢ Fraud detection, risk mitigation etc.
ā€¢ Oracle 11g Database
  ā€¢ Used by Betfair for performance and scalability and one of top 5
    busiest databases in the world
ā€¢ Oracle TimesTen In-Memeory Database
  ā€¢ The Hong Kong Jockey Club uses TimesTen to perform very fast
    fraud detection processing
ā€¢ Oracle Identity Management (IdM)
  ā€¢ Used by Shanda to manage ID of upto 2M concurrent users
Oracle High Performance Computing
Comprehensive and Best of Breed
 Management    WebCache           WebLogic Server       Tuxedo
 Tools
               Content Cache     J2EE and Messaging
                                                         Low Latency
 Monitoring
                Coherence Data Grid     Complex Event      TPM
                                        Processing
  SLAā€™s          Low Latency
   and                                                     Mature
                  Scalable              Low Latency
   QoS                                                      and
                  Resilient                EQL             Proven

Diagnostics     JRockit Real-Time JVM
                        Real-
                   Fast     Low Latency Predictable

Provisioning   TimesTen
                                                        Berkeley DB
               In-Memory     Low Latency       SQL
                                                             XML
               Oracle RAC                                Embedded
                  Commodity Hardware Scale Out           Transactional
Oracle Coherence
Data Grid Uses
      Caching
      Applications request data from the Data Grid rather than
      backend data sources

      Analytics
      Applications ask the Data Grid questions from simple queries to
      advanced scenario modeling

      Transactions
      Data Grid acts as a transactional System of Record, hosting
      data and business logic

      Events
      Automated processing based on event
The Coherence Approachā€¦

ā€¢ Consensus is key
  ā€¢   Communication is more efficient (peer-to-peer)
  ā€¢   No outages for voting (no need ā€“ everyone is a peer)
  ā€¢   No SPoF, SPoB
  ā€¢   No need for broadcast traffic (yelling at each other)
  ā€¢   You can do many things once you have ā€œconsensusā€.
TCMP Provides the Foundations
What is Coherence?

ā€¢ Coherence (deployment perspective)
  ā€¢ Single Library*
     ā€¢ *Other libraries for integration (L2C, Springā€¦)
  ā€¢ Configurable implementations of standard Map interfaces
    (called NamedCacheā€™s)
  ā€¢ Standard Java Archive ā€œJARā€ for Java
  ā€¢ Standard Dynamically Linked Library ā€œDLLā€ for .NET
    connectivity (.Net 1.1 and 2.0)
  ā€¢ Standard DLL or .so for C++ clients
  ā€¢ No 3rd party dependencies!
  ā€¢ Minimal ā€œinvasionā€ on standard code*
  ā€¢ ā€œRemoteExceptionā€ free distributed computing
Introduction to NamedCaches

ā€¢ Developers use NamedCaches to manage data
ā€¢ An composite interface which includes Map
ā€¢ NamedCache
  ā€¢   Logically equivalent to a Database table
  ā€¢   Store related types of information (trades, orders, sessions)
  ā€¢   May be hundreds / thousands of per Application
  ā€¢   May be dynamically created
  ā€¢   May contain any data (no need to setup a schema)
  ā€¢   No restriction on types (homogeneous and heterogeneous)
  ā€¢   Not relational (but may be)
Clustered Hello World!
public void main(String[] args) throws IOException {
   NamedCache nc = CacheFactory.getCache(ā€œtestā€);
   nc.put(ā€œkeyā€, ā€œHello Worldā€);
   System.out.println(nc.get(ā€œkeyā€));

     System.in.read();     //may throw exception
}
ā€¢ Joins / Establishes a cluster
ā€¢ Places an Entry (key, value) into the Cache ā€œtestā€ (notice no
  configuration)
ā€¢ Retrieves the Entry from the Cache.
ā€¢ Displays it.
ā€¢ ā€œreadā€ at the end to keep the application (and Cluster) from
  terminating.
Caching Strategies (schemes)
 Different cache implementations

ā€¢ Local
   ā€¢ Local on-heap caching for non-clustered caching.
ā€¢ Replicated
   ā€¢ Perfect for small, read-heavy caches.
ā€¢ Partitioned
   ā€¢ True linear scalability for both read and write access. Data is
     automatically, dynamically and transparently partitioned across
     nodes. The distribution algorithm minimizes network traffic and
     avoids service pauses by incrementally shifting data.
ā€¢ Near Cache
   ā€¢ Provides the performance of local caching with the scalability of
     distributed caching. Several different near-cache strategies provide
     varying tradeoffs between performance and synchronization
     guarantees.
The Distributed Scheme - Get
The Distributed Scheme - Put
The Distributed Scheme - Failover
The Near Scheme

ā€¢ A composition of pluggable Front and Back schemes
  ā€¢ Provides L1 and L2 caching (cache of a cache)
ā€¢ Why:
  ā€¢ Partitioned Topology may always go across the wire
  ā€¢ Need a local cache (L1) over the distributed scheme (L2)
  ā€¢ Best option for scalable performance!
ā€¢ How:
  ā€¢ Configure ā€˜frontā€™ and ā€˜backā€™ topologies
ā€¢ Configurable Expiration Policies:
  ā€¢ LFU, LRU, Hybrid (LFU+LRU), Time-based, Never,
    Pluggable
The Near Scheme - Get
Coherence*Extend
WAN Topology
Queries

ā€¢ Filters applied in parallel (in the Grid)

ā€¢ A large range of filters out-of-the-box:
  All, Always, And, Any, Array, Between,
  ContainsAll, ContainsAny, Contains, Equals,
  GreaterEquals, Greater, In, InKeySet,
  IsNotNull, IsNull, LessEquals, Less, Like,
  Limit, Never, NotEquals, Not, Orā€¦

Filter filter = new AndFilter(
   new EqualsFilter("getTrader", traderId),
     new EqualsFilter("getStatus", Status.OPEN));

Set setOpenTrades = mapTrades.entrySet(filter);
Executing a query
Real Time Events

ā€¢ Maintain real time visibility into data changes
ā€¢ Desktops
  ā€¢ The usual example is the ā€œTrader desktopā€
  ā€¢ Watch data change in near real time
     ā€¢ Typically a few milliseconds
ā€¢ Servers
  ā€¢ Monitoring data to trigger additional processing
     ā€¢ Event Driven Architecture within the data grid
  ā€¢ Very wide-ranging set of use cases
  ā€¢ Not many common patterns of usage
Continuous Query Cache
Coherence implements Continuous Query using a combination
of its data fabric parallel query capability and its real-time event-
filtering and streaming. The result is support for thousands of
client application instances, such as trading desktops. Using the
previous trading system example, it can be converted to a
Continuous Query with only one a single line of code changed

NamedCache mapTrades = ...
Filter filter = new AndFilter(new
  EqualsFilter("getTrader", traderid),
    new EqualsFilter("getStatus", Status.OPEN));
NamedCache mapOpenTrades = new
  ContinuousQueryCache(mapTrades, filter);
Transaction Management

ā€¢ Explicit transaction management
  ā€¢ Using the general pattern for pessimistic transactions is "lock
    -> read -> write -> unlock". For optimistic transactions, the
    sequence is "read -> lock & validate -> write -> unlock".
ā€¢ Implicit transaction management
  ā€¢ Locking "by convention" ā€“ for example, requiring that all
    acessors lock only the "parent" Order object. Doing this can
    reduce the scope of the lock from table-level to order-level,
    enabling far higher scalability
ā€¢ Further transaction optimizations
  ā€¢ Using EntryProcessors ā€“ sending the code to the data, so
    that operations are queued and all locking is local. Operations
    must be idempotent.
Cache Through
Reading ahead or on-demand
Persisting Data
Write-through, write-behind, coalescing and batching
HTTP Session Caching
Overview
ā€¢ No code changes required
  to use
ā€¢ Portlet state can be cached
ā€¢ Built into WLS and WLP
Benefits
ā€¢ Enables stateless middle
  tier
ā€¢ Better hardware utilization
ā€¢ Simpler network
  infrastructure
ā€¢ Facilitates modular
  application improvements
ā€¢ Scales out middle tier
Serialization
          Portable Object Format (POF)
        ā€¢ Benefits
               ā€¢ Can store more data
               ā€¢ Can read/write and move data faster

                            5x Smaller                                                             10x Faster De-Serialization
                                                                                                                           Coherence Serialization Test Results

                       Coherence Compression Test Results
                                                                                       12000
                                                                                                             10078
        1000

        900     867
                                                                                       10000

        800

                                                                                        8000
        700

        600
                                                                           Time (ms)    6000
Bytes




        500

        400                                                                              4000
                                    309             322                                                                             1625             2070
        300                                                                                           2360
                                                                                                                                                                    1234
                                                             186                         2000
        200

                                                                                                                         484
        100                                                                                    0                                               734                              De-serialization
                                                                                                                                                              547
          0                                                        Serialization                   Java
                                                                                                                                                                           Serialization
                Java         ExternalizationLite   XMLBean   POF   De-serialization                           ExternalizationLite
                                                                                                                                           XMLBean
                                                                                                          Se rialization M echanisum                        POF
Coherence Incubator
 Patterns

ā€¢ Pre-built examples
ā€¢ Used in production
  systems
ā€¢ Thoroughly tested
ā€¢ Extensible
ā€¢ Optimised
ā€¢ Incorporate best
  practice
Gaming Challenges

ā€¢ Extreme scalability 500k+ users
ā€¢ Reliability. Outages damage reputation and can cost
  Ā£100k+ p/hr
ā€¢ Flexibility. Enable products to be quickly brought to
  market
Extreme Scalability

ā€¢ Scaling Users
  ā€¢ 100k ā€“ 1M online users
  ā€¢ Asynchronously update database so reduce latency, open
    connections etc.
ā€¢ Scaling Transactions and Processing
  ā€¢ Betfair
  ā€¢ INCERNO processed 5k TPS in simulation tests with no
    discernable deterioration in performance or reliability.
ā€¢ Scaling Data Capacity, >100 GB
  ā€¢ Off-heap storage option in release 3.5
  ā€¢ Potential storage limit now > TB
Extreme Reliability

ā€¢ Non-Stop running
  ā€¢ 2 years+ continuous running
ā€¢ Withstand database or link replication failure
  ā€¢ Queue requests
ā€¢ Failure of multiple servers
  ā€¢ No ā€˜Single Point Of Failureā€™
ā€¢ Processing (as well as data) failover
Extreme Flexibility

ā€¢   Native Java, C++ and .NET clients
ā€¢   Simple Map and IDictionary API
ā€¢   Simple to install
ā€¢   Pre-built examples (Incubator Projects)
ā€¢   Seamless HTTP Session integration for J2EE and .NET
ā€¢   Support of Hibernate, JPA and Spring

Support
ā€¢ Active forums and SIGā€™s
ā€¢ Well documented
Summary

ā€¢ Coherenceā„¢ is the leading product for high      <Insert Picture Here>

  performance distributed in-memory data
  services
  ā€¢ Proven technology, 100+ customers and 1500+
    production systems
  ā€¢ Offers a unique combination of features
ā€¢ Coherenceā„¢ is easy to use and delivers
  data performance, scalability and reliability
Betting On Data Grids
Betting On Data Grids

More Related Content

What's hot

qcon
qconqcon
qcon
nkallen
Ā 
WSO2 Carbon and WSO2 Stratos Summer Release Roundup
WSO2 Carbon and WSO2 Stratos Summer Release Roundup WSO2 Carbon and WSO2 Stratos Summer Release Roundup
WSO2 Carbon and WSO2 Stratos Summer Release Roundup
WSO2
Ā 
Developing polyglot persistence applications (SpringOne India 2012)
Developing polyglot persistence applications (SpringOne India 2012)Developing polyglot persistence applications (SpringOne India 2012)
Developing polyglot persistence applications (SpringOne India 2012)
Chris Richardson
Ā 
Developing polyglot persistence applications (SpringOne China 2012)
Developing polyglot persistence applications (SpringOne China 2012)Developing polyglot persistence applications (SpringOne China 2012)
Developing polyglot persistence applications (SpringOne China 2012)
Chris Richardson
Ā 
How to Stop Worrying and Start Caching in Java
How to Stop Worrying and Start Caching in JavaHow to Stop Worrying and Start Caching in Java
How to Stop Worrying and Start Caching in Java
srisatish ambati
Ā 

What's hot (20)

Developing polyglot persistence applications #javaone 2012
Developing polyglot persistence applications  #javaone 2012Developing polyglot persistence applications  #javaone 2012
Developing polyglot persistence applications #javaone 2012
Ā 
Database Sharding the Right Way: Easy, Reliable, and Open source - HighLoad++...
Database Sharding the Right Way: Easy, Reliable, and Open source - HighLoad++...Database Sharding the Right Way: Easy, Reliable, and Open source - HighLoad++...
Database Sharding the Right Way: Easy, Reliable, and Open source - HighLoad++...
Ā 
"Navigating the Database Universe" by Dr. Michael Stonebraker and Scott Jarr,...
"Navigating the Database Universe" by Dr. Michael Stonebraker and Scott Jarr,..."Navigating the Database Universe" by Dr. Michael Stonebraker and Scott Jarr,...
"Navigating the Database Universe" by Dr. Michael Stonebraker and Scott Jarr,...
Ā 
qcon
qconqcon
qcon
Ā 
Oracle ZDM KamaleshRamasamy Sangam2020
Oracle ZDM KamaleshRamasamy Sangam2020Oracle ZDM KamaleshRamasamy Sangam2020
Oracle ZDM KamaleshRamasamy Sangam2020
Ā 
Using Spring with NoSQL databases (SpringOne China 2012)
Using Spring with NoSQL databases (SpringOne China 2012)Using Spring with NoSQL databases (SpringOne China 2012)
Using Spring with NoSQL databases (SpringOne China 2012)
Ā 
WSO2 Carbon and WSO2 Stratos Summer Release Roundup
WSO2 Carbon and WSO2 Stratos Summer Release Roundup WSO2 Carbon and WSO2 Stratos Summer Release Roundup
WSO2 Carbon and WSO2 Stratos Summer Release Roundup
Ā 
NoSQL overview #phptostart turin 11.07.2011
NoSQL overview #phptostart turin 11.07.2011NoSQL overview #phptostart turin 11.07.2011
NoSQL overview #phptostart turin 11.07.2011
Ā 
Database TCO
Database TCODatabase TCO
Database TCO
Ā 
CodeFutures - Scaling Your Database in the Cloud
CodeFutures - Scaling Your Database in the CloudCodeFutures - Scaling Your Database in the Cloud
CodeFutures - Scaling Your Database in the Cloud
Ā 
My Sql Presentation
My Sql PresentationMy Sql Presentation
My Sql Presentation
Ā 
Developing polyglot persistence applications (SpringOne India 2012)
Developing polyglot persistence applications (SpringOne India 2012)Developing polyglot persistence applications (SpringOne India 2012)
Developing polyglot persistence applications (SpringOne India 2012)
Ā 
Innovations in Grid Computing with Oracle Coherence
Innovations in Grid Computing with Oracle CoherenceInnovations in Grid Computing with Oracle Coherence
Innovations in Grid Computing with Oracle Coherence
Ā 
Cloudcon East Presentation
Cloudcon East PresentationCloudcon East Presentation
Cloudcon East Presentation
Ā 
Xs sho niboshi
Xs sho niboshiXs sho niboshi
Xs sho niboshi
Ā 
DataStax C*ollege Credit: What and Why NoSQL?
DataStax C*ollege Credit: What and Why NoSQL?DataStax C*ollege Credit: What and Why NoSQL?
DataStax C*ollege Credit: What and Why NoSQL?
Ā 
keyvi the key value index @ Cliqz
keyvi the key value index @ Cliqzkeyvi the key value index @ Cliqz
keyvi the key value index @ Cliqz
Ā 
Developing polyglot persistence applications (SpringOne China 2012)
Developing polyglot persistence applications (SpringOne China 2012)Developing polyglot persistence applications (SpringOne China 2012)
Developing polyglot persistence applications (SpringOne China 2012)
Ā 
How to Stop Worrying and Start Caching in Java
How to Stop Worrying and Start Caching in JavaHow to Stop Worrying and Start Caching in Java
How to Stop Worrying and Start Caching in Java
Ā 
Yes sql08 inmemorydb
Yes sql08 inmemorydbYes sql08 inmemorydb
Yes sql08 inmemorydb
Ā 

Viewers also liked

Viewers also liked (6)

Sindhuja Sales Coaching 1.0
Sindhuja Sales  Coaching 1.0Sindhuja Sales  Coaching 1.0
Sindhuja Sales Coaching 1.0
Ā 
Inaugural Addresses
Inaugural AddressesInaugural Addresses
Inaugural Addresses
Ā 
How to think like a startup
How to think like a startupHow to think like a startup
How to think like a startup
Ā 
Teaching Students with Emojis, Emoticons, & Textspeak
Teaching Students with Emojis, Emoticons, & TextspeakTeaching Students with Emojis, Emoticons, & Textspeak
Teaching Students with Emojis, Emoticons, & Textspeak
Ā 
Study: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsStudy: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving Cars
Ā 
Hype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerHype vs. Reality: The AI Explainer
Hype vs. Reality: The AI Explainer
Ā 

Similar to Betting On Data Grids

SnappyData, the Spark Database. A unified cluster for streaming, transactions...
SnappyData, the Spark Database. A unified cluster for streaming, transactions...SnappyData, the Spark Database. A unified cluster for streaming, transactions...
SnappyData, the Spark Database. A unified cluster for streaming, transactions...
SnappyData
Ā 
Fixing_Twitter
Fixing_TwitterFixing_Twitter
Fixing_Twitter
liujianrong
Ā 
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
xlight
Ā 
Event Driven Architecture
Event Driven ArchitectureEvent Driven Architecture
Event Driven Architecture
andreaskallberg
Ā 
7.) convergence (w automation)
7.) convergence (w automation)7.) convergence (w automation)
7.) convergence (w automation)
Jeff Green
Ā 
Exadata 11-2-overview-v2 11
Exadata 11-2-overview-v2 11Exadata 11-2-overview-v2 11
Exadata 11-2-overview-v2 11
Oracle BH
Ā 

Similar to Betting On Data Grids (20)

SnappyData, the Spark Database. A unified cluster for streaming, transactions...
SnappyData, the Spark Database. A unified cluster for streaming, transactions...SnappyData, the Spark Database. A unified cluster for streaming, transactions...
SnappyData, the Spark Database. A unified cluster for streaming, transactions...
Ā 
SnappyData at Spark Summit 2017
SnappyData at Spark Summit 2017SnappyData at Spark Summit 2017
SnappyData at Spark Summit 2017
Ā 
Fixing twitter
Fixing twitterFixing twitter
Fixing twitter
Ā 
Fixing_Twitter
Fixing_TwitterFixing_Twitter
Fixing_Twitter
Ā 
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
Ā 
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
Ā 
ModernizaciĆ³n del manejo de datos con v fabric
ModernizaciĆ³n del manejo de datos con v fabricModernizaciĆ³n del manejo de datos con v fabric
ModernizaciĆ³n del manejo de datos con v fabric
Ā 
MySQL Cluster Scaling to a Billion Queries
MySQL Cluster Scaling to a Billion QueriesMySQL Cluster Scaling to a Billion Queries
MySQL Cluster Scaling to a Billion Queries
Ā 
Fom io t_to_bigdata_step_by_step-final
Fom io t_to_bigdata_step_by_step-finalFom io t_to_bigdata_step_by_step-final
Fom io t_to_bigdata_step_by_step-final
Ā 
Riga dev day: Lambda architecture at AWS
Riga dev day: Lambda architecture at AWSRiga dev day: Lambda architecture at AWS
Riga dev day: Lambda architecture at AWS
Ā 
Event Driven Architecture
Event Driven ArchitectureEvent Driven Architecture
Event Driven Architecture
Ā 
Squeak DBX
Squeak DBXSqueak DBX
Squeak DBX
Ā 
Server Day 2009: Oracle/Bea Fusion Middleware by Paolo Ramasso
Server Day 2009: Oracle/Bea Fusion Middleware by Paolo RamassoServer Day 2009: Oracle/Bea Fusion Middleware by Paolo Ramasso
Server Day 2009: Oracle/Bea Fusion Middleware by Paolo Ramasso
Ā 
Internet Scale Architecture
Internet Scale ArchitectureInternet Scale Architecture
Internet Scale Architecture
Ā 
John adams talk cloudy
John adams   talk cloudyJohn adams   talk cloudy
John adams talk cloudy
Ā 
7.) convergence (w automation)
7.) convergence (w automation)7.) convergence (w automation)
7.) convergence (w automation)
Ā 
Whiptail XLR8r SSD Array
Whiptail XLR8r SSD ArrayWhiptail XLR8r SSD Array
Whiptail XLR8r SSD Array
Ā 
JavaOne_2010
JavaOne_2010JavaOne_2010
JavaOne_2010
Ā 
IBM Cloud Native Day April 2021: Serverless Data Lake
IBM Cloud Native Day April 2021: Serverless Data LakeIBM Cloud Native Day April 2021: Serverless Data Lake
IBM Cloud Native Day April 2021: Serverless Data Lake
Ā 
Exadata 11-2-overview-v2 11
Exadata 11-2-overview-v2 11Exadata 11-2-overview-v2 11
Exadata 11-2-overview-v2 11
Ā 

More from gojkoadzic

How I learned to stop worrying and love flexible scope - at JFokus 2014
How I learned to stop worrying and love flexible scope - at JFokus 2014How I learned to stop worrying and love flexible scope - at JFokus 2014
How I learned to stop worrying and love flexible scope - at JFokus 2014
gojkoadzic
Ā 
Reinventing Software Quality, Agile Days Moscow 2013
Reinventing Software Quality, Agile Days Moscow 2013Reinventing Software Quality, Agile Days Moscow 2013
Reinventing Software Quality, Agile Days Moscow 2013
gojkoadzic
Ā 

More from gojkoadzic (20)

Descaling Agile (Agile Tour Vienna 2019)
Descaling Agile (Agile Tour Vienna 2019)Descaling Agile (Agile Tour Vienna 2019)
Descaling Agile (Agile Tour Vienna 2019)
Ā 
Maximum Impact, Minimum Effort
Maximum Impact, Minimum EffortMaximum Impact, Minimum Effort
Maximum Impact, Minimum Effort
Ā 
Painless visual testing
Painless visual testingPainless visual testing
Painless visual testing
Ā 
Serverless JavaScript
Serverless JavaScriptServerless JavaScript
Serverless JavaScript
Ā 
Serverless Code Camp Barcelona
Serverless Code Camp BarcelonaServerless Code Camp Barcelona
Serverless Code Camp Barcelona
Ā 
Test Automation Without the Headache: Agile Tour Vienna 2015
Test Automation Without the Headache: Agile Tour Vienna 2015 Test Automation Without the Headache: Agile Tour Vienna 2015
Test Automation Without the Headache: Agile Tour Vienna 2015
Ā 
How I learned to stop worrying and love flexible scope - at JFokus 2014
How I learned to stop worrying and love flexible scope - at JFokus 2014How I learned to stop worrying and love flexible scope - at JFokus 2014
How I learned to stop worrying and love flexible scope - at JFokus 2014
Ā 
Sabotage product
Sabotage productSabotage product
Sabotage product
Ā 
Reinventing Software Quality, Agile Days Moscow 2013
Reinventing Software Quality, Agile Days Moscow 2013Reinventing Software Quality, Agile Days Moscow 2013
Reinventing Software Quality, Agile Days Moscow 2013
Ā 
5 key challenges
5 key challenges5 key challenges
5 key challenges
Ā 
Death to the testing phase
Death to the testing phaseDeath to the testing phase
Death to the testing phase
Ā 
Challenging Requirements/Oredev
Challenging Requirements/OredevChallenging Requirements/Oredev
Challenging Requirements/Oredev
Ā 
Effective specifications for agile teams
Effective specifications for agile teamsEffective specifications for agile teams
Effective specifications for agile teams
Ā 
Agile Testers: Becoming a key asset for your team
Agile Testers: Becoming a key asset for your teamAgile Testers: Becoming a key asset for your team
Agile Testers: Becoming a key asset for your team
Ā 
From dedicated to cloud infrastructure
From dedicated to cloud infrastructureFrom dedicated to cloud infrastructure
From dedicated to cloud infrastructure
Ā 
Specification Workshops - The Missing Link
Specification Workshops - The Missing LinkSpecification Workshops - The Missing Link
Specification Workshops - The Missing Link
Ā 
Specification by example and agile acceptance testing
Specification by example and agile acceptance testingSpecification by example and agile acceptance testing
Specification by example and agile acceptance testing
Ā 
Space Based Programming
Space Based ProgrammingSpace Based Programming
Space Based Programming
Ā 
Getting business people and developers to listen to testers
Getting business people and developers to listen to testersGetting business people and developers to listen to testers
Getting business people and developers to listen to testers
Ā 
Is the cloud a gamble
Is the cloud a gambleIs the cloud a gamble
Is the cloud a gamble
Ā 

Recently uploaded

Recently uploaded (20)

Dev Dives: Train smarter, not harder ā€“ active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder ā€“ active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder ā€“ active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder ā€“ active learning and UiPath LLMs for do...
Ā 
AI revolution and Salesforce, JiÅ™Ć­ KarpĆ­Å”ek
AI revolution and Salesforce, JiÅ™Ć­ KarpĆ­Å”ekAI revolution and Salesforce, JiÅ™Ć­ KarpĆ­Å”ek
AI revolution and Salesforce, JiÅ™Ć­ KarpĆ­Å”ek
Ā 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John Staveley
Ā 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Ā 
Salesforce Adoption ā€“ Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption ā€“ Metrics, Methods, and Motivation, Antone KomSalesforce Adoption ā€“ Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption ā€“ Metrics, Methods, and Motivation, Antone Kom
Ā 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Ā 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
Ā 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Ā 
10 Differences between Sales Cloud and CPQ, Blanka DoktorovĆ”
10 Differences between Sales Cloud and CPQ, Blanka DoktorovƔ10 Differences between Sales Cloud and CPQ, Blanka DoktorovƔ
10 Differences between Sales Cloud and CPQ, Blanka DoktorovĆ”
Ā 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Ā 
UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2
Ā 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
Ā 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
Ā 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Ā 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Ā 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
Ā 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Ā 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Ā 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Ā 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Ā 

Betting On Data Grids

  • 1.
  • 2. <Insert Picture Here> Betting on Data Grids Dave Felcey Oracle Sales Consulting
  • 3. Agenda ā€¢ Oracle High Performance Computing ā€¢ Oracle Coherence Architecture ā€¢ Gaming Industry Challenges ā€¢ Summary
  • 4. Oracle High Performance Computing Comprehensive and Best of Breed ā€¢ Oracle 11g WebLogic Server ā€¢ Fastest Applicaton Server, delivering 7,311 SPECjAppServer2004 JOPS@Standard (jAppServer Operations per Second) ā€¢ Oracle JRockit Real-Time JVM ā€¢ Fastest JVM, delivering 537,116 SPECjbb2005 bops/JVM p/s ā€¢ Oracle Complex Event Processing ā€¢ Fraud detection, risk mitigation etc. ā€¢ Oracle 11g Database ā€¢ Used by Betfair for performance and scalability and one of top 5 busiest databases in the world ā€¢ Oracle TimesTen In-Memeory Database ā€¢ The Hong Kong Jockey Club uses TimesTen to perform very fast fraud detection processing ā€¢ Oracle Identity Management (IdM) ā€¢ Used by Shanda to manage ID of upto 2M concurrent users
  • 5. Oracle High Performance Computing Comprehensive and Best of Breed Management WebCache WebLogic Server Tuxedo Tools Content Cache J2EE and Messaging Low Latency Monitoring Coherence Data Grid Complex Event TPM Processing SLAā€™s Low Latency and Mature Scalable Low Latency QoS and Resilient EQL Proven Diagnostics JRockit Real-Time JVM Real- Fast Low Latency Predictable Provisioning TimesTen Berkeley DB In-Memory Low Latency SQL XML Oracle RAC Embedded Commodity Hardware Scale Out Transactional
  • 6. Oracle Coherence Data Grid Uses Caching Applications request data from the Data Grid rather than backend data sources Analytics Applications ask the Data Grid questions from simple queries to advanced scenario modeling Transactions Data Grid acts as a transactional System of Record, hosting data and business logic Events Automated processing based on event
  • 7. The Coherence Approachā€¦ ā€¢ Consensus is key ā€¢ Communication is more efficient (peer-to-peer) ā€¢ No outages for voting (no need ā€“ everyone is a peer) ā€¢ No SPoF, SPoB ā€¢ No need for broadcast traffic (yelling at each other) ā€¢ You can do many things once you have ā€œconsensusā€.
  • 8. TCMP Provides the Foundations
  • 9. What is Coherence? ā€¢ Coherence (deployment perspective) ā€¢ Single Library* ā€¢ *Other libraries for integration (L2C, Springā€¦) ā€¢ Configurable implementations of standard Map interfaces (called NamedCacheā€™s) ā€¢ Standard Java Archive ā€œJARā€ for Java ā€¢ Standard Dynamically Linked Library ā€œDLLā€ for .NET connectivity (.Net 1.1 and 2.0) ā€¢ Standard DLL or .so for C++ clients ā€¢ No 3rd party dependencies! ā€¢ Minimal ā€œinvasionā€ on standard code* ā€¢ ā€œRemoteExceptionā€ free distributed computing
  • 10. Introduction to NamedCaches ā€¢ Developers use NamedCaches to manage data ā€¢ An composite interface which includes Map ā€¢ NamedCache ā€¢ Logically equivalent to a Database table ā€¢ Store related types of information (trades, orders, sessions) ā€¢ May be hundreds / thousands of per Application ā€¢ May be dynamically created ā€¢ May contain any data (no need to setup a schema) ā€¢ No restriction on types (homogeneous and heterogeneous) ā€¢ Not relational (but may be)
  • 11. Clustered Hello World! public void main(String[] args) throws IOException { NamedCache nc = CacheFactory.getCache(ā€œtestā€); nc.put(ā€œkeyā€, ā€œHello Worldā€); System.out.println(nc.get(ā€œkeyā€)); System.in.read(); //may throw exception } ā€¢ Joins / Establishes a cluster ā€¢ Places an Entry (key, value) into the Cache ā€œtestā€ (notice no configuration) ā€¢ Retrieves the Entry from the Cache. ā€¢ Displays it. ā€¢ ā€œreadā€ at the end to keep the application (and Cluster) from terminating.
  • 12. Caching Strategies (schemes) Different cache implementations ā€¢ Local ā€¢ Local on-heap caching for non-clustered caching. ā€¢ Replicated ā€¢ Perfect for small, read-heavy caches. ā€¢ Partitioned ā€¢ True linear scalability for both read and write access. Data is automatically, dynamically and transparently partitioned across nodes. The distribution algorithm minimizes network traffic and avoids service pauses by incrementally shifting data. ā€¢ Near Cache ā€¢ Provides the performance of local caching with the scalability of distributed caching. Several different near-cache strategies provide varying tradeoffs between performance and synchronization guarantees.
  • 16. The Near Scheme ā€¢ A composition of pluggable Front and Back schemes ā€¢ Provides L1 and L2 caching (cache of a cache) ā€¢ Why: ā€¢ Partitioned Topology may always go across the wire ā€¢ Need a local cache (L1) over the distributed scheme (L2) ā€¢ Best option for scalable performance! ā€¢ How: ā€¢ Configure ā€˜frontā€™ and ā€˜backā€™ topologies ā€¢ Configurable Expiration Policies: ā€¢ LFU, LRU, Hybrid (LFU+LRU), Time-based, Never, Pluggable
  • 20. Queries ā€¢ Filters applied in parallel (in the Grid) ā€¢ A large range of filters out-of-the-box: All, Always, And, Any, Array, Between, ContainsAll, ContainsAny, Contains, Equals, GreaterEquals, Greater, In, InKeySet, IsNotNull, IsNull, LessEquals, Less, Like, Limit, Never, NotEquals, Not, Orā€¦ Filter filter = new AndFilter( new EqualsFilter("getTrader", traderId), new EqualsFilter("getStatus", Status.OPEN)); Set setOpenTrades = mapTrades.entrySet(filter);
  • 22. Real Time Events ā€¢ Maintain real time visibility into data changes ā€¢ Desktops ā€¢ The usual example is the ā€œTrader desktopā€ ā€¢ Watch data change in near real time ā€¢ Typically a few milliseconds ā€¢ Servers ā€¢ Monitoring data to trigger additional processing ā€¢ Event Driven Architecture within the data grid ā€¢ Very wide-ranging set of use cases ā€¢ Not many common patterns of usage
  • 23. Continuous Query Cache Coherence implements Continuous Query using a combination of its data fabric parallel query capability and its real-time event- filtering and streaming. The result is support for thousands of client application instances, such as trading desktops. Using the previous trading system example, it can be converted to a Continuous Query with only one a single line of code changed NamedCache mapTrades = ... Filter filter = new AndFilter(new EqualsFilter("getTrader", traderid), new EqualsFilter("getStatus", Status.OPEN)); NamedCache mapOpenTrades = new ContinuousQueryCache(mapTrades, filter);
  • 24. Transaction Management ā€¢ Explicit transaction management ā€¢ Using the general pattern for pessimistic transactions is "lock -> read -> write -> unlock". For optimistic transactions, the sequence is "read -> lock & validate -> write -> unlock". ā€¢ Implicit transaction management ā€¢ Locking "by convention" ā€“ for example, requiring that all acessors lock only the "parent" Order object. Doing this can reduce the scope of the lock from table-level to order-level, enabling far higher scalability ā€¢ Further transaction optimizations ā€¢ Using EntryProcessors ā€“ sending the code to the data, so that operations are queued and all locking is local. Operations must be idempotent.
  • 27. HTTP Session Caching Overview ā€¢ No code changes required to use ā€¢ Portlet state can be cached ā€¢ Built into WLS and WLP Benefits ā€¢ Enables stateless middle tier ā€¢ Better hardware utilization ā€¢ Simpler network infrastructure ā€¢ Facilitates modular application improvements ā€¢ Scales out middle tier
  • 28. Serialization Portable Object Format (POF) ā€¢ Benefits ā€¢ Can store more data ā€¢ Can read/write and move data faster 5x Smaller 10x Faster De-Serialization Coherence Serialization Test Results Coherence Compression Test Results 12000 10078 1000 900 867 10000 800 8000 700 600 Time (ms) 6000 Bytes 500 400 4000 309 322 1625 2070 300 2360 1234 186 2000 200 484 100 0 734 De-serialization 547 0 Serialization Java Serialization Java ExternalizationLite XMLBean POF De-serialization ExternalizationLite XMLBean Se rialization M echanisum POF
  • 29. Coherence Incubator Patterns ā€¢ Pre-built examples ā€¢ Used in production systems ā€¢ Thoroughly tested ā€¢ Extensible ā€¢ Optimised ā€¢ Incorporate best practice
  • 30. Gaming Challenges ā€¢ Extreme scalability 500k+ users ā€¢ Reliability. Outages damage reputation and can cost Ā£100k+ p/hr ā€¢ Flexibility. Enable products to be quickly brought to market
  • 31. Extreme Scalability ā€¢ Scaling Users ā€¢ 100k ā€“ 1M online users ā€¢ Asynchronously update database so reduce latency, open connections etc. ā€¢ Scaling Transactions and Processing ā€¢ Betfair ā€¢ INCERNO processed 5k TPS in simulation tests with no discernable deterioration in performance or reliability. ā€¢ Scaling Data Capacity, >100 GB ā€¢ Off-heap storage option in release 3.5 ā€¢ Potential storage limit now > TB
  • 32. Extreme Reliability ā€¢ Non-Stop running ā€¢ 2 years+ continuous running ā€¢ Withstand database or link replication failure ā€¢ Queue requests ā€¢ Failure of multiple servers ā€¢ No ā€˜Single Point Of Failureā€™ ā€¢ Processing (as well as data) failover
  • 33. Extreme Flexibility ā€¢ Native Java, C++ and .NET clients ā€¢ Simple Map and IDictionary API ā€¢ Simple to install ā€¢ Pre-built examples (Incubator Projects) ā€¢ Seamless HTTP Session integration for J2EE and .NET ā€¢ Support of Hibernate, JPA and Spring Support ā€¢ Active forums and SIGā€™s ā€¢ Well documented
  • 34. Summary ā€¢ Coherenceā„¢ is the leading product for high <Insert Picture Here> performance distributed in-memory data services ā€¢ Proven technology, 100+ customers and 1500+ production systems ā€¢ Offers a unique combination of features ā€¢ Coherenceā„¢ is easy to use and delivers data performance, scalability and reliability