Flexible transactional scale for the connected world.
ClustrixDB Technical Overview
o What is ClustrixDB?
o Why is ClustrixDB used?
o Deployment Patterns
o ClustrixDB Architecture
– Core Components
– Data Distribution
– Query Execution Concept
– Online Schema Change
o Performance Benchmarks
o Backup, Replication & Administration
o ClustrixDB 8.0 New Features
Agenda – ClustrixDB Technical Overview
PROPRIETARY & CONFIDENTIAL
What is ClustrixDB?
What does ClustrixDB do?
PROPRIETARY & CONFIDENTIAL
ApplicationsApplications
When MySQL Applications
(or just SQL) have out-grown MySQL
And you don’t want to
modify the application
to use sharding or replication
ClustrixDB combines multiple servers
into a single, powerful database server
That applications continue to see
as a single MySQL server
No sharding or replication necessary
Too many TPS
Too many connections
Too much CPU
ClustrixDB
What does ClustrixDB do?
PROPRIETARY & CONFIDENTIAL
Scale Beyond MySQL without Replication or Sharding
Applications
 More Transactions
 More Connections
 More Reads
 More Writes
ClustrixDB: Scale-Out, Fault-tolerant, MySQL-Compatible
PROPRIETARY & CONFIDENTIAL
ClustrixDB
ACID Compliant
Transactions & Joins
Optimized for OLTP
Built-In Fault Tolerance
Flex-Up and Flex-Down
Minimal DB Admin
Also runs great in
the Data Center
Built to run
in the Cloud
Why ClustrixDB?
Common Approaches to Scaling MySQL
PROPRIETARY & CONFIDENTIAL
Bigger Server
 Easy to do
 No app changes
X Very limited gains
X No HA
Reader Slaves
Writes
Reads
Reads
 Scales reads
 Fairly easy to setup
X No write scaling
X Adds slave lag
app needs to be aware
X App changes
needs to split reads & writes
X No HA
adds DR but needs failover
X Fragile
High burden to maintain
Synchronous Replication Clusters
Galera | Percona XtraDB Cluster | MariaDB Galera Cluster
 Adds HA
 Scales reads
X No write scaling
Writes are multiplied
X Slows down writes
sync rep adds write latency
X No storage scaling
data fully replicated on each node
Database Sharding
 Scales reads
 Scales writes
 Scales storage
X Significant app changes
or entire redesign
X Does not add HA
multiplies the failure points
X DB management overhead
i.e. consistent backup of data set
Common Approaches to Scaling MySQL
PROPRIETARY & CONFIDENTIAL
Bigger Server
 Easy to do
 No app changes
X Very limited gains
X No HA
Reader Slaves
Writes
Reads
Reads
 Scales reads
 Fairly easy to setup
X No write scaling
X Adds slave lag
app needs to be aware
X App changes
needs to split reads & writes
X No HA
adds DR but needs failover
X Fragile
High burden to maintain
Synchronous Replication Clusters
Galera | Percona XtraDB Cluster | MariaDB Galera Cluster
 Adds HA
 Scales reads
X No write scaling
Writes are multiplied
X Slows down writes
sync rep adds write latency
X No storage scaling
data fully replicated on each node
Database Sharding
 Scales reads
 Scales writes
 Scales storage
X Significant app changes
or entire redesign
X Does not add HA
multiplies the failure points
X DB management overhead
i.e. consistent backup of data set
Scaling with ClustrixDB
PROPRIETARY & CONFIDENTIAL
Scale Beyond MySQL without Replication or Sharding
Load Balancer
Scales reads
Scales writes
Scales storage
No App Re-design
Adds HA
Easy to deploy
ClustrixDB
Flex Licensing = Business Agility
PROPRIETARY & CONFIDENTIAL
o ClustrixDB has:
 Technical capability to grow & shrink cluster while online
 Licensing model that aligns with a seasonal business
or temporary workloads
o Flex Licensing
– Annual license covers base cluster size
• e.g. 3-nodes year round
– Monthly Flex license covers seasonal demand
• e.g. 2 extra nodes for Nov & Dec
• And drop to 1 extra node in Jan
ClustrixDB
Deployment Patterns
Typical Cloud Deployment
PROPRIETARY & CONFIDENTIAL
8/16
cores
8/16
cores
8/16
cores
8/16
cores
…
3 nodes
minimum
+N nodes
App Servers
Load
Balancer
ELB or Linux or
Traffic Manager
or HAProxy
• AMI Available
• C3 (General) or I2 (High IO)
• SSD w/ Enhanced Net
• 2xlarge (8-core)
• 4xlarge (16-core)
• LB: Elastic Load Balancing
• Standard w/ SSD
• D13: 8 cores
• D14: 16 cores
• High Performance w/ SSD
• G3: 8 cores
• G4 16 cores
• LB: Azure Traffic Manager
• Standard w/ SSD
• IO1-30: 8 cores
• IO1-60: 16 cores
• LB: Cloud Load Balancer
ClustrixDB
• n1-standard-8: 8 cores
• n1-standard-16: 16 cores
• LB: GCE Load Balancing
Typical On-Premises Deployment
PROPRIETARY & CONFIDENTIAL
3 nodes minimum
App Servers
Hardware or SW
e.g. Linux w/ HAProxy
ClustrixDB
PrivateNetwork
+N nodes
Load
Balancer
…
ClustrixDB Server Specs
• Cores:
• 8 to 16 physical cores
• Disable HT (recommended)
• RAM:
• 64 GB+
• Disks:
• SSD 300 GB+ (6 or more)
• RAID-0 (HW recommended)
• Optionally 1+ HDD for OS &
scratch
• Network:
• Public: 1 GbE (or 10 GbE)
• Private: 10 GbE
(highly recommended)
PublicNetwork
Typical Full Lifecycle Environment
PROPRIETARY & CONFIDENTIAL
Production Standby
DR + Big Query Reporting
Real-time Replication
Staging
Scripted
Refresh
Upgrades, Perf Tuning,
Pre-Prod Validation
Dev
Patches, New Code
Dev/QA, Shared
ClustrixDB Core Components
How It Works
PROPRIETARY & CONFIDENTIAL
ClustrixDB Overview
Fully Distributed & Consistent Cluster
o Fully Consistent, and ACID-compliant database
– Supports transactions
– Support joins
– Optimized for OLTP
– But also supports reporting SQL
o All nodes are equal (no “special” node)
o All servers are read/write
o All servers accept client connections
o Tables & Indexes distributed across all nodes
– Fully automatic distribution, re-balancing
& re-protection
PrivateNetwork
ClustrixDB on commodity/cloud servers
HW or SW Load
Balancer
SQL-based
Applications
High Concurrency
Custom:
PHP, Java, Ruby, etc
Packaged:
Magento, etc
ClustrixDB Design
PROPRIETARY & CONFIDENTIAL
Shared Nothing Architecture
Each Node Contains:
o Query Compiler: distribute compiled partial
query fragments to the node containing the
ranking replica
o Data Map: all nodes know where all replicas
are, and current ranking replicas
o Database Engine: all nodes can perform all
database operations (no leader, aggregator,
leaf, data-only, etc nodes)
o Data: Table Slices: All table slices (default:
replicas=2) auto-redistributed by the
Rebalancer
ClustrixDB
Compiler Map
Engine Data
Compiler Map
Engine Data
Compiler Map
Engine Data
Data Distribution
PROPRIETARY & CONFIDENTIAL
Intelligent Data Distribution
PROPRIETARY & CONFIDENTIAL
S
1
S
2
S
2 S
3
S
3 S
4
S
4 S
5
S
5
o Tables auto-split into slices
o Every slice has a replica on another node
– Slices are auto distributed, auto-protected
S
1
ClustrixDB
BillionsofRows
Database
Tables
Adding Nodes – Flex Up
PROPRIETARY & CONFIDENTIAL
S
1
S
2
S
3
S
3
S
4
S
4
S
5
o Easy and simple Flex Up & Flex Down
– Single minimal interruption of service
o Data is automatically rebalanced across
the cluster
– Tables are online for reads & writes
o All servers handle writes + reads
– Workload is spread across more servers
after Flex Up
S
1
ClustrixDB
S
2
S
5
Loss of a Node – Automatic Fault Tolerance
PROPRIETARY & CONFIDENTIAL
S
2
S
5
S
1
S
2
S
3
S
3
S
4
S
4
S
5
o ClustrixDB detects the loss of a node
– System automatically re-protects
– Data is automatically redistributed
o Slices lost on the failed node are
rapidly re-protected
– Re-protection occurs while tables are
available for reads & writes
o Automated self-healing
– After re-protect the cluster is fully
protected and operational S
1
ClustrixDB
S
2
S
5
S
2
S
5
ClustrixDB Rebalancer: Making the Complex, Simple
PROPRIETARY & CONFIDENTIAL
Q: How do you ensure data stays well distributed in a clustered environment?
A: You let the Rebalancer handle it!
The Rebalancer automatically:
• Initial Data: Distributes the data into even slices across nodes
• Data Growth: Splits large slices into smaller slices
• Flex-Up/Flex-Down: Moves slices to leverage new nodes and/or evacuate nodes
• Failed Nodes: Re-protects slices to ensure proper replicas exist
• Skewed Data: Re-distributes the data to even out across nodes
• Hot Slice Balancing: Finds hot slices and balances then across nodes
…while the DB stays open for reads & writes
Patent 8,543,538
Patent 8,554,726
Patent 9,348,883
Query Execution Concept
Query Processing Model
PROPRIETARY & CONFIDENTIAL
 Parse
 Plan
 Compile
Session
SQL-based
Applications
UPDATE users
SET online = 1
WHERE id = 8797;
HW or SW Load
Balancer
ID: 8797 | … | ONLINE:0
Fragment
o Load balancer spreads DB connections
across all nodes
o A session is established on any node
o Session controls query(s) execution
– Parse SQL
– Generate the execution plan
– Compile into binary fragments
– Lookup record(s) location
– Send fragments
– Complete the transaction
Query Processing Model
PROPRIETARY & CONFIDENTIAL
ID: 8797 | … | ONLINE:0
Session
SQL-based
Applications
UPDATE users
SET online = 1
WHERE id = 8797;
HW or SW Load
Balancer
ID: 8797 | … | ONLINE:1
Ack
o Load balancer spreads DB connections
across all nodes
o A session is established on any node
o Session controls query(s) execution
– Parse SQL
– Generate the execution plan
– Compile into binary fragments
– Lookup record(s) location
– Send fragments
– Complete the transaction
Ack
Online Schema Change
PROPRIETARY & CONFIDENTIAL
Online Schema Change
PROPRIETARY & CONFIDENTIAL
Table
o Allows reads & writes during
ALTER TABLE operations
– Add or remove column
– Rename column
– Change data type
– CREATE INDEX
o Process:
– Queue created to track changes
– Copy of table created
– Queues replayed until synchronized
– Atomic flip of table between transactions
Table
QueueQueueQueue
MYTABLE __building_MYTABLE
Atomic Flip
Reads & Writes
ALTER TABLE mytable ADD (foo int);
Online Schema Change
PROPRIETARY & CONFIDENTIAL
Table
o Allows reads & writes during ALTER
TABLE operations
– Add or remove column
– Rename column
– Change data type
– CREATE INDEX
o Process:
– Queue created to track changes
– Copy of table created
– Queues replayed until synchronized
– Atomic flip of table between transactions
Table
MYTABLE__building_MYTABLE
Atomic Flip
Reads & Writes
ALTER TABLE mytable ADD (foo int);

Performance Benchmarks
Sysbench OLTP 90:10 Mix
PROPRIETARY AND CONFIDENTIAL
o 90% Reads + 10% Writes
– Very typical workload mix
o 1 TPS = 10 SQL
– 9 SELECT + 1 UDATE
– a.k.a 10 operations/sec
o Shows scaling TPS by
adding servers:
– Oak4 = 4 (8-core) servers
– Oak16 = 16 (8-core) servers
– Oak28 = 28 (8-core) servers
To scale TPS while maintaining
Performance (i.e. 20 ms response)
just add servers to ClustrixDB
800,000 SQL/sec
@ 20 ms
Sysbench OLTP 100% Reads
PROPRIETARY AND CONFIDENTIAL
o 100% Reads
– Max throughput test
o 1 TPS = 10 SQL
– 10 SELECT
– a.k.a 10 operations/sec
o Shows scaling TPS by
adding servers:
– Oak6 = 6 (8-core) servers
– Oak18 = 18 (8-core) servers
– Oak30 = 30 (8-core) servers
To scale TPS while maintaining
Performance (i.e. 10 ms response)
just add servers to ClustrixDB
>1 Million SQL/sec
@ 20 ms
Yahoo! Cloud Service Benchmark (YCSB) 95:05 Mix
PROPRIETARY AND CONFIDENTIAL
o 95% Reads + 5% Writes
– 1 Ops/sec = 1 SQL
o Designed to compare NoSQL
engines
– ClustrixDB runs equally fast
o Shows scaling TPS by
adding servers:
– 4 nodes = 4 (8-core) servers
– 16 nodes = 16 (8-core) servers
– 24 nodes = 24 (8-core) servers
To scale TPS while maintaining
Performance (i.e. 3 ms response)
just add servers to ClustrixDB
> 500,000 SQL/sec
@ 3 ms
Yahoo! Cloud Service Benchmark (YCSB) 95:05 Mix
PROPRIETARY AND CONFIDENTIAL
o 95% Reads + 5% Writes
– 1 Ops/sec = 1 SQL
o Over 1 Million SQL/sec
– With <3 ms query response
– And mixed (95:05) workload
– Using 30 ClustrixDB servers
• 16-core AWS instances
Over 1 Million SQL/sec @ 3 ms
on a mixed (95:05) workload
> 1,000,000 SQL/sec
@ 3 ms
MySQL
(largest)
Aurora
(largest)
ClustrixDB
ClustrixDB vs. Aurora vs. MySQL RDS
PROPRIETARY AND CONFIDENTIAL
o 90% Reads + 10% Writes
– Very typical workload mix
o 1 TPS = 10 SQL
– 9 SELECT + 1 UDATE
– a.k.a 10 operations/sec
o ClustrixDB shows scaling TPS
by adding servers:
– Aws4 = 4 (8-core) servers
– Aws16 = 16 (8-core) servers
– Aws20 = 20 (8-core) servers
ClustrixDB scales TPS past Aurora’s
largest instance (db.r3.8xlarge)
Backup, Replication & Administration
Backup, Replication & Disaster Recovery
PROPRIETARY & CONFIDENTIAL
Asynchronous multi-point Replication
ClustrixDB
Parallel Backup
(up to 10x faster)
Replicate to any cloud, any datacenter, anywhere
ClustrixGUI: Performance Monitoring, Diagnostics & Flex
PROPRIETARY AND CONFIDENTIAL
Cluster Health Dashboard
Visually Compare Workloads
ClustrixGUI:
PROPRIETARY AND CONFIDENTIAL
CPU: Dashboard
1.27 Million TPS
On 32 nodes
ClustrixGUI: Rich Monitoring Metrics
PROPRIETARY AND CONFIDENTIAL
Historical Graphs
of various ClustrixDB
performance metrics
Groups:
 Performance
 Diagnostic
 Queries and Rows
 Sessions and Transactions
 Replication
 Disk
ClustrixDB 8.0 New Features
o ClustrixDB 8.0 builds upon the significant performance
improvements in ClustrixDB 7.5
– More reliable
– Easier to use
– Many enhancements requested by our customers
o Additionally, ClustrixDB 8.0 adds these 3 main new features:
– In-Memory Tables
– On-Disk Encryption
– Simplified Cluster Provisioning
ClustrixDB 8.0 – New Features
PROPRIETARY AND CONFIDENTIAL
o Special table container designed for high concurrency writes
– Supports same data types as regular tables
– Supports joins with regular tables
– Read consistent (i.e. MVCC)
– Survives node failure without data loss
o Ideal for scenarios that have:
– High concurrency, write-intensive transactions
– …which are then filtered or aggregated
– …and finally persisted into regular tables
– Examples:
• Sensor data collection
• Log collection
• Write-intensive batch processing
ClustrixDB 8.0 – In-Memory Tables
PROPRIETARY AND CONFIDENTIAL
o Adds encryption for “Data-at-Rest”
o Transparent to applications
– Applications are unaware that the tables are encrypted
– ClustrixDB handles encryption/decryption and the keys
o Uses AES 256-bit encryption
o All tables and all databases are stored as encrypted
ClustrixDB 8.0 – On-Disk Encryption
PROPRIETARY AND CONFIDENTIAL
o Web GUI-driven
o Container-based
o Use for simplified cluster install, and Flex-up/Flex-down
o Designed for:
– AWS environments
– On-premises environments (i.e. bare metal)
ClustrixDB 8.0 – Simplified Cluster Provisioning
PROPRIETARY AND CONFIDENTIAL
Questions & Answers Time
PROPRIETARY AND CONFIDENTIAL
ClustrixDBFlexible Transactional Scale for the Connected World

Introduction to ClustrixDB

  • 1.
    Flexible transactional scalefor the connected world. ClustrixDB Technical Overview
  • 2.
    o What isClustrixDB? o Why is ClustrixDB used? o Deployment Patterns o ClustrixDB Architecture – Core Components – Data Distribution – Query Execution Concept – Online Schema Change o Performance Benchmarks o Backup, Replication & Administration o ClustrixDB 8.0 New Features Agenda – ClustrixDB Technical Overview PROPRIETARY & CONFIDENTIAL
  • 3.
  • 4.
    What does ClustrixDBdo? PROPRIETARY & CONFIDENTIAL ApplicationsApplications When MySQL Applications (or just SQL) have out-grown MySQL And you don’t want to modify the application to use sharding or replication ClustrixDB combines multiple servers into a single, powerful database server That applications continue to see as a single MySQL server No sharding or replication necessary Too many TPS Too many connections Too much CPU ClustrixDB
  • 5.
    What does ClustrixDBdo? PROPRIETARY & CONFIDENTIAL Scale Beyond MySQL without Replication or Sharding Applications  More Transactions  More Connections  More Reads  More Writes
  • 6.
    ClustrixDB: Scale-Out, Fault-tolerant,MySQL-Compatible PROPRIETARY & CONFIDENTIAL ClustrixDB ACID Compliant Transactions & Joins Optimized for OLTP Built-In Fault Tolerance Flex-Up and Flex-Down Minimal DB Admin Also runs great in the Data Center Built to run in the Cloud
  • 7.
  • 8.
    Common Approaches toScaling MySQL PROPRIETARY & CONFIDENTIAL Bigger Server  Easy to do  No app changes X Very limited gains X No HA Reader Slaves Writes Reads Reads  Scales reads  Fairly easy to setup X No write scaling X Adds slave lag app needs to be aware X App changes needs to split reads & writes X No HA adds DR but needs failover X Fragile High burden to maintain Synchronous Replication Clusters Galera | Percona XtraDB Cluster | MariaDB Galera Cluster  Adds HA  Scales reads X No write scaling Writes are multiplied X Slows down writes sync rep adds write latency X No storage scaling data fully replicated on each node Database Sharding  Scales reads  Scales writes  Scales storage X Significant app changes or entire redesign X Does not add HA multiplies the failure points X DB management overhead i.e. consistent backup of data set
  • 9.
    Common Approaches toScaling MySQL PROPRIETARY & CONFIDENTIAL Bigger Server  Easy to do  No app changes X Very limited gains X No HA Reader Slaves Writes Reads Reads  Scales reads  Fairly easy to setup X No write scaling X Adds slave lag app needs to be aware X App changes needs to split reads & writes X No HA adds DR but needs failover X Fragile High burden to maintain Synchronous Replication Clusters Galera | Percona XtraDB Cluster | MariaDB Galera Cluster  Adds HA  Scales reads X No write scaling Writes are multiplied X Slows down writes sync rep adds write latency X No storage scaling data fully replicated on each node Database Sharding  Scales reads  Scales writes  Scales storage X Significant app changes or entire redesign X Does not add HA multiplies the failure points X DB management overhead i.e. consistent backup of data set
  • 10.
    Scaling with ClustrixDB PROPRIETARY& CONFIDENTIAL Scale Beyond MySQL without Replication or Sharding Load Balancer Scales reads Scales writes Scales storage No App Re-design Adds HA Easy to deploy ClustrixDB
  • 11.
    Flex Licensing =Business Agility PROPRIETARY & CONFIDENTIAL o ClustrixDB has:  Technical capability to grow & shrink cluster while online  Licensing model that aligns with a seasonal business or temporary workloads o Flex Licensing – Annual license covers base cluster size • e.g. 3-nodes year round – Monthly Flex license covers seasonal demand • e.g. 2 extra nodes for Nov & Dec • And drop to 1 extra node in Jan ClustrixDB
  • 12.
  • 13.
    Typical Cloud Deployment PROPRIETARY& CONFIDENTIAL 8/16 cores 8/16 cores 8/16 cores 8/16 cores … 3 nodes minimum +N nodes App Servers Load Balancer ELB or Linux or Traffic Manager or HAProxy • AMI Available • C3 (General) or I2 (High IO) • SSD w/ Enhanced Net • 2xlarge (8-core) • 4xlarge (16-core) • LB: Elastic Load Balancing • Standard w/ SSD • D13: 8 cores • D14: 16 cores • High Performance w/ SSD • G3: 8 cores • G4 16 cores • LB: Azure Traffic Manager • Standard w/ SSD • IO1-30: 8 cores • IO1-60: 16 cores • LB: Cloud Load Balancer ClustrixDB • n1-standard-8: 8 cores • n1-standard-16: 16 cores • LB: GCE Load Balancing
  • 14.
    Typical On-Premises Deployment PROPRIETARY& CONFIDENTIAL 3 nodes minimum App Servers Hardware or SW e.g. Linux w/ HAProxy ClustrixDB PrivateNetwork +N nodes Load Balancer … ClustrixDB Server Specs • Cores: • 8 to 16 physical cores • Disable HT (recommended) • RAM: • 64 GB+ • Disks: • SSD 300 GB+ (6 or more) • RAID-0 (HW recommended) • Optionally 1+ HDD for OS & scratch • Network: • Public: 1 GbE (or 10 GbE) • Private: 10 GbE (highly recommended) PublicNetwork
  • 15.
    Typical Full LifecycleEnvironment PROPRIETARY & CONFIDENTIAL Production Standby DR + Big Query Reporting Real-time Replication Staging Scripted Refresh Upgrades, Perf Tuning, Pre-Prod Validation Dev Patches, New Code Dev/QA, Shared
  • 16.
  • 17.
  • 18.
    ClustrixDB Overview Fully Distributed& Consistent Cluster o Fully Consistent, and ACID-compliant database – Supports transactions – Support joins – Optimized for OLTP – But also supports reporting SQL o All nodes are equal (no “special” node) o All servers are read/write o All servers accept client connections o Tables & Indexes distributed across all nodes – Fully automatic distribution, re-balancing & re-protection PrivateNetwork ClustrixDB on commodity/cloud servers HW or SW Load Balancer SQL-based Applications High Concurrency Custom: PHP, Java, Ruby, etc Packaged: Magento, etc
  • 19.
    ClustrixDB Design PROPRIETARY &CONFIDENTIAL Shared Nothing Architecture Each Node Contains: o Query Compiler: distribute compiled partial query fragments to the node containing the ranking replica o Data Map: all nodes know where all replicas are, and current ranking replicas o Database Engine: all nodes can perform all database operations (no leader, aggregator, leaf, data-only, etc nodes) o Data: Table Slices: All table slices (default: replicas=2) auto-redistributed by the Rebalancer ClustrixDB Compiler Map Engine Data Compiler Map Engine Data Compiler Map Engine Data
  • 20.
  • 21.
    Intelligent Data Distribution PROPRIETARY& CONFIDENTIAL S 1 S 2 S 2 S 3 S 3 S 4 S 4 S 5 S 5 o Tables auto-split into slices o Every slice has a replica on another node – Slices are auto distributed, auto-protected S 1 ClustrixDB BillionsofRows Database Tables
  • 22.
    Adding Nodes –Flex Up PROPRIETARY & CONFIDENTIAL S 1 S 2 S 3 S 3 S 4 S 4 S 5 o Easy and simple Flex Up & Flex Down – Single minimal interruption of service o Data is automatically rebalanced across the cluster – Tables are online for reads & writes o All servers handle writes + reads – Workload is spread across more servers after Flex Up S 1 ClustrixDB S 2 S 5
  • 23.
    Loss of aNode – Automatic Fault Tolerance PROPRIETARY & CONFIDENTIAL S 2 S 5 S 1 S 2 S 3 S 3 S 4 S 4 S 5 o ClustrixDB detects the loss of a node – System automatically re-protects – Data is automatically redistributed o Slices lost on the failed node are rapidly re-protected – Re-protection occurs while tables are available for reads & writes o Automated self-healing – After re-protect the cluster is fully protected and operational S 1 ClustrixDB S 2 S 5 S 2 S 5
  • 24.
    ClustrixDB Rebalancer: Makingthe Complex, Simple PROPRIETARY & CONFIDENTIAL Q: How do you ensure data stays well distributed in a clustered environment? A: You let the Rebalancer handle it! The Rebalancer automatically: • Initial Data: Distributes the data into even slices across nodes • Data Growth: Splits large slices into smaller slices • Flex-Up/Flex-Down: Moves slices to leverage new nodes and/or evacuate nodes • Failed Nodes: Re-protects slices to ensure proper replicas exist • Skewed Data: Re-distributes the data to even out across nodes • Hot Slice Balancing: Finds hot slices and balances then across nodes …while the DB stays open for reads & writes Patent 8,543,538 Patent 8,554,726 Patent 9,348,883
  • 25.
  • 26.
    Query Processing Model PROPRIETARY& CONFIDENTIAL  Parse  Plan  Compile Session SQL-based Applications UPDATE users SET online = 1 WHERE id = 8797; HW or SW Load Balancer ID: 8797 | … | ONLINE:0 Fragment o Load balancer spreads DB connections across all nodes o A session is established on any node o Session controls query(s) execution – Parse SQL – Generate the execution plan – Compile into binary fragments – Lookup record(s) location – Send fragments – Complete the transaction
  • 27.
    Query Processing Model PROPRIETARY& CONFIDENTIAL ID: 8797 | … | ONLINE:0 Session SQL-based Applications UPDATE users SET online = 1 WHERE id = 8797; HW or SW Load Balancer ID: 8797 | … | ONLINE:1 Ack o Load balancer spreads DB connections across all nodes o A session is established on any node o Session controls query(s) execution – Parse SQL – Generate the execution plan – Compile into binary fragments – Lookup record(s) location – Send fragments – Complete the transaction Ack
  • 28.
  • 29.
    Online Schema Change PROPRIETARY& CONFIDENTIAL Table o Allows reads & writes during ALTER TABLE operations – Add or remove column – Rename column – Change data type – CREATE INDEX o Process: – Queue created to track changes – Copy of table created – Queues replayed until synchronized – Atomic flip of table between transactions Table QueueQueueQueue MYTABLE __building_MYTABLE Atomic Flip Reads & Writes ALTER TABLE mytable ADD (foo int);
  • 30.
    Online Schema Change PROPRIETARY& CONFIDENTIAL Table o Allows reads & writes during ALTER TABLE operations – Add or remove column – Rename column – Change data type – CREATE INDEX o Process: – Queue created to track changes – Copy of table created – Queues replayed until synchronized – Atomic flip of table between transactions Table MYTABLE__building_MYTABLE Atomic Flip Reads & Writes ALTER TABLE mytable ADD (foo int); 
  • 31.
  • 32.
    Sysbench OLTP 90:10Mix PROPRIETARY AND CONFIDENTIAL o 90% Reads + 10% Writes – Very typical workload mix o 1 TPS = 10 SQL – 9 SELECT + 1 UDATE – a.k.a 10 operations/sec o Shows scaling TPS by adding servers: – Oak4 = 4 (8-core) servers – Oak16 = 16 (8-core) servers – Oak28 = 28 (8-core) servers To scale TPS while maintaining Performance (i.e. 20 ms response) just add servers to ClustrixDB 800,000 SQL/sec @ 20 ms
  • 33.
    Sysbench OLTP 100%Reads PROPRIETARY AND CONFIDENTIAL o 100% Reads – Max throughput test o 1 TPS = 10 SQL – 10 SELECT – a.k.a 10 operations/sec o Shows scaling TPS by adding servers: – Oak6 = 6 (8-core) servers – Oak18 = 18 (8-core) servers – Oak30 = 30 (8-core) servers To scale TPS while maintaining Performance (i.e. 10 ms response) just add servers to ClustrixDB >1 Million SQL/sec @ 20 ms
  • 34.
    Yahoo! Cloud ServiceBenchmark (YCSB) 95:05 Mix PROPRIETARY AND CONFIDENTIAL o 95% Reads + 5% Writes – 1 Ops/sec = 1 SQL o Designed to compare NoSQL engines – ClustrixDB runs equally fast o Shows scaling TPS by adding servers: – 4 nodes = 4 (8-core) servers – 16 nodes = 16 (8-core) servers – 24 nodes = 24 (8-core) servers To scale TPS while maintaining Performance (i.e. 3 ms response) just add servers to ClustrixDB > 500,000 SQL/sec @ 3 ms
  • 35.
    Yahoo! Cloud ServiceBenchmark (YCSB) 95:05 Mix PROPRIETARY AND CONFIDENTIAL o 95% Reads + 5% Writes – 1 Ops/sec = 1 SQL o Over 1 Million SQL/sec – With <3 ms query response – And mixed (95:05) workload – Using 30 ClustrixDB servers • 16-core AWS instances Over 1 Million SQL/sec @ 3 ms on a mixed (95:05) workload > 1,000,000 SQL/sec @ 3 ms
  • 36.
    MySQL (largest) Aurora (largest) ClustrixDB ClustrixDB vs. Auroravs. MySQL RDS PROPRIETARY AND CONFIDENTIAL o 90% Reads + 10% Writes – Very typical workload mix o 1 TPS = 10 SQL – 9 SELECT + 1 UDATE – a.k.a 10 operations/sec o ClustrixDB shows scaling TPS by adding servers: – Aws4 = 4 (8-core) servers – Aws16 = 16 (8-core) servers – Aws20 = 20 (8-core) servers ClustrixDB scales TPS past Aurora’s largest instance (db.r3.8xlarge)
  • 37.
    Backup, Replication &Administration
  • 38.
    Backup, Replication &Disaster Recovery PROPRIETARY & CONFIDENTIAL Asynchronous multi-point Replication ClustrixDB Parallel Backup (up to 10x faster) Replicate to any cloud, any datacenter, anywhere
  • 39.
    ClustrixGUI: Performance Monitoring,Diagnostics & Flex PROPRIETARY AND CONFIDENTIAL Cluster Health Dashboard Visually Compare Workloads
  • 40.
    ClustrixGUI: PROPRIETARY AND CONFIDENTIAL CPU:Dashboard 1.27 Million TPS On 32 nodes
  • 41.
    ClustrixGUI: Rich MonitoringMetrics PROPRIETARY AND CONFIDENTIAL Historical Graphs of various ClustrixDB performance metrics Groups:  Performance  Diagnostic  Queries and Rows  Sessions and Transactions  Replication  Disk
  • 42.
  • 43.
    o ClustrixDB 8.0builds upon the significant performance improvements in ClustrixDB 7.5 – More reliable – Easier to use – Many enhancements requested by our customers o Additionally, ClustrixDB 8.0 adds these 3 main new features: – In-Memory Tables – On-Disk Encryption – Simplified Cluster Provisioning ClustrixDB 8.0 – New Features PROPRIETARY AND CONFIDENTIAL
  • 44.
    o Special tablecontainer designed for high concurrency writes – Supports same data types as regular tables – Supports joins with regular tables – Read consistent (i.e. MVCC) – Survives node failure without data loss o Ideal for scenarios that have: – High concurrency, write-intensive transactions – …which are then filtered or aggregated – …and finally persisted into regular tables – Examples: • Sensor data collection • Log collection • Write-intensive batch processing ClustrixDB 8.0 – In-Memory Tables PROPRIETARY AND CONFIDENTIAL
  • 45.
    o Adds encryptionfor “Data-at-Rest” o Transparent to applications – Applications are unaware that the tables are encrypted – ClustrixDB handles encryption/decryption and the keys o Uses AES 256-bit encryption o All tables and all databases are stored as encrypted ClustrixDB 8.0 – On-Disk Encryption PROPRIETARY AND CONFIDENTIAL
  • 46.
    o Web GUI-driven oContainer-based o Use for simplified cluster install, and Flex-up/Flex-down o Designed for: – AWS environments – On-premises environments (i.e. bare metal) ClustrixDB 8.0 – Simplified Cluster Provisioning PROPRIETARY AND CONFIDENTIAL
  • 47.
    Questions & AnswersTime PROPRIETARY AND CONFIDENTIAL
  • 48.