SlideShare a Scribd company logo
#SGvFabric
   © 2011 VMware Inc. All rights reserved
vFabric: What’s in it?




                         Rich                                   Integration   Batch            Spring
 Frameworks & Tools      Web
                                    Social and      Data
                                                                Patterns      Framework        Tool Suite
                                    Mobile          Access




      vFabric            Application Srv Web Runtime Messaging Elastic Data Grid  DBaaS
                                                                                  Perf, Mgmt
  Application Services    tc Server        ERS                                   vPostgres
                                                     RabbitMQ Gemfire / SQLFire Hyperic / Insight




                             EM4J                                                    Data                   vCops/
                                                                                    Director                 APM
                                                              vSphere 5




  2
Cloud-scale challenge…




3
Challenge


 Managing on-line applications on
 a cloud-scale is hard.
 As number of users grows,
 database becomes
 the bottleneck.


 4
DB Bottleneck




                Scales…




                Scales…




  5
Cause


 Traditional databases were
 never designed to support
 thousands of concurrent
 users.



 6
Traditional DB Characteristics

 § Designed against no            § Centralized in nature
      longer relevant               • Data change capture an
      constraints                    afterthought
      • Network unreliable/slow     • Lacks data partitioning
      • RAM prices prohibitive       facilities

 § One size fits all              § Obsessed with ACID
      • Designed for everything,    • Constant contention for
       optimized for nothing         resources cause locks
      • Often incompatible with    § Monolithic design
       modern workloads             §  Requires lots of hardware to
                                      scale



  7
Traditional DB Loves IO


      Buffers primarily
        tuned for IO




                          First write
                           to LOG
          Second write
          to Data files



  8
Transaction in Traditional DB
                                        Source: Research by MIT and Brown: “OLTP Under
                                        the Looking Glass” by S. Harizopoulos, D. J. Abadi,
                                        S. Madden, M. Stonebraker, SIGMOD 2008.



                           12%

          30%
                                  8%              Data
                 Percentage of                    Btrees keys
                Computer cycles                   Logging
                 based on 3.5M
                    sample
                                                  Locking
                                  21%             Latching
          10%                                     Buffer management


                    19%




  9
Cloud-scale solution…




10
Apparent Choices


 Build expensive database
 clustering solution or
 lengthy re-write
 for “big data”?



 11
Next generation option



SQLFire is different;
it’s build for speed     Scale
                         much?
                                 Hablo
                                 SQL?



and scale.




12
New Approach


 Elastic, in-memory database
 designed specifically for
 speed and low latency
 accessible through a
 familiar SQL interface.


 13
SQLFire Characteristics

 §  Highly concurrent data       §  Shared nothing logs on
   structures resident in and      disk; application writes are
   optimized for main memory       never exposed to the disk
 §  Rethink ACID transactions;    seek latencies
   all state resides in           §  Parallelize data access
   distributed memory to avoid     and application behavior;
   any single points of            dynamically “shard SQL”
   contention                     §  Dynamic rebalancing of
 §  Partition-aware DB design     data as cluster size grows/
   spreads workloads across        shrinks. Most efficient way
   both data set and physical      of managing resources/
   nodes                           data.


  14
SQLFire speed…




15
SQLFire v Traditional Databases


 SQLFire response times
 are faster and more
 consistent under
 increased
 database load.

  16
Sample Comparison

 §  Spring Travel Application
 §  Similar hardware (8 vCPU, 4GB)
 §  Out-of-the-box configuration

          SQLF R/T (ms)   SQLF CPU %   MySQL R/T (ms)   MYSQL CPU %

                14              9            25              1

                8              32            23             19
                5              61           172             76

                6              77           fail            fail


               984             98           fail            fail




 17
Response Time

  R/T
 200
 180
 160
                    MySQL
 140          increased with load
 120
 100
  80                                                SQLFire
                                                  near constant
  60                                               much lower

  40
  20
      0
                                                                         Threads
          0          500            1000   1500                   2000


 18
Number of Threads


  R/T
                                                             SQLFire scales
 1200	
                                                      to 7200 threads
                                                            with 1 second R/T
 1000	
  

  800	
  
                           MySQL reaches
                              saturation
  600	
                    at 1850 threads


  400	
  

  200	
  

       0	
  
               0	
     1000	
     2000	
     3000	
     4000	
     5000	
     6000	
     7000	
     8000	
   Threads



  19
Distributed data…




20
Why Scale Horizontally?


 Sub-divide system into
 independent data sets, eliminate
 distributed transactions to
 achieve elasticity,
 linear scalability
 and predictable
 latency.

  21
Horizontal Scalability – Throughput
                      800000                                    1400




                      700000
                                                                1200




                      600000
 Queries per second




                                                                1000




                                                                       Client threads
                      500000

                                                                800


                      400000
                                                                                        queriesPerSecond
                                                                600
                                                                                        client threads
                      300000



                                                                400
                      200000




                                                                200
                      100000




                          0                                     0
                               2     4         6       8   10
                                   Number of servers


            22
Horizontal Scalability – Consistency/HA


 §  Resiliency through replication, synchronous but in parallel
 §  Row updates are always atomic; no need for transactions
 §  Shared nothing architecture, including storage
   §  Instant failover at protocol level
   §  Apps retain their connections
   §  Data remains available

                                                    APP




                                    SQLFire       SQLFire          SQLFire




  23
Data management strategies…




24
Data strategies – Partitioning

 §  Balances data across SQLFire cluster
 §  Delivers redundancy for high availability



                                     APP




                 SQLFire            SQLFire         SQLFire



               Write operation (with 2 redundant copies)
               Read operation


  25
SQLFire Hash Partitioning

 §  Partition by column or primary key
     •  Can specify multiple columns
     •  Uses hashCode() for single column or primary key
     •  Uses serialized bytes for multiple columns
     •  Creates uniform distribution of data across the cluster




       // Partition by column
       CREATE TABLE MY_TABLE
       ( . . . ) PARTITION BY COLUMN ( COLUMN_A)

       // Partition by primary key
       CREATE TABLE MY_TABLE
       ( . . . ) PARTITION BY PRIMARY KEY



  26
SQLFire Range Partitioning

 §  Partition by range of column values
     •  Can specify multiple ranges
     •  Colocates data in specified ranges
     •  Used to ensure locality of data in a partition for range queries or cross table
       joins




       // Partition by range
       CREATE TABLE MY_TABLE
       ( . . . ) PARTITION BY RANGE ( COLUMN_A)
         (
             VALUES BETWEEN 1 AND 10,
             VALUES BETWEEN 50 AND 60
           )



  27
SQLFire List Partitioning

 §  Partition by a set of column values
     •  Can specify column value sets
     •  Colocates data with specified column values
     •  Used to ensure locality of data in a partition for sets of values or cross table
       joins




       // Partition by list
       CREATE TABLE MY_TABLE
       ( . . . ) PARTITION BY LIST ( COLUMN_A)
         (
             VALUES (‘VALUE_A’, ‘VALUE_B’),
             VALUES (‘VALUE_Y’, ‘VALUE_Z’)
           )



  28
SQLFire Expression Partitioning

 §  Partition by a column expression
     •  Expression must be valid SQL function
     •  Must reference only columns in the table
     •  Hash partition with value determined by the expression




       // Partition by expression
       CREATE TABLE MY_TABLE
       ( . . . ) PARTITION BY ( MONTH ( MY_DATE ) )




  29
SQLFire Default Partitioning

 §  Default hash partitioning strategy
     •  Start server with table-default-partitioned property set to true!
        •  First foreign key whose referenced primary key is also a partition column
        •  Primary key
        •  First unique key
        •  SQLFire-generated row id


       // No PARTITION BY clauses
       CREATE TABLE MY_TABLE
          (COLUMN_A INT NOT NULL CONSTRAINT A_PK PRIMARY
       KEY, . . .)

       CREATE TABLE MY_OTHER_TABLE
          (COLUMN_B INT NOT NULL CONSTRAINT B_PK PRIMARY KEY,
           COLUMN_C INT CONSTRAINT A_FK REFERENCES MY_TABLE
           (COLUMN_A), . . .)

  30
Data strategies – Replication

 §  Copies all data across SQLFire cluster
 §  Appropriate for reference data



                                    APP




                SQLFire           SQLFire           SQLFire



              Write operation (with replicated copies)
              Read operation


  31
SQLFire Replicated Tables

 §  Created by default with no PARTITION BY clause
 §  Created with REPLICATE clause
 §  Reference data or fact tables are good candidates
 §  Replicates data across all peers in server group
 §  Replication is parallel and synchronous
 §  Automatic replication failure detection




       // Replication example
       CREATE TABLE MY_TABLE
       ( . . . )
       REPLICATE



  32
Topology strategies…




33
Topology

 Client-server
                           JVM                     JVM

                           APP                     APP




                                 SQLFire Locator




                  JVM                JVM                  JVM


                 SQLFire           SQLFire               SQLFire




 34
Topology

 Embedded Peer-to-peer




            JVM           JVM       JVM

            APP           APP       APP



           SQLFire       SQLFire   SQLFire




 35
Synchronization strategies…




36
Synchronous strategy
 In data-center or over private network


            JVM                 JVM                       JVM                 JVM

            APP                APP                        APP                APP




                  SQLFire Locator                               SQLFire Locator




      JVM              JVM              JVM       JVM                JVM              JVM


  SQLFire            SQLFire          SQLFire   SQLFire            SQLFire          SQLFire




            Redundancy Zone A                             Redundancy Zone B
                      Site 1                                    Site 2




 37
Asynchronous strategy
Multi-site over the Cloud


           JVM                 JVM                                 JVM                 JVM

           APP                APP                                  APP                APP




                 SQLFire Locator                WAN                      SQLFire Locator
                                               Gateway



     JVM              JVM              JVM                 JVM                JVM              JVM


SQLFire            SQLFire           SQLFire             SQLFire           SQLFire           SQLFire




                    Site 1                                                  Site 2


38
Data strategies – Server Groups


                              SQLFire Cluster

          JVM              JVM             JVM

                                                   Group 1
         SQLFire          SQLFire        SQLFire




          JVM              JVM             JVM

                                                   Group 2
         SQLFire          SQLFire        SQLFire



        Group 3




  39
data demo…




40
Summary…




41
Why SQLFire?

               In-memory, delivers maximum speed
Speed          and minimum latency


  Scale
               Horizontally scalable, easily adopts to
               changing workloads, usage patterns


      SQL
               Familiar SQL interface, accessible from
               Java and .NET




 42
If you forgot everything else…


 SQLFire is better in
 supporting on-line applications
 than traditional databases.




  43
SQLFire Artifacts


              Sample Apps
              §  Side-by-side comparison of SQLFire v MySQL
                    performance - https://github.com/vFabric/sqlf-demo
              §  Demo call-center application, SQLFire configuration
                    scripts https://github.com/vFabric/sqlf-cloud


              Demo Video
              §  Real-life performance comparison (YouTube, 3 min.)
                    http://youtu.be/HV-broQHJlk




  44
The end




     http://vmware.com/go/sqlfire
     @vFabricSQLFire, @_cmc


45

More Related Content

PPTX
Cascade 10.0 ---- Application Aware Network Performance Management (NPM)
Riverbed Technology
 
PDF
Liquidity Risk Management powered by SAP HANA
SAP Technology
 
PPTX
The SPOSAD Architectural Style for Multi-tenant Software Applications
Heiko Koziolek
 
PDF
NoSQL Matters 2012 - Real Time Big Data in practice with Cassandra
Michaël Figuière
 
PDF
Spring Data for JJUG for Cross Conference Fall
Toshihiko Ikeda
 
PDF
ApacheCon Europe 2012 - Real Time Big Data in practice with Cassandra
Michaël Figuière
 
PDF
14h00 aws deck-summit2012_sap_on_aws_s_jones_final
Luiz Gustavo Santos
 
PDF
Go simple-fast-elastic-with-couchbase-server-borkar
Dipti Borkar
 
Cascade 10.0 ---- Application Aware Network Performance Management (NPM)
Riverbed Technology
 
Liquidity Risk Management powered by SAP HANA
SAP Technology
 
The SPOSAD Architectural Style for Multi-tenant Software Applications
Heiko Koziolek
 
NoSQL Matters 2012 - Real Time Big Data in practice with Cassandra
Michaël Figuière
 
Spring Data for JJUG for Cross Conference Fall
Toshihiko Ikeda
 
ApacheCon Europe 2012 - Real Time Big Data in practice with Cassandra
Michaël Figuière
 
14h00 aws deck-summit2012_sap_on_aws_s_jones_final
Luiz Gustavo Santos
 
Go simple-fast-elastic-with-couchbase-server-borkar
Dipti Borkar
 

Similar to Modernización del manejo de datos con v fabric (20)

PDF
Betting On Data Grids
gojkoadzic
 
PPTX
Whiptail XLR8r SSD Array
Darren Williams
 
PPTX
Solving the VDI Storage Problem, WhipTail Technologies
subtitle
 
PPTX
SQL and NoSQL in SQL Server
Michael Rys
 
PDF
MySQL Cluster Scaling to a Billion Queries
Bernd Ocklin
 
PPTX
Virtualizing Latency Sensitive Workloads and vFabric GemFire
Carter Shanklin
 
PPTX
Database Virtualization: The Next Wave of Big Data
exponential-inc
 
PPTX
Steelhead DX for Datacenter-to-Datacenter optimization
Riverbed Technology
 
PPTX
Aditi
Tarun Cherian
 
PPTX
Aditi
Tarun Cherian
 
PDF
MySQL高可用
thinkinlamp
 
PDF
Hadoop World 2011: BI on Hadoop in Financial Services - Stefan Grschupf, Data...
Cloudera, Inc.
 
PPTX
Towards an Architectural Style for Multi-tenant Software Applications
Heiko Koziolek
 
PDF
Cloud architecture and deployment: The Kognitio checklist, Nigel Sanctuary, K...
CloudOps Summit
 
PDF
Using Distributed In-Memory Computing for Fast Data Analysis
ScaleOut Software
 
PDF
The 5 Stages of Scale
xcbsmith
 
PPTX
Scality, Cloud Storage pour Zimbra
Antony Barroux
 
PDF
QQCOS
RenatoLeal27
 
PPT
Isat06 Rev2
Rajesh Gupta
 
PDF
Choosing the Right Database: Exploring MySQL Alternatives for Modern Applicat...
Mydbops
 
Betting On Data Grids
gojkoadzic
 
Whiptail XLR8r SSD Array
Darren Williams
 
Solving the VDI Storage Problem, WhipTail Technologies
subtitle
 
SQL and NoSQL in SQL Server
Michael Rys
 
MySQL Cluster Scaling to a Billion Queries
Bernd Ocklin
 
Virtualizing Latency Sensitive Workloads and vFabric GemFire
Carter Shanklin
 
Database Virtualization: The Next Wave of Big Data
exponential-inc
 
Steelhead DX for Datacenter-to-Datacenter optimization
Riverbed Technology
 
MySQL高可用
thinkinlamp
 
Hadoop World 2011: BI on Hadoop in Financial Services - Stefan Grschupf, Data...
Cloudera, Inc.
 
Towards an Architectural Style for Multi-tenant Software Applications
Heiko Koziolek
 
Cloud architecture and deployment: The Kognitio checklist, Nigel Sanctuary, K...
CloudOps Summit
 
Using Distributed In-Memory Computing for Fast Data Analysis
ScaleOut Software
 
The 5 Stages of Scale
xcbsmith
 
Scality, Cloud Storage pour Zimbra
Antony Barroux
 
Isat06 Rev2
Rajesh Gupta
 
Choosing the Right Database: Exploring MySQL Alternatives for Modern Applicat...
Mydbops
 
Ad

More from Software Guru (20)

PDF
Hola Mundo del Internet de las Cosas
Software Guru
 
PDF
Estructuras de datos avanzadas: Casos de uso reales
Software Guru
 
PPTX
Building bias-aware environments
Software Guru
 
PDF
El secreto para ser un desarrollador Senior
Software Guru
 
PDF
Cómo encontrar el trabajo remoto ideal
Software Guru
 
PDF
Automatizando ideas con Apache Airflow
Software Guru
 
PPTX
How thick data can improve big data analysis for business:
Software Guru
 
PDF
Introducción al machine learning
Software Guru
 
PDF
Democratizando el uso de CoDi
Software Guru
 
PDF
Gestionando la felicidad de los equipos con Management 3.0
Software Guru
 
PDF
Taller: Creación de Componentes Web re-usables con StencilJS
Software Guru
 
PPTX
El camino del full stack developer (o como hacemos en SERTI para que no solo ...
Software Guru
 
PDF
¿Qué significa ser un programador en Bitso?
Software Guru
 
PDF
Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Software Guru
 
PDF
Pruebas de integración con Docker en Azure DevOps
Software Guru
 
PDF
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
Software Guru
 
PDF
Así publicamos las apps de Spotify sin stress
Software Guru
 
PPTX
Achieving Your Goals: 5 Tips to successfully achieve your goals
Software Guru
 
PDF
Acciones de comunidades tech en tiempos del Covid19
Software Guru
 
PDF
De lo operativo a lo estratégico: un modelo de management de diseño
Software Guru
 
Hola Mundo del Internet de las Cosas
Software Guru
 
Estructuras de datos avanzadas: Casos de uso reales
Software Guru
 
Building bias-aware environments
Software Guru
 
El secreto para ser un desarrollador Senior
Software Guru
 
Cómo encontrar el trabajo remoto ideal
Software Guru
 
Automatizando ideas con Apache Airflow
Software Guru
 
How thick data can improve big data analysis for business:
Software Guru
 
Introducción al machine learning
Software Guru
 
Democratizando el uso de CoDi
Software Guru
 
Gestionando la felicidad de los equipos con Management 3.0
Software Guru
 
Taller: Creación de Componentes Web re-usables con StencilJS
Software Guru
 
El camino del full stack developer (o como hacemos en SERTI para que no solo ...
Software Guru
 
¿Qué significa ser un programador en Bitso?
Software Guru
 
Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Software Guru
 
Pruebas de integración con Docker en Azure DevOps
Software Guru
 
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
Software Guru
 
Así publicamos las apps de Spotify sin stress
Software Guru
 
Achieving Your Goals: 5 Tips to successfully achieve your goals
Software Guru
 
Acciones de comunidades tech en tiempos del Covid19
Software Guru
 
De lo operativo a lo estratégico: un modelo de management de diseño
Software Guru
 
Ad

Recently uploaded (20)

PDF
Orbitly Pitch Deck|A Mission-Driven Platform for Side Project Collaboration (...
zz41354899
 
PDF
Economic Impact of Data Centres to the Malaysian Economy
flintglobalapac
 
PDF
Advances in Ultra High Voltage (UHV) Transmission and Distribution Systems.pdf
Nabajyoti Banik
 
PDF
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
PPTX
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
PDF
Doc9.....................................
SofiaCollazos
 
PDF
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
PDF
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
PDF
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
PDF
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
PDF
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
PDF
Get More from Fiori Automation - What’s New, What Works, and What’s Next.pdf
Precisely
 
PDF
How-Cloud-Computing-Impacts-Businesses-in-2025-and-Beyond.pdf
Artjoker Software Development Company
 
PDF
AI-Cloud-Business-Management-Platforms-The-Key-to-Efficiency-Growth.pdf
Artjoker Software Development Company
 
PDF
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
PPTX
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
PDF
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
PDF
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
PDF
Software Development Methodologies in 2025
KodekX
 
PDF
A Day in the Life of Location Data - Turning Where into How.pdf
Precisely
 
Orbitly Pitch Deck|A Mission-Driven Platform for Side Project Collaboration (...
zz41354899
 
Economic Impact of Data Centres to the Malaysian Economy
flintglobalapac
 
Advances in Ultra High Voltage (UHV) Transmission and Distribution Systems.pdf
Nabajyoti Banik
 
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
Doc9.....................................
SofiaCollazos
 
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
Get More from Fiori Automation - What’s New, What Works, and What’s Next.pdf
Precisely
 
How-Cloud-Computing-Impacts-Businesses-in-2025-and-Beyond.pdf
Artjoker Software Development Company
 
AI-Cloud-Business-Management-Platforms-The-Key-to-Efficiency-Growth.pdf
Artjoker Software Development Company
 
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
Software Development Methodologies in 2025
KodekX
 
A Day in the Life of Location Data - Turning Where into How.pdf
Precisely
 

Modernización del manejo de datos con v fabric

  • 1. #SGvFabric © 2011 VMware Inc. All rights reserved
  • 2. vFabric: What’s in it? Rich Integration Batch Spring Frameworks & Tools Web Social and Data Patterns Framework Tool Suite Mobile Access vFabric Application Srv Web Runtime Messaging Elastic Data Grid DBaaS Perf, Mgmt Application Services tc Server ERS vPostgres RabbitMQ Gemfire / SQLFire Hyperic / Insight EM4J Data vCops/ Director APM vSphere 5 2
  • 4. Challenge Managing on-line applications on a cloud-scale is hard. As number of users grows, database becomes the bottleneck. 4
  • 5. DB Bottleneck Scales… Scales… 5
  • 6. Cause Traditional databases were never designed to support thousands of concurrent users. 6
  • 7. Traditional DB Characteristics § Designed against no § Centralized in nature longer relevant • Data change capture an constraints afterthought • Network unreliable/slow • Lacks data partitioning • RAM prices prohibitive facilities § One size fits all § Obsessed with ACID • Designed for everything, • Constant contention for optimized for nothing resources cause locks • Often incompatible with § Monolithic design modern workloads §  Requires lots of hardware to scale 7
  • 8. Traditional DB Loves IO Buffers primarily tuned for IO First write to LOG Second write to Data files 8
  • 9. Transaction in Traditional DB Source: Research by MIT and Brown: “OLTP Under the Looking Glass” by S. Harizopoulos, D. J. Abadi, S. Madden, M. Stonebraker, SIGMOD 2008. 12% 30% 8% Data Percentage of Btrees keys Computer cycles Logging based on 3.5M sample Locking 21% Latching 10% Buffer management 19% 9
  • 11. Apparent Choices Build expensive database clustering solution or lengthy re-write for “big data”? 11
  • 12. Next generation option SQLFire is different; it’s build for speed Scale much? Hablo SQL? and scale. 12
  • 13. New Approach Elastic, in-memory database designed specifically for speed and low latency accessible through a familiar SQL interface. 13
  • 14. SQLFire Characteristics §  Highly concurrent data §  Shared nothing logs on structures resident in and disk; application writes are optimized for main memory never exposed to the disk §  Rethink ACID transactions; seek latencies all state resides in §  Parallelize data access distributed memory to avoid and application behavior; any single points of dynamically “shard SQL” contention §  Dynamic rebalancing of §  Partition-aware DB design data as cluster size grows/ spreads workloads across shrinks. Most efficient way both data set and physical of managing resources/ nodes data. 14
  • 16. SQLFire v Traditional Databases SQLFire response times are faster and more consistent under increased database load. 16
  • 17. Sample Comparison §  Spring Travel Application §  Similar hardware (8 vCPU, 4GB) §  Out-of-the-box configuration SQLF R/T (ms) SQLF CPU % MySQL R/T (ms) MYSQL CPU % 14 9 25 1 8 32 23 19 5 61 172 76 6 77 fail fail 984 98 fail fail 17
  • 18. Response Time R/T 200 180 160 MySQL 140 increased with load 120 100 80 SQLFire near constant 60 much lower 40 20 0 Threads 0 500 1000 1500 2000 18
  • 19. Number of Threads R/T SQLFire scales 1200   to 7200 threads with 1 second R/T 1000   800   MySQL reaches saturation 600   at 1850 threads 400   200   0   0   1000   2000   3000   4000   5000   6000   7000   8000   Threads 19
  • 21. Why Scale Horizontally? Sub-divide system into independent data sets, eliminate distributed transactions to achieve elasticity, linear scalability and predictable latency. 21
  • 22. Horizontal Scalability – Throughput 800000 1400 700000 1200 600000 Queries per second 1000 Client threads 500000 800 400000 queriesPerSecond 600 client threads 300000 400 200000 200 100000 0 0 2 4 6 8 10 Number of servers 22
  • 23. Horizontal Scalability – Consistency/HA §  Resiliency through replication, synchronous but in parallel §  Row updates are always atomic; no need for transactions §  Shared nothing architecture, including storage §  Instant failover at protocol level §  Apps retain their connections §  Data remains available APP SQLFire SQLFire SQLFire 23
  • 25. Data strategies – Partitioning §  Balances data across SQLFire cluster §  Delivers redundancy for high availability APP SQLFire SQLFire SQLFire Write operation (with 2 redundant copies) Read operation 25
  • 26. SQLFire Hash Partitioning §  Partition by column or primary key •  Can specify multiple columns •  Uses hashCode() for single column or primary key •  Uses serialized bytes for multiple columns •  Creates uniform distribution of data across the cluster // Partition by column CREATE TABLE MY_TABLE ( . . . ) PARTITION BY COLUMN ( COLUMN_A) // Partition by primary key CREATE TABLE MY_TABLE ( . . . ) PARTITION BY PRIMARY KEY 26
  • 27. SQLFire Range Partitioning §  Partition by range of column values •  Can specify multiple ranges •  Colocates data in specified ranges •  Used to ensure locality of data in a partition for range queries or cross table joins // Partition by range CREATE TABLE MY_TABLE ( . . . ) PARTITION BY RANGE ( COLUMN_A) ( VALUES BETWEEN 1 AND 10, VALUES BETWEEN 50 AND 60 ) 27
  • 28. SQLFire List Partitioning §  Partition by a set of column values •  Can specify column value sets •  Colocates data with specified column values •  Used to ensure locality of data in a partition for sets of values or cross table joins // Partition by list CREATE TABLE MY_TABLE ( . . . ) PARTITION BY LIST ( COLUMN_A) ( VALUES (‘VALUE_A’, ‘VALUE_B’), VALUES (‘VALUE_Y’, ‘VALUE_Z’) ) 28
  • 29. SQLFire Expression Partitioning §  Partition by a column expression •  Expression must be valid SQL function •  Must reference only columns in the table •  Hash partition with value determined by the expression // Partition by expression CREATE TABLE MY_TABLE ( . . . ) PARTITION BY ( MONTH ( MY_DATE ) ) 29
  • 30. SQLFire Default Partitioning §  Default hash partitioning strategy •  Start server with table-default-partitioned property set to true! •  First foreign key whose referenced primary key is also a partition column •  Primary key •  First unique key •  SQLFire-generated row id // No PARTITION BY clauses CREATE TABLE MY_TABLE (COLUMN_A INT NOT NULL CONSTRAINT A_PK PRIMARY KEY, . . .) CREATE TABLE MY_OTHER_TABLE (COLUMN_B INT NOT NULL CONSTRAINT B_PK PRIMARY KEY, COLUMN_C INT CONSTRAINT A_FK REFERENCES MY_TABLE (COLUMN_A), . . .) 30
  • 31. Data strategies – Replication §  Copies all data across SQLFire cluster §  Appropriate for reference data APP SQLFire SQLFire SQLFire Write operation (with replicated copies) Read operation 31
  • 32. SQLFire Replicated Tables §  Created by default with no PARTITION BY clause §  Created with REPLICATE clause §  Reference data or fact tables are good candidates §  Replicates data across all peers in server group §  Replication is parallel and synchronous §  Automatic replication failure detection // Replication example CREATE TABLE MY_TABLE ( . . . ) REPLICATE 32
  • 34. Topology Client-server JVM JVM APP APP SQLFire Locator JVM JVM JVM SQLFire SQLFire SQLFire 34
  • 35. Topology Embedded Peer-to-peer JVM JVM JVM APP APP APP SQLFire SQLFire SQLFire 35
  • 37. Synchronous strategy In data-center or over private network JVM JVM JVM JVM APP APP APP APP SQLFire Locator SQLFire Locator JVM JVM JVM JVM JVM JVM SQLFire SQLFire SQLFire SQLFire SQLFire SQLFire Redundancy Zone A Redundancy Zone B Site 1 Site 2 37
  • 38. Asynchronous strategy Multi-site over the Cloud JVM JVM JVM JVM APP APP APP APP SQLFire Locator WAN SQLFire Locator Gateway JVM JVM JVM JVM JVM JVM SQLFire SQLFire SQLFire SQLFire SQLFire SQLFire Site 1 Site 2 38
  • 39. Data strategies – Server Groups SQLFire Cluster JVM JVM JVM Group 1 SQLFire SQLFire SQLFire JVM JVM JVM Group 2 SQLFire SQLFire SQLFire Group 3 39
  • 42. Why SQLFire? In-memory, delivers maximum speed Speed and minimum latency Scale Horizontally scalable, easily adopts to changing workloads, usage patterns SQL Familiar SQL interface, accessible from Java and .NET 42
  • 43. If you forgot everything else… SQLFire is better in supporting on-line applications than traditional databases. 43
  • 44. SQLFire Artifacts Sample Apps §  Side-by-side comparison of SQLFire v MySQL performance - https://github.com/vFabric/sqlf-demo §  Demo call-center application, SQLFire configuration scripts https://github.com/vFabric/sqlf-cloud Demo Video §  Real-life performance comparison (YouTube, 3 min.) http://youtu.be/HV-broQHJlk 44
  • 45. The end http://vmware.com/go/sqlfire @vFabricSQLFire, @_cmc 45