SlideShare a Scribd company logo
The lay of the land:
The main architectural
   constructs in the
  database industry
Shared
 Disk
ms          μs           ns             ps

 1MB Disk/Network                  1MB Main Memory


           0.000,000,000,000
Cross Continental               Main Memory                        L1 Cache Ref
Round Trip                      Ref
          Cross Network Round          L2 Cache Ref
          Trip               * L1 ref is about 2 clock cycles or 0.7ns. This is the
                                        time it takes light to travel 20cm
Taken from “OLTP Through
the Looking Glass, and
What We Found There”
Harizopoulos et al
In-Memory     TimesTen,
                   Database     HSQL, KD
                                    B

                   Shared       Vertica, Gre
                  Nothing        enplumb


 Regular          Distributed      Exasol,
Database          In-Memory     VoltDB, Hana
Oracle, Sybase,
    MySql

                   NoSQL        Mongo, Cass
                                  andra



                   Data Grid    Coherence,
                                 Teracotta
Distributed
    Architecture

Simplify the Contract


   Stick to RAM
450 processes         2TB of RAM
                                             Oracle
                                            Coherenc
                                               e




Messaging (Topic Based) as a system of record
                  (persistence)
Access Layer   Jav    Jav
                a      a
               clie   clie
                nt
               API     nt
                      API
Query Layer




                             Transaction
Data Layer




                             s
                                  Mtms

                               Cashflows
Persistence
  Layer
Indexing




Partitioning              Replication
But your storage is limited by
the memory on a node
Associating data in
different partitions implies
moving it.




Scalable storage, bandwidth
and processing
Trade
    r            Part        Version 1
                  y
          Trad
           e       Trade
                     r            Part        Version 2
                                   y
                           Trad
                            e       Trade
                                      r            Part        Version 3
                                                    y
                                            Trad
                                             e       Trade
                                                       r            Part   Version 4
                                                                     y
                                                             Trad
…and you need                                                 e

versioning to do MVCC
Trad          Trade
       Part
 e              r
        y

       Part   Trade
Trad    y       r
 e
       Part
        y     Trade
                r
Trad
 e     Part
        y
So we want to hold
   entities separately
(normalised) to alleviate
    concerns around
 consistency and space
          usage
Independently                                  Data is
  Versioned             Trade
                                              Singleton
                          r            Part
                                        y
                                Trad
                                 e




      Trad      Trade                          Part
       e          r
                                                y
Trade
                 r            Part
                               y
                       Trad
                        e




Trad   Trade                         Part
 e       r
                                      y
This is what using Snowflake Schemas and
  the Connected Replication pattern is all
                   about!
Crosscuttin
    g
   Keys




Common
 Keys
Replicated
Trader
                 Party


         Trade
                         Partitioned
Facts:
=>Big,
common
keys

Dimensions
=>Small,
crosscutting
Keys
Use a Key
                   Assignment
Trade
                     Policy
           MTMs   (e.g. KeyAssociation
  s
                     in Coherence)

        Common
          Key
Replicated
Trader
                 Party


         Trade
                         Partitioned
Query Layer
Trader
             Party

         Trade




                        Transactions




                                        Data Layer
                             Mtms

                          Cashflows



                     Fact Storage
                     (Partitioned)
Dimension
                       s
                  (repliacte)
   Transactions
                     Facts
        Mtms

     Cashflows
                  (distribute/
                   partition)
Fact Storage
(Partitioned)
Facts:
=>Big
=>Distribut
     e

Dimensions
=>Small
=> Replicate
We use a variant on a
   Snowflake Schema to
partition big entities that can
be related via a partitioning
key and replicate small stuff
who’s keys can’t map to our
        partitioning key.
Replicate




Distribute
Select Transaction, MTM,
RefrenceData From MTM,
Transaction, Ref Where Cost Centre
= ‘CC1’
Get      Get    Get    Get      Get   Get      Get
 Cost    Ledger Source Transa   MTMs   Legs     Cost
Center   Books Books c-tions                   Center
  s                                              s




                     Network
                                              Time
Get       Get      Get     Get    Get   Get     Get
 Cost     Ledger   Source Transac MTMs   Legs    Cost
Centers   Books    Books -tions                 Centers




                        Network
Select Transaction, MTM, ReferenceData From
MTM, Transaction, Ref Where Cost Centre =
‘CC1’


                                   Join
                                   Dimensions in
                                   Query Layer
                                Transactions


                                      Mtms


                                  Cashflows



                              Partitioned
Select Transaction, MTM, ReferenceData From
MTM, Transaction, Ref Where Cost Centre =
‘CC1’


                                   Join
                                   Dimensions in
                                   Query Layer
                                Transactions


                       Join Facts     Mtms


                       acrossCashflows
                              cluster

                              Partitioned
Select Transaction, MTM, ReferenceData From
             MTM, Transaction, Ref Where Cost Centre =
             ‘CC1’

Join                                            Join Dimensions
Dimensions                                      in Query Layer
in Query
Layer

                                             Transactions


                                    Join FactsMtms

                                    across Cashflows
                                           cluster

                                           Partitioned
Jav
Replicated         a
                  clie
                           Partitioned
                   nt
                  API
Dimensions                   Facts




We never have to do a distributed join!
So all the big stuff is
  held partitioned



 And we can join
 without shipping
 keys around and
having intermediate
      results
Trade
                 r            Part
                               y
                       Trad
                        e




Trad   Trade                         Part
 e       r
                                      y
Trade
  r            Part        Version 1
                y
        Trad
         e       Trade
                   r            Part        Version 2
                                 y
                         Trad
                          e       Trade
                                    r            Part        Version 3
                                                  y
                                          Trad
                                           e       Trade
                                                     r            Part   Version 4
                                                                   y
                                                           Trad
                                                            e
Trad          Trade
       Part
 e              r
        y

       Part   Trade
Trad    y       r
 e
       Part
        y     Trade
                r
Trad
 e     Part
        y
Facts


This is a dimension
  • It has a different
    key to the Facts.    Dimensions
  • And it’s BIG
So we only replicate
‘Connected’ or ‘Used’
     dimensions
Processing Layer
                        Dimension
                         Caches
                       (Replicated)
                                      Transactions




                                                       Data Layer
As new Facts are added                     Mtms
relevant Dimensions that
they reference are moved
                                        Cashflows
to processing layer
caches

                               Fact Storage
                               (Partitioned)
Query Layer
    Save Trade                  (With connected
                                dimension Caches)

                                Data Layer
Cache
            Trad                (All Normalised)
Store         e

                                      Partitioned
            Trigger                   Cache
    Party             Sourc   Ccy
    Alias               e
                      Book
Query Layer
                         (With connected
                         dimension Caches)

                         Data Layer
        Trad             (All Normalised)
          e



Party          Sourc   Ccy
Alias            e
               Book
Query Layer
                                  (With connected
                                  dimension Caches)

                                  Data Layer
        Trad                      (All Normalised)
          e



Party           Sourc           Ccy
Alias             e
                Book


        Party           Ledge
                        rBook
‘Connected Replication’
   A simple pattern which
recurses through the foreign
 keys in the domain model,
 ensuring only ‘Connected’
 dimensions are replicated
With ‘Connected
  Replication’ only
  1/10th of the data

needs to be replicated
    (on average).
Jav
               a

Java schema   clie
               nt
              API    Java ‘Stored
                     Procedures’
                         and
                      ‘Triggers’
Query with more
        than twenty joins
           conditions:


2GB per min /
  250Mb/s           3ms latency
 (per client)
Partitioned
 Storage
Java Tech & Tools | Beyond the Data Grid: Coherence, Normalisation, Joins and Linear Scalability | Ben Stopford
Java Tech & Tools | Beyond the Data Grid: Coherence, Normalisation, Joins and Linear Scalability | Ben Stopford

More Related Content

Viewers also liked

華語教學必用的雙拼快注音Instant bopomo chinese phonetic symbols
華語教學必用的雙拼快注音Instant bopomo chinese phonetic symbols華語教學必用的雙拼快注音Instant bopomo chinese phonetic symbols
華語教學必用的雙拼快注音Instant bopomo chinese phonetic symbols
frankjia
 
Lengua anuncio
Lengua anuncioLengua anuncio
Lengua anunciofranky226
 
La sociedad-civil-y-la-construccin-de-ciudadana
La sociedad-civil-y-la-construccin-de-ciudadanaLa sociedad-civil-y-la-construccin-de-ciudadana
La sociedad-civil-y-la-construccin-de-ciudadanalassershot
 
Java Tech & Tools | Grails in the Java Enterprise | Peter Ledbrook
Java Tech & Tools | Grails in the Java Enterprise | Peter LedbrookJava Tech & Tools | Grails in the Java Enterprise | Peter Ledbrook
Java Tech & Tools | Grails in the Java Enterprise | Peter Ledbrook
JAX London
 
Aiducation catalogue feb 28 version
Aiducation catalogue feb 28 versionAiducation catalogue feb 28 version
Aiducation catalogue feb 28 version
Elaine Chow
 
гарчиггүй 1
гарчиггүй 1гарчиггүй 1
гарчиггүй 1mongoo_8301
 
Mla citation guide & citation data forms
Mla citation guide & citation data formsMla citation guide & citation data forms
Mla citation guide & citation data formsProfWillAdams
 
Top Application Performance Landmines
Top Application Performance LandminesTop Application Performance Landmines
Top Application Performance Landmines
Andreas Grabner
 
Hum2220 fa2016 syllabus
Hum2220 fa2016 syllabusHum2220 fa2016 syllabus
Hum2220 fa2016 syllabus
ProfWillAdams
 
地域コミュニティ活性化プロジェクト実証実験のご紹介
地域コミュニティ活性化プロジェクト実証実験のご紹介地域コミュニティ活性化プロジェクト実証実験のご紹介
地域コミュニティ活性化プロジェクト実証実験のご紹介
Shinichi Yamao
 
Essential Mobile Design: Interface Principles and Best Practices for iOS, And...
Essential Mobile Design: Interface Principles and Best Practices for iOS, And...Essential Mobile Design: Interface Principles and Best Practices for iOS, And...
Essential Mobile Design: Interface Principles and Best Practices for iOS, And...
Qubop Inc.
 
Prototype and Test - Uncertainty
Prototype and Test - UncertaintyPrototype and Test - Uncertainty
Prototype and Test - Uncertainty
Charles Sun
 
Hum1020 sp2015 syllabus
Hum1020 sp2015 syllabusHum1020 sp2015 syllabus
Hum1020 sp2015 syllabusProfWillAdams
 

Viewers also liked (19)

華語教學必用的雙拼快注音Instant bopomo chinese phonetic symbols
華語教學必用的雙拼快注音Instant bopomo chinese phonetic symbols華語教學必用的雙拼快注音Instant bopomo chinese phonetic symbols
華語教學必用的雙拼快注音Instant bopomo chinese phonetic symbols
 
Lengua anuncio
Lengua anuncioLengua anuncio
Lengua anuncio
 
La sociedad-civil-y-la-construccin-de-ciudadana
La sociedad-civil-y-la-construccin-de-ciudadanaLa sociedad-civil-y-la-construccin-de-ciudadana
La sociedad-civil-y-la-construccin-de-ciudadana
 
Java Tech & Tools | Grails in the Java Enterprise | Peter Ledbrook
Java Tech & Tools | Grails in the Java Enterprise | Peter LedbrookJava Tech & Tools | Grails in the Java Enterprise | Peter Ledbrook
Java Tech & Tools | Grails in the Java Enterprise | Peter Ledbrook
 
Aiducation catalogue feb 28 version
Aiducation catalogue feb 28 versionAiducation catalogue feb 28 version
Aiducation catalogue feb 28 version
 
гарчиггүй 1
гарчиггүй 1гарчиггүй 1
гарчиггүй 1
 
Mla citation guide & citation data forms
Mla citation guide & citation data formsMla citation guide & citation data forms
Mla citation guide & citation data forms
 
Clothes & markets
Clothes & marketsClothes & markets
Clothes & markets
 
Top Application Performance Landmines
Top Application Performance LandminesTop Application Performance Landmines
Top Application Performance Landmines
 
Promo Snh Congres Zorgvastgoed
Promo Snh Congres ZorgvastgoedPromo Snh Congres Zorgvastgoed
Promo Snh Congres Zorgvastgoed
 
Hum2220 fa2016 syllabus
Hum2220 fa2016 syllabusHum2220 fa2016 syllabus
Hum2220 fa2016 syllabus
 
My day Jesus
My day JesusMy day Jesus
My day Jesus
 
地域コミュニティ活性化プロジェクト実証実験のご紹介
地域コミュニティ活性化プロジェクト実証実験のご紹介地域コミュニティ活性化プロジェクト実証実験のご紹介
地域コミュニティ活性化プロジェクト実証実験のご紹介
 
Nickerson east aurora sept 4, 2012
Nickerson east aurora sept 4, 2012Nickerson east aurora sept 4, 2012
Nickerson east aurora sept 4, 2012
 
Essential Mobile Design: Interface Principles and Best Practices for iOS, And...
Essential Mobile Design: Interface Principles and Best Practices for iOS, And...Essential Mobile Design: Interface Principles and Best Practices for iOS, And...
Essential Mobile Design: Interface Principles and Best Practices for iOS, And...
 
Wundt, w. (1897)
Wundt, w. (1897)Wundt, w. (1897)
Wundt, w. (1897)
 
Prototype and Test - Uncertainty
Prototype and Test - UncertaintyPrototype and Test - Uncertainty
Prototype and Test - Uncertainty
 
Hum1020 sp2015 syllabus
Hum1020 sp2015 syllabusHum1020 sp2015 syllabus
Hum1020 sp2015 syllabus
 
Alberti Center Guide to School-Wide Bullying Prevention Programs
Alberti Center Guide to School-Wide Bullying Prevention Programs Alberti Center Guide to School-Wide Bullying Prevention Programs
Alberti Center Guide to School-Wide Bullying Prevention Programs
 

Similar to Java Tech & Tools | Beyond the Data Grid: Coherence, Normalisation, Joins and Linear Scalability | Ben Stopford

Balancing Replication and Partitioning in a Distributed Java Database
Balancing Replication and Partitioning in a Distributed Java DatabaseBalancing Replication and Partitioning in a Distributed Java Database
Balancing Replication and Partitioning in a Distributed Java Database
Ben Stopford
 
Advanced databases ben stopford
Advanced databases   ben stopfordAdvanced databases   ben stopford
Advanced databases ben stopfordBen Stopford
 
Beyond The Data Grid: Coherence, Normalisation, Joins and Linear Scalability
Beyond The Data Grid: Coherence, Normalisation, Joins and Linear ScalabilityBeyond The Data Grid: Coherence, Normalisation, Joins and Linear Scalability
Beyond The Data Grid: Coherence, Normalisation, Joins and Linear Scalability
Ben Stopford
 
Millions quotes per second in pure java
Millions quotes per second in pure javaMillions quotes per second in pure java
Millions quotes per second in pure javaRoman Elizarov
 
Return of the transaction king
Return of the transaction kingReturn of the transaction king
Return of the transaction king
Ryan Knight
 
OpenSPARC T1 Processor
OpenSPARC T1 ProcessorOpenSPARC T1 Processor
OpenSPARC T1 ProcessorDVClub
 
Memory-Based Cloud Architectures
Memory-Based Cloud ArchitecturesMemory-Based Cloud Architectures
Memory-Based Cloud Architectures小新 制造
 
Slash n: Technical Session 3 - Storage @ Scale: Quest for the mythical silver...
Slash n: Technical Session 3 - Storage @ Scale: Quest for the mythical silver...Slash n: Technical Session 3 - Storage @ Scale: Quest for the mythical silver...
Slash n: Technical Session 3 - Storage @ Scale: Quest for the mythical silver...slashn
 
OpenMAMA as a Middleware Standard - Ensuring User Choice in Messaging Systems
OpenMAMA as a Middleware Standard - Ensuring User Choice in Messaging SystemsOpenMAMA as a Middleware Standard - Ensuring User Choice in Messaging Systems
OpenMAMA as a Middleware Standard - Ensuring User Choice in Messaging SystemsOpenMAMA
 
Design Patterns for Distributed Non-Relational Databases
Design Patterns for Distributed Non-Relational DatabasesDesign Patterns for Distributed Non-Relational Databases
Design Patterns for Distributed Non-Relational Databases
guestdfd1ec
 
Prototyping Business Processes
Prototyping Business ProcessesPrototyping Business Processes
Prototyping Business Processes
Ang Chen
 
Basho and Riak at GOTO Stockholm: "Don't Use My Database."
Basho and Riak at GOTO Stockholm:  "Don't Use My Database."Basho and Riak at GOTO Stockholm:  "Don't Use My Database."
Basho and Riak at GOTO Stockholm: "Don't Use My Database."
Basho Technologies
 
LeanXcale Presentation - Waterloo University
LeanXcale Presentation - Waterloo UniversityLeanXcale Presentation - Waterloo University
LeanXcale Presentation - Waterloo University
Ricardo Jimenez-Peris
 
DSTree: A Tree Structure for the Mining of Frequent Sets from Data Streams
DSTree: A Tree Structure for the Mining of Frequent Sets from Data StreamsDSTree: A Tree Structure for the Mining of Frequent Sets from Data Streams
DSTree: A Tree Structure for the Mining of Frequent Sets from Data Streams
AllenWu
 
Manage complexity
Manage complexityManage complexity
Manage complexity
Reinhold Thurner
 
OpenStack and OpenFlow Demos
OpenStack and OpenFlow DemosOpenStack and OpenFlow Demos
OpenStack and OpenFlow Demos
Brent Salisbury
 
Interprocess communication
Interprocess communicationInterprocess communication
Interprocess communicationSushil Singh
 
Neecom 2010 (Inovis-Dell case study)
Neecom 2010 (Inovis-Dell case study)Neecom 2010 (Inovis-Dell case study)
Neecom 2010 (Inovis-Dell case study)Doug Kern
 
Seattle Scalability - GigaSpaces / Cassandra
Seattle Scalability - GigaSpaces / CassandraSeattle Scalability - GigaSpaces / Cassandra
Seattle Scalability - GigaSpaces / Cassandra
clive boulton
 
J2ee Transaction Overview
J2ee Transaction OverviewJ2ee Transaction Overview
J2ee Transaction Overview
Terry Cho
 

Similar to Java Tech & Tools | Beyond the Data Grid: Coherence, Normalisation, Joins and Linear Scalability | Ben Stopford (20)

Balancing Replication and Partitioning in a Distributed Java Database
Balancing Replication and Partitioning in a Distributed Java DatabaseBalancing Replication and Partitioning in a Distributed Java Database
Balancing Replication and Partitioning in a Distributed Java Database
 
Advanced databases ben stopford
Advanced databases   ben stopfordAdvanced databases   ben stopford
Advanced databases ben stopford
 
Beyond The Data Grid: Coherence, Normalisation, Joins and Linear Scalability
Beyond The Data Grid: Coherence, Normalisation, Joins and Linear ScalabilityBeyond The Data Grid: Coherence, Normalisation, Joins and Linear Scalability
Beyond The Data Grid: Coherence, Normalisation, Joins and Linear Scalability
 
Millions quotes per second in pure java
Millions quotes per second in pure javaMillions quotes per second in pure java
Millions quotes per second in pure java
 
Return of the transaction king
Return of the transaction kingReturn of the transaction king
Return of the transaction king
 
OpenSPARC T1 Processor
OpenSPARC T1 ProcessorOpenSPARC T1 Processor
OpenSPARC T1 Processor
 
Memory-Based Cloud Architectures
Memory-Based Cloud ArchitecturesMemory-Based Cloud Architectures
Memory-Based Cloud Architectures
 
Slash n: Technical Session 3 - Storage @ Scale: Quest for the mythical silver...
Slash n: Technical Session 3 - Storage @ Scale: Quest for the mythical silver...Slash n: Technical Session 3 - Storage @ Scale: Quest for the mythical silver...
Slash n: Technical Session 3 - Storage @ Scale: Quest for the mythical silver...
 
OpenMAMA as a Middleware Standard - Ensuring User Choice in Messaging Systems
OpenMAMA as a Middleware Standard - Ensuring User Choice in Messaging SystemsOpenMAMA as a Middleware Standard - Ensuring User Choice in Messaging Systems
OpenMAMA as a Middleware Standard - Ensuring User Choice in Messaging Systems
 
Design Patterns for Distributed Non-Relational Databases
Design Patterns for Distributed Non-Relational DatabasesDesign Patterns for Distributed Non-Relational Databases
Design Patterns for Distributed Non-Relational Databases
 
Prototyping Business Processes
Prototyping Business ProcessesPrototyping Business Processes
Prototyping Business Processes
 
Basho and Riak at GOTO Stockholm: "Don't Use My Database."
Basho and Riak at GOTO Stockholm:  "Don't Use My Database."Basho and Riak at GOTO Stockholm:  "Don't Use My Database."
Basho and Riak at GOTO Stockholm: "Don't Use My Database."
 
LeanXcale Presentation - Waterloo University
LeanXcale Presentation - Waterloo UniversityLeanXcale Presentation - Waterloo University
LeanXcale Presentation - Waterloo University
 
DSTree: A Tree Structure for the Mining of Frequent Sets from Data Streams
DSTree: A Tree Structure for the Mining of Frequent Sets from Data StreamsDSTree: A Tree Structure for the Mining of Frequent Sets from Data Streams
DSTree: A Tree Structure for the Mining of Frequent Sets from Data Streams
 
Manage complexity
Manage complexityManage complexity
Manage complexity
 
OpenStack and OpenFlow Demos
OpenStack and OpenFlow DemosOpenStack and OpenFlow Demos
OpenStack and OpenFlow Demos
 
Interprocess communication
Interprocess communicationInterprocess communication
Interprocess communication
 
Neecom 2010 (Inovis-Dell case study)
Neecom 2010 (Inovis-Dell case study)Neecom 2010 (Inovis-Dell case study)
Neecom 2010 (Inovis-Dell case study)
 
Seattle Scalability - GigaSpaces / Cassandra
Seattle Scalability - GigaSpaces / CassandraSeattle Scalability - GigaSpaces / Cassandra
Seattle Scalability - GigaSpaces / Cassandra
 
J2ee Transaction Overview
J2ee Transaction OverviewJ2ee Transaction Overview
J2ee Transaction Overview
 

More from JAX London

Java Tech & Tools | Continuous Delivery - the Writing is on the Wall | John S...
Java Tech & Tools | Continuous Delivery - the Writing is on the Wall | John S...Java Tech & Tools | Continuous Delivery - the Writing is on the Wall | John S...
Java Tech & Tools | Continuous Delivery - the Writing is on the Wall | John S...
JAX London
 
Java Tech & Tools | Mapping, GIS and Geolocating Data in Java | Joachim Van d...
Java Tech & Tools | Mapping, GIS and Geolocating Data in Java | Joachim Van d...Java Tech & Tools | Mapping, GIS and Geolocating Data in Java | Joachim Van d...
Java Tech & Tools | Mapping, GIS and Geolocating Data in Java | Joachim Van d...
JAX London
 
Keynote | Middleware Everywhere - Ready for Mobile and Cloud | Dr. Mark Little
Keynote | Middleware Everywhere - Ready for Mobile and Cloud | Dr. Mark LittleKeynote | Middleware Everywhere - Ready for Mobile and Cloud | Dr. Mark Little
Keynote | Middleware Everywhere - Ready for Mobile and Cloud | Dr. Mark Little
JAX London
 
Spring Day | WaveMaker - Spring Roo - SpringSource Tool Suite: Choosing the R...
Spring Day | WaveMaker - Spring Roo - SpringSource Tool Suite: Choosing the R...Spring Day | WaveMaker - Spring Roo - SpringSource Tool Suite: Choosing the R...
Spring Day | WaveMaker - Spring Roo - SpringSource Tool Suite: Choosing the R...
JAX London
 
Spring Day | Behind the Scenes at Spring Batch | Dave Syer
Spring Day | Behind the Scenes at Spring Batch | Dave SyerSpring Day | Behind the Scenes at Spring Batch | Dave Syer
Spring Day | Behind the Scenes at Spring Batch | Dave Syer
JAX London
 
Spring Day | Spring 3.1 in a Nutshell | Sam Brannen
Spring Day | Spring 3.1 in a Nutshell | Sam BrannenSpring Day | Spring 3.1 in a Nutshell | Sam Brannen
Spring Day | Spring 3.1 in a Nutshell | Sam Brannen
JAX London
 
Spring Day | Identity Management with Spring Security | Dave Syer
Spring Day | Identity Management with Spring Security | Dave SyerSpring Day | Identity Management with Spring Security | Dave Syer
Spring Day | Identity Management with Spring Security | Dave Syer
JAX London
 
Spring Day | Spring and Scala | Eberhard Wolff
Spring Day | Spring and Scala | Eberhard WolffSpring Day | Spring and Scala | Eberhard Wolff
Spring Day | Spring and Scala | Eberhard Wolff
JAX London
 
Spring Day | Data Access 2.0? Please Welcome Spring Data! | Oliver Gierke
Spring Day | Data Access 2.0? Please Welcome Spring Data! | Oliver GierkeSpring Day | Data Access 2.0? Please Welcome Spring Data! | Oliver Gierke
Spring Day | Data Access 2.0? Please Welcome Spring Data! | Oliver GierkeJAX London
 
Keynote | The Rise and Fall and Rise of Java | James Governor
Keynote | The Rise and Fall and Rise of Java | James GovernorKeynote | The Rise and Fall and Rise of Java | James Governor
Keynote | The Rise and Fall and Rise of Java | James GovernorJAX London
 
Java Tech & Tools | OSGi Best Practices | Emily Jiang
Java Tech & Tools | OSGi Best Practices | Emily JiangJava Tech & Tools | OSGi Best Practices | Emily Jiang
Java Tech & Tools | OSGi Best Practices | Emily JiangJAX London
 
Java Tech & Tools | Big Blobs: Moving Big Data In and Out of the Cloud | Adri...
Java Tech & Tools | Big Blobs: Moving Big Data In and Out of the Cloud | Adri...Java Tech & Tools | Big Blobs: Moving Big Data In and Out of the Cloud | Adri...
Java Tech & Tools | Big Blobs: Moving Big Data In and Out of the Cloud | Adri...JAX London
 
Java Tech & Tools | Social Media in Programming in Java | Khanderao Kand
Java Tech & Tools | Social Media in Programming in Java | Khanderao KandJava Tech & Tools | Social Media in Programming in Java | Khanderao Kand
Java Tech & Tools | Social Media in Programming in Java | Khanderao Kand
JAX London
 
Java Tech & Tools | Just Keep Passing the Message | Russel Winder
Java Tech & Tools | Just Keep Passing the Message | Russel WinderJava Tech & Tools | Just Keep Passing the Message | Russel Winder
Java Tech & Tools | Just Keep Passing the Message | Russel Winder
JAX London
 
Java Tech & Tools | Deploying Java & Play Framework Apps to the Cloud | Sande...
Java Tech & Tools | Deploying Java & Play Framework Apps to the Cloud | Sande...Java Tech & Tools | Deploying Java & Play Framework Apps to the Cloud | Sande...
Java Tech & Tools | Deploying Java & Play Framework Apps to the Cloud | Sande...JAX London
 
Java EE | Modular EJBs for Enterprise OSGi | Tim Ward
Java EE | Modular EJBs for Enterprise OSGi | Tim WardJava EE | Modular EJBs for Enterprise OSGi | Tim Ward
Java EE | Modular EJBs for Enterprise OSGi | Tim Ward
JAX London
 
Java EE | Apache TomEE - Java EE Web Profile on Tomcat | Jonathan Gallimore
Java EE | Apache TomEE - Java EE Web Profile on Tomcat | Jonathan GallimoreJava EE | Apache TomEE - Java EE Web Profile on Tomcat | Jonathan Gallimore
Java EE | Apache TomEE - Java EE Web Profile on Tomcat | Jonathan Gallimore
JAX London
 
Java Core | Understanding the Disruptor: a Beginner's Guide to Hardcore Concu...
Java Core | Understanding the Disruptor: a Beginner's Guide to Hardcore Concu...Java Core | Understanding the Disruptor: a Beginner's Guide to Hardcore Concu...
Java Core | Understanding the Disruptor: a Beginner's Guide to Hardcore Concu...
JAX London
 
Java Core | Java 8 and OSGi Modularisation | Tim Ellison & Neil Bartlett
Java Core | Java 8 and OSGi Modularisation | Tim Ellison & Neil BartlettJava Core | Java 8 and OSGi Modularisation | Tim Ellison & Neil Bartlett
Java Core | Java 8 and OSGi Modularisation | Tim Ellison & Neil Bartlett
JAX London
 
Java Core | JavaFX 2.0: Great User Interfaces in Java | Simon Ritter
Java Core | JavaFX 2.0: Great User Interfaces in Java | Simon RitterJava Core | JavaFX 2.0: Great User Interfaces in Java | Simon Ritter
Java Core | JavaFX 2.0: Great User Interfaces in Java | Simon Ritter
JAX London
 

More from JAX London (20)

Java Tech & Tools | Continuous Delivery - the Writing is on the Wall | John S...
Java Tech & Tools | Continuous Delivery - the Writing is on the Wall | John S...Java Tech & Tools | Continuous Delivery - the Writing is on the Wall | John S...
Java Tech & Tools | Continuous Delivery - the Writing is on the Wall | John S...
 
Java Tech & Tools | Mapping, GIS and Geolocating Data in Java | Joachim Van d...
Java Tech & Tools | Mapping, GIS and Geolocating Data in Java | Joachim Van d...Java Tech & Tools | Mapping, GIS and Geolocating Data in Java | Joachim Van d...
Java Tech & Tools | Mapping, GIS and Geolocating Data in Java | Joachim Van d...
 
Keynote | Middleware Everywhere - Ready for Mobile and Cloud | Dr. Mark Little
Keynote | Middleware Everywhere - Ready for Mobile and Cloud | Dr. Mark LittleKeynote | Middleware Everywhere - Ready for Mobile and Cloud | Dr. Mark Little
Keynote | Middleware Everywhere - Ready for Mobile and Cloud | Dr. Mark Little
 
Spring Day | WaveMaker - Spring Roo - SpringSource Tool Suite: Choosing the R...
Spring Day | WaveMaker - Spring Roo - SpringSource Tool Suite: Choosing the R...Spring Day | WaveMaker - Spring Roo - SpringSource Tool Suite: Choosing the R...
Spring Day | WaveMaker - Spring Roo - SpringSource Tool Suite: Choosing the R...
 
Spring Day | Behind the Scenes at Spring Batch | Dave Syer
Spring Day | Behind the Scenes at Spring Batch | Dave SyerSpring Day | Behind the Scenes at Spring Batch | Dave Syer
Spring Day | Behind the Scenes at Spring Batch | Dave Syer
 
Spring Day | Spring 3.1 in a Nutshell | Sam Brannen
Spring Day | Spring 3.1 in a Nutshell | Sam BrannenSpring Day | Spring 3.1 in a Nutshell | Sam Brannen
Spring Day | Spring 3.1 in a Nutshell | Sam Brannen
 
Spring Day | Identity Management with Spring Security | Dave Syer
Spring Day | Identity Management with Spring Security | Dave SyerSpring Day | Identity Management with Spring Security | Dave Syer
Spring Day | Identity Management with Spring Security | Dave Syer
 
Spring Day | Spring and Scala | Eberhard Wolff
Spring Day | Spring and Scala | Eberhard WolffSpring Day | Spring and Scala | Eberhard Wolff
Spring Day | Spring and Scala | Eberhard Wolff
 
Spring Day | Data Access 2.0? Please Welcome Spring Data! | Oliver Gierke
Spring Day | Data Access 2.0? Please Welcome Spring Data! | Oliver GierkeSpring Day | Data Access 2.0? Please Welcome Spring Data! | Oliver Gierke
Spring Day | Data Access 2.0? Please Welcome Spring Data! | Oliver Gierke
 
Keynote | The Rise and Fall and Rise of Java | James Governor
Keynote | The Rise and Fall and Rise of Java | James GovernorKeynote | The Rise and Fall and Rise of Java | James Governor
Keynote | The Rise and Fall and Rise of Java | James Governor
 
Java Tech & Tools | OSGi Best Practices | Emily Jiang
Java Tech & Tools | OSGi Best Practices | Emily JiangJava Tech & Tools | OSGi Best Practices | Emily Jiang
Java Tech & Tools | OSGi Best Practices | Emily Jiang
 
Java Tech & Tools | Big Blobs: Moving Big Data In and Out of the Cloud | Adri...
Java Tech & Tools | Big Blobs: Moving Big Data In and Out of the Cloud | Adri...Java Tech & Tools | Big Blobs: Moving Big Data In and Out of the Cloud | Adri...
Java Tech & Tools | Big Blobs: Moving Big Data In and Out of the Cloud | Adri...
 
Java Tech & Tools | Social Media in Programming in Java | Khanderao Kand
Java Tech & Tools | Social Media in Programming in Java | Khanderao KandJava Tech & Tools | Social Media in Programming in Java | Khanderao Kand
Java Tech & Tools | Social Media in Programming in Java | Khanderao Kand
 
Java Tech & Tools | Just Keep Passing the Message | Russel Winder
Java Tech & Tools | Just Keep Passing the Message | Russel WinderJava Tech & Tools | Just Keep Passing the Message | Russel Winder
Java Tech & Tools | Just Keep Passing the Message | Russel Winder
 
Java Tech & Tools | Deploying Java & Play Framework Apps to the Cloud | Sande...
Java Tech & Tools | Deploying Java & Play Framework Apps to the Cloud | Sande...Java Tech & Tools | Deploying Java & Play Framework Apps to the Cloud | Sande...
Java Tech & Tools | Deploying Java & Play Framework Apps to the Cloud | Sande...
 
Java EE | Modular EJBs for Enterprise OSGi | Tim Ward
Java EE | Modular EJBs for Enterprise OSGi | Tim WardJava EE | Modular EJBs for Enterprise OSGi | Tim Ward
Java EE | Modular EJBs for Enterprise OSGi | Tim Ward
 
Java EE | Apache TomEE - Java EE Web Profile on Tomcat | Jonathan Gallimore
Java EE | Apache TomEE - Java EE Web Profile on Tomcat | Jonathan GallimoreJava EE | Apache TomEE - Java EE Web Profile on Tomcat | Jonathan Gallimore
Java EE | Apache TomEE - Java EE Web Profile on Tomcat | Jonathan Gallimore
 
Java Core | Understanding the Disruptor: a Beginner's Guide to Hardcore Concu...
Java Core | Understanding the Disruptor: a Beginner's Guide to Hardcore Concu...Java Core | Understanding the Disruptor: a Beginner's Guide to Hardcore Concu...
Java Core | Understanding the Disruptor: a Beginner's Guide to Hardcore Concu...
 
Java Core | Java 8 and OSGi Modularisation | Tim Ellison & Neil Bartlett
Java Core | Java 8 and OSGi Modularisation | Tim Ellison & Neil BartlettJava Core | Java 8 and OSGi Modularisation | Tim Ellison & Neil Bartlett
Java Core | Java 8 and OSGi Modularisation | Tim Ellison & Neil Bartlett
 
Java Core | JavaFX 2.0: Great User Interfaces in Java | Simon Ritter
Java Core | JavaFX 2.0: Great User Interfaces in Java | Simon RitterJava Core | JavaFX 2.0: Great User Interfaces in Java | Simon Ritter
Java Core | JavaFX 2.0: Great User Interfaces in Java | Simon Ritter
 

Recently uploaded

zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
Alex Pruden
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Enhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZEnhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZ
Globus
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
The Metaverse and AI: how can decision-makers harness the Metaverse for their...
The Metaverse and AI: how can decision-makers harness the Metaverse for their...The Metaverse and AI: how can decision-makers harness the Metaverse for their...
The Metaverse and AI: how can decision-makers harness the Metaverse for their...
Jen Stirrup
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
UiPathCommunity
 
UiPath Community Day Dubai: AI at Work..
UiPath Community Day Dubai: AI at Work..UiPath Community Day Dubai: AI at Work..
UiPath Community Day Dubai: AI at Work..
UiPathCommunity
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
Vlad Stirbu
 

Recently uploaded (20)

zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Enhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZEnhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZ
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
The Metaverse and AI: how can decision-makers harness the Metaverse for their...
The Metaverse and AI: how can decision-makers harness the Metaverse for their...The Metaverse and AI: how can decision-makers harness the Metaverse for their...
The Metaverse and AI: how can decision-makers harness the Metaverse for their...
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
 
UiPath Community Day Dubai: AI at Work..
UiPath Community Day Dubai: AI at Work..UiPath Community Day Dubai: AI at Work..
UiPath Community Day Dubai: AI at Work..
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
 

Java Tech & Tools | Beyond the Data Grid: Coherence, Normalisation, Joins and Linear Scalability | Ben Stopford

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6. The lay of the land: The main architectural constructs in the database industry
  • 7.
  • 9.
  • 10.
  • 11. ms μs ns ps 1MB Disk/Network 1MB Main Memory 0.000,000,000,000 Cross Continental Main Memory L1 Cache Ref Round Trip Ref Cross Network Round L2 Cache Ref Trip * L1 ref is about 2 clock cycles or 0.7ns. This is the time it takes light to travel 20cm
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22. Taken from “OLTP Through the Looking Glass, and What We Found There” Harizopoulos et al
  • 23.
  • 24. In-Memory TimesTen, Database HSQL, KD B Shared Vertica, Gre Nothing enplumb Regular Distributed Exasol, Database In-Memory VoltDB, Hana Oracle, Sybase, MySql NoSQL Mongo, Cass andra Data Grid Coherence, Teracotta
  • 25. Distributed Architecture Simplify the Contract Stick to RAM
  • 26. 450 processes 2TB of RAM Oracle Coherenc e Messaging (Topic Based) as a system of record (persistence)
  • 27. Access Layer Jav Jav a a clie clie nt API nt API Query Layer Transaction Data Layer s Mtms Cashflows Persistence Layer
  • 28. Indexing Partitioning Replication
  • 29.
  • 30. But your storage is limited by the memory on a node
  • 31. Associating data in different partitions implies moving it. Scalable storage, bandwidth and processing
  • 32.
  • 33.
  • 34.
  • 35.
  • 36. Trade r Part Version 1 y Trad e Trade r Part Version 2 y Trad e Trade r Part Version 3 y Trad e Trade r Part Version 4 y Trad …and you need e versioning to do MVCC
  • 37. Trad Trade Part e r y Part Trade Trad y r e Part y Trade r Trad e Part y
  • 38. So we want to hold entities separately (normalised) to alleviate concerns around consistency and space usage
  • 39. Independently Data is Versioned Trade Singleton r Part y Trad e Trad Trade Part e r y
  • 40. Trade r Part y Trad e Trad Trade Part e r y
  • 41.
  • 42.
  • 43.
  • 44. This is what using Snowflake Schemas and the Connected Replication pattern is all about!
  • 45.
  • 46.
  • 47. Crosscuttin g Keys Common Keys
  • 48. Replicated Trader Party Trade Partitioned
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 56.
  • 57. Use a Key Assignment Trade Policy MTMs (e.g. KeyAssociation s in Coherence) Common Key
  • 58. Replicated Trader Party Trade Partitioned
  • 59. Query Layer Trader Party Trade Transactions Data Layer Mtms Cashflows Fact Storage (Partitioned)
  • 60. Dimension s (repliacte) Transactions Facts Mtms Cashflows (distribute/ partition) Fact Storage (Partitioned)
  • 61. Facts: =>Big =>Distribut e Dimensions =>Small => Replicate
  • 62. We use a variant on a Snowflake Schema to partition big entities that can be related via a partitioning key and replicate small stuff who’s keys can’t map to our partitioning key.
  • 64. Select Transaction, MTM, RefrenceData From MTM, Transaction, Ref Where Cost Centre = ‘CC1’
  • 65. Get Get Get Get Get Get Get Cost Ledger Source Transa MTMs Legs Cost Center Books Books c-tions Center s s Network Time
  • 66. Get Get Get Get Get Get Get Cost Ledger Source Transac MTMs Legs Cost Centers Books Books -tions Centers Network
  • 67.
  • 68. Select Transaction, MTM, ReferenceData From MTM, Transaction, Ref Where Cost Centre = ‘CC1’ Join Dimensions in Query Layer Transactions Mtms Cashflows Partitioned
  • 69. Select Transaction, MTM, ReferenceData From MTM, Transaction, Ref Where Cost Centre = ‘CC1’ Join Dimensions in Query Layer Transactions Join Facts Mtms acrossCashflows cluster Partitioned
  • 70.
  • 71. Select Transaction, MTM, ReferenceData From MTM, Transaction, Ref Where Cost Centre = ‘CC1’ Join Join Dimensions Dimensions in Query Layer in Query Layer Transactions Join FactsMtms across Cashflows cluster Partitioned
  • 72.
  • 73. Jav Replicated a clie Partitioned nt API Dimensions Facts We never have to do a distributed join!
  • 74. So all the big stuff is held partitioned And we can join without shipping keys around and having intermediate results
  • 75. Trade r Part y Trad e Trad Trade Part e r y
  • 76. Trade r Part Version 1 y Trad e Trade r Part Version 2 y Trad e Trade r Part Version 3 y Trad e Trade r Part Version 4 y Trad e
  • 77. Trad Trade Part e r y Part Trade Trad y r e Part y Trade r Trad e Part y
  • 78.
  • 79.
  • 80.
  • 81.
  • 82.
  • 83. Facts This is a dimension • It has a different key to the Facts. Dimensions • And it’s BIG
  • 84.
  • 85.
  • 86.
  • 87.
  • 88.
  • 89.
  • 90.
  • 91. So we only replicate ‘Connected’ or ‘Used’ dimensions
  • 92. Processing Layer Dimension Caches (Replicated) Transactions Data Layer As new Facts are added Mtms relevant Dimensions that they reference are moved Cashflows to processing layer caches Fact Storage (Partitioned)
  • 93.
  • 94. Query Layer Save Trade (With connected dimension Caches) Data Layer Cache Trad (All Normalised) Store e Partitioned Trigger Cache Party Sourc Ccy Alias e Book
  • 95. Query Layer (With connected dimension Caches) Data Layer Trad (All Normalised) e Party Sourc Ccy Alias e Book
  • 96. Query Layer (With connected dimension Caches) Data Layer Trad (All Normalised) e Party Sourc Ccy Alias e Book Party Ledge rBook
  • 97. ‘Connected Replication’ A simple pattern which recurses through the foreign keys in the domain model, ensuring only ‘Connected’ dimensions are replicated
  • 98. With ‘Connected Replication’ only 1/10th of the data needs to be replicated (on average).
  • 99.
  • 100. Jav a Java schema clie nt API Java ‘Stored Procedures’ and ‘Triggers’
  • 101.
  • 102. Query with more than twenty joins conditions: 2GB per min / 250Mb/s 3ms latency (per client)
  • 103.
  • 104.

Editor's Notes

  1. Big data sets are held distributed and only joined on the grid to collocated objects.Small data sets are held in replicated caches so they can be joined in process (only ‘active’ data is held)
  2. Big data sets are held distributed and only joined on the grid to collocated objects.Small data sets are held in replicated caches so they can be joined in process (only ‘active’ data is held)