SlideShare a Scribd company logo
1 of 38
Download to read offline
How MariaDB Server Scales
with Spider
Jacob Mathew
Senior Software Engineer, MariaDB
Kentoku Shiba
Author of Spider, Spiral Arms
Spider
● What is Spider?
● Why should I use Spider?
● Sharding with Spider.
● Redundant Data.
● Data Consistency.
● Getting Started with Spider.
● What’s New in Spider?
● What’s Ahead for Spider?
What is Spider?
What is Spider?
● Storage engine plugin.
○ Spider doesn’t itself store data.
● Manage storage and retrieval of data stored using other storage engines.
● Sharding solution that stores data remotely on other servers.
● Partition tables using the Partition Engine.
● View the data as if it is local.
Why Should I Use Spider?
Why Should I Use Spider?
● Very large tables.
● Volume of data is growing.
● Lots of concurrent operations on the data.
● Few or no application code changes required.
Why Should I Use
Spider?
● Spider pushes down query
information.
● Reduces amount of result data
returned by data nodes.
● Parallel execution.
● Data consistency.
SQL Client
Data Node
MariaDB
Spider Node
MariaDB
table_a
Data Node
MariaDB
table_a
Data Node
MariaDB
table_a
Data Node
MariaDB
table_a
A-F G-L M-R S-Z
Sharding with Spider
Sharding with
Spider
1. Receive a request.
2. Execute the request.
a. Distribute SQL to data
nodes.
b. Receive and consolidate
results from data nodes.
3. Send reply.
SQL Client
Data Node
MariaDB
Spider Node
MariaDB
table_a
Data Node
MariaDB
table_a
Data Node
MariaDB
table_a
Data Node
MariaDB
table_a
1 3
2a 2b
A-F G-L M-R S-Z
Sharding with Spider
● Partition Engine
○ Supports all partitioning rules.
■ Range.
■ Key.
■ Hash.
■ List.
● CREATE SERVER
○ Comment for connection details.
○ Useful when each data node has different connection information.
Sharding with Spider
Spider cluster pushdown
● Engine condition.
● Index hints.
● Join.
● Aggregation.
● Direct update/delete.
Redundant Data
Redundant Data
● Full copy of the table on each
data node.
● For SELECTs, Spider performs
load balancing and chooses the
data node.
● INSERTs, UPDATEs and
DELETEs are parallelized to the
data nodes.
SQL Client
Data Node
MariaDB
Spider Node
MariaDB
table_a
Data Node
MariaDB
table_a
Data Node
MariaDB
table_a
Data Node
MariaDB
table_a
A-Z A-Z A-Z A-Z
Data Consistency
Data Consistency
● Data needs to be written to
multiple data nodes.
● Spider uses 2-phase commit.
SQL Client
Data Node
MariaDB
Spider Node
MariaDB
table_a
Data Node
MariaDB
table_a
Data Node
MariaDB
table_a
Data Node
MariaDB
table_a
A-F G-L M-R S-Z
Getting Started with Spider
Getting Started with Spider
1. Get MariaDB.
a. Spider is bundled with MariaDB.
2. Install the database.
a. mysql_install_db
3. Start MariaDB server.
4. Install Spider engine.
a. mysql < scripts/install_spider.sql
5. CREATE TABLE with options to use Spider.
Getting Started
with Spider
On the Data Node:
CREATE TABLE r_table_a
(c1 INT PRIMARY KEY,
c2 VARCHAR(100))
ENGINE=innodb
DEFAULT CHARSET=UTF8;
Getting Started
with Spider
On the Spider Node:
CREATE TABLE table_a
(c1 INT PRIMARY KEY,
c2 VARCHAR(100))
ENGINE=spider
DEFAULT CHARSET=UTF8
COMMENT
‘table "r_table_a", database "test",
port "3306",
host "<host name of data node>",
user "<user name for data node>",
password "<password for user>"’;
Getting Started
with Spider
Omit column definitions
on the Spider Node:
CREATE TABLE table_a
ENGINE=spider
DEFAULT CHARSET=UTF8
COMMENT
‘table "r_table_a", database "test",
port "3306",
host "<host name of data node>",
user "<user name for data node>",
password "<password for user>"’;
Getting Started with Spider
CREATE TABLE table_a (c1 INT PRIMARY KEY, c2 VARCHAR(100))
ENGINE=spider DEFAULT CHARSET=UTF8
COMMENT
‘table "r_table_a", database "test", port "3306",
user "<user name for data node>",
password "<password for user>"’
PARTITION BY RANGE(c1)
(PARTITION p1 VALUES LESS THAN (100000) COMMENT 'host "h1"',
PARTITION p2 VALUES LESS THAN (200000) COMMENT 'host "h2"',
PARTITION p3 VALUES LESS THAN (300000) COMMENT 'host "h3"',
PARTITION p4 VALUES LESS THAN MAXVALUE COMMENT 'host "h4"');
Sharding on the Spider Node
Getting Started with Spider
CREATE SERVER server_1
FOREIGN DATA WRAPPER mysql OPTIONS
HOST 'host name of data node',
DATABASE 'test',
USER 'user name for data node',
PASSWORD 'password for data node',
PORT 3306;
CREATE TABLE table_a (c1 INT PRIMARY KEY, c2 VARCHAR(100))
ENGINE=spider DEFAULT CHARSET=UTF8
COMMENT ‘table "r_table_a", server "server_1"’;
CREATE SERVER for connection information on the Spider Node
Getting Started with Spider
CREATE SERVER server_1 FOREIGN DATA WRAPPER mysql OPTIONS
HOST 'host name of data node 1', DATABASE 'test',
USER 'user name for data node 1', PASSWORD 'password for data node 1', PORT 3306;
CREATE SERVER server_2 FOREIGN DATA WRAPPER mysql OPTIONS
HOST 'host name of data node 2', DATABASE 'test',
USER 'user name for data node 2', PASSWORD 'password for data node', PORT 3306;
CREATE TABLE table_a (c1 INT PRIMARY KEY, c2 VARCHAR(100))
ENGINE=spider DEFAULT CHARSET=UTF8
COMMENT ‘table "r_table_a"’
PARTITION BY RANGE(c1)
(PARTITION p1 VALUES LESS THAN (200000) COMMENT 'server "server_1"',
PARTITION p2 VALUES LESS THAN MAXVALUE COMMENT 'server "server_2"');
CREATE SERVER for shard connection information on the Spider Node
What’s New in Spider?
What’s New in Spider?
● Support in the Partition Engine for additional features.
○ Engine Condition pushdown pushes down to the data nodes.
○ Multi range read.
○ Full Text search.
○ Auto-Increment data type.
● Direct aggregation of min, max, avg, count, sum
● Direct update/delete.
● Direct join.
● Options to log
○ Result errors.
○ Stored Procedure Queries.
● Contributions from Tencent.
What’s New in
Spider?
Direct Aggregation
● Aggregation is pushed down to
the data nodes:
min, max, avg, count, sum.
● Aggregation results are
returned by the data nodes.
SQL Client
Data Node
MariaDB
Spider Node
MariaDB
table_a
Data Node
MariaDB
table_a
Data Node
MariaDB
table_a
Data Node
MariaDB
table_a
A-F G-L M-R S-Z
What’s New in
Spider?
Direct Update/Delete
● Entire update/delete operation
is pushed down to the data
nodes.
● Update/delete executed as a
single cluster operation instead
of one row at a time.
SQL Client
Data Node
MariaDB
Spider Node
MariaDB
table_a
Data Node
MariaDB
table_a
Data Node
MariaDB
table_a
Data Node
MariaDB
table_a
A-F G-L M-R S-Z
What’s New in
Spider?
Direct Join
● Join is pushed down to the data
nodes.
● Join results are consolidated by
the Spider node.
SQL Client
Data Node
MariaDB
Spider Node
MariaDB
table_a
Data Node
MariaDB
table_a
Data Node
MariaDB
table_a
Data Node
MariaDB
table_a
A-F G-L M-R S-Z
What’s New in Spider?
● Force pushdown of index hints.
● Optimization for LIMIT.
● Added max connection pool size feature to Spider.
● Bug fixes.
Contributions from Tencent
What’s Ahead for Spider?
What’s Ahead for Spider?
● Vertical Partition (VP) Engine.
○ Multi-dimensional sharding.
○ VP merges multiple child tables into a single view.
○ VP efficiently chooses child tables for each query.
Vertical Partitioning with VP
SQL Client
Spider / VP Node
MariaDB
table_a
table_a_ca table_a_cb
Partition by
column col_b
Partition by
column col_a
CREATE TABLE table_a_ca (
col_a int,,
col_b date,
col_c int,
primary key(col_a))
ENGINE=innodb partition by ...
CREATE TABLE table_a_cb (
col_a int,
col_b date,
col_c int,
key idx1(col_a),
key idx2(col_b))
ENGINE=innodb partition by ...
Vertical Partitioning with VP
SQL Client
Spider / VP Node
MariaDB
table_a
table_a_ca table_a_cb
Partition by
column col_b
Partition by
column col_a
SELECT … FROM table_a WHERE col_a = 1
Vertical Partitioning with VP
SQL Client
Spider / VP Node
MariaDB
table_a
table_a_ca table_a_cb
Partition by
column col_b
Partition by
column col_a
SELECT … FROM table_a WHERE col_b = ‘2016-01-01’
Vertical Partitioning with VP
● When sharding Spider tables which have different partitioning rules for VP
child tables, VP chooses sharded Spider tables efficiently.
Vertical
Partitioning
with VP
SELECT …
FROM
table_a
WHERE
col_a = 1
SQL Client
Spider / VP Node
MariaDB
Partition by
column col_a
Data Node
MariaDB
table_a_cb
A-L
Data Node
MariaDB
table_a_cb
M-Z
Data Node
MariaDB
table_a_ca
A-L
Data Node
MariaDB
table_a_ca
M-Z
table_a
table_a_ca table_a_cb
Partition by
column col_b
Vertical
Partitioning
with VP
SELECT …
FROM
table_a
WHERE
col_b =
‘2016-01-01’
SQL Client
Spider / VP Node
MariaDB
Partition by
column col_a
Data Node
MariaDB
table_a_cb
A-L
Data Node
MariaDB
table_a_cb
M-Z
Data Node
MariaDB
table_a_ca
A-L
Data Node
MariaDB
table_a_ca
M-Z
table_a
table_a_ca table_a_cb
Partition by
column col_b
Thank you!

More Related Content

What's hot

MariaDB Administrator 교육
MariaDB Administrator 교육 MariaDB Administrator 교육
MariaDB Administrator 교육 Sangmo Kim
 
MariaDB MaxScale
MariaDB MaxScaleMariaDB MaxScale
MariaDB MaxScaleMariaDB plc
 
HandsOn ProxySQL Tutorial - PLSC18
HandsOn ProxySQL Tutorial - PLSC18HandsOn ProxySQL Tutorial - PLSC18
HandsOn ProxySQL Tutorial - PLSC18Derek Downey
 
MySQL8.0_performance_schema.pptx
MySQL8.0_performance_schema.pptxMySQL8.0_performance_schema.pptx
MySQL8.0_performance_schema.pptxNeoClova
 
BlueStore: a new, faster storage backend for Ceph
BlueStore: a new, faster storage backend for CephBlueStore: a new, faster storage backend for Ceph
BlueStore: a new, faster storage backend for CephSage Weil
 
MySQL Database Architectures - 2020-10
MySQL Database Architectures -  2020-10MySQL Database Architectures -  2020-10
MySQL Database Architectures - 2020-10Kenny Gryp
 
The Full MySQL and MariaDB Parallel Replication Tutorial
The Full MySQL and MariaDB Parallel Replication TutorialThe Full MySQL and MariaDB Parallel Replication Tutorial
The Full MySQL and MariaDB Parallel Replication TutorialJean-François Gagné
 
Parallel Replication in MySQL and MariaDB
Parallel Replication in MySQL and MariaDBParallel Replication in MySQL and MariaDB
Parallel Replication in MySQL and MariaDBMydbops
 
MariaDB High Availability
MariaDB High AvailabilityMariaDB High Availability
MariaDB High AvailabilityMariaDB plc
 
MariaDB Server Performance Tuning & Optimization
MariaDB Server Performance Tuning & OptimizationMariaDB Server Performance Tuning & Optimization
MariaDB Server Performance Tuning & OptimizationMariaDB plc
 
MariaDB Galera Cluster
MariaDB Galera ClusterMariaDB Galera Cluster
MariaDB Galera ClusterAbdul Manaf
 
MariaDB 제품 소개
MariaDB 제품 소개MariaDB 제품 소개
MariaDB 제품 소개NeoClova
 
Galera cluster for high availability
Galera cluster for high availability Galera cluster for high availability
Galera cluster for high availability Mydbops
 
Using all of the high availability options in MariaDB
Using all of the high availability options in MariaDBUsing all of the high availability options in MariaDB
Using all of the high availability options in MariaDBMariaDB plc
 
MySQL_MariaDB-성능개선-202201.pptx
MySQL_MariaDB-성능개선-202201.pptxMySQL_MariaDB-성능개선-202201.pptx
MySQL_MariaDB-성능개선-202201.pptxNeoClova
 
PostgreSQL HA
PostgreSQL   HAPostgreSQL   HA
PostgreSQL HAharoonm
 
[OpenInfra Days Korea 2018] Day 2 - CEPH 운영자를 위한 Object Storage Performance T...
[OpenInfra Days Korea 2018] Day 2 - CEPH 운영자를 위한 Object Storage Performance T...[OpenInfra Days Korea 2018] Day 2 - CEPH 운영자를 위한 Object Storage Performance T...
[OpenInfra Days Korea 2018] Day 2 - CEPH 운영자를 위한 Object Storage Performance T...OpenStack Korea Community
 
MySQL/MariaDB Proxy Software Test
MySQL/MariaDB Proxy Software TestMySQL/MariaDB Proxy Software Test
MySQL/MariaDB Proxy Software TestI Goo Lee
 

What's hot (20)

Ceph issue 해결 사례
Ceph issue 해결 사례Ceph issue 해결 사례
Ceph issue 해결 사례
 
MariaDB Administrator 교육
MariaDB Administrator 교육 MariaDB Administrator 교육
MariaDB Administrator 교육
 
MariaDB MaxScale
MariaDB MaxScaleMariaDB MaxScale
MariaDB MaxScale
 
Query logging with proxysql
Query logging with proxysqlQuery logging with proxysql
Query logging with proxysql
 
HandsOn ProxySQL Tutorial - PLSC18
HandsOn ProxySQL Tutorial - PLSC18HandsOn ProxySQL Tutorial - PLSC18
HandsOn ProxySQL Tutorial - PLSC18
 
MySQL8.0_performance_schema.pptx
MySQL8.0_performance_schema.pptxMySQL8.0_performance_schema.pptx
MySQL8.0_performance_schema.pptx
 
BlueStore: a new, faster storage backend for Ceph
BlueStore: a new, faster storage backend for CephBlueStore: a new, faster storage backend for Ceph
BlueStore: a new, faster storage backend for Ceph
 
MySQL Database Architectures - 2020-10
MySQL Database Architectures -  2020-10MySQL Database Architectures -  2020-10
MySQL Database Architectures - 2020-10
 
The Full MySQL and MariaDB Parallel Replication Tutorial
The Full MySQL and MariaDB Parallel Replication TutorialThe Full MySQL and MariaDB Parallel Replication Tutorial
The Full MySQL and MariaDB Parallel Replication Tutorial
 
Parallel Replication in MySQL and MariaDB
Parallel Replication in MySQL and MariaDBParallel Replication in MySQL and MariaDB
Parallel Replication in MySQL and MariaDB
 
MariaDB High Availability
MariaDB High AvailabilityMariaDB High Availability
MariaDB High Availability
 
MariaDB Server Performance Tuning & Optimization
MariaDB Server Performance Tuning & OptimizationMariaDB Server Performance Tuning & Optimization
MariaDB Server Performance Tuning & Optimization
 
MariaDB Galera Cluster
MariaDB Galera ClusterMariaDB Galera Cluster
MariaDB Galera Cluster
 
MariaDB 제품 소개
MariaDB 제품 소개MariaDB 제품 소개
MariaDB 제품 소개
 
Galera cluster for high availability
Galera cluster for high availability Galera cluster for high availability
Galera cluster for high availability
 
Using all of the high availability options in MariaDB
Using all of the high availability options in MariaDBUsing all of the high availability options in MariaDB
Using all of the high availability options in MariaDB
 
MySQL_MariaDB-성능개선-202201.pptx
MySQL_MariaDB-성능개선-202201.pptxMySQL_MariaDB-성능개선-202201.pptx
MySQL_MariaDB-성능개선-202201.pptx
 
PostgreSQL HA
PostgreSQL   HAPostgreSQL   HA
PostgreSQL HA
 
[OpenInfra Days Korea 2018] Day 2 - CEPH 운영자를 위한 Object Storage Performance T...
[OpenInfra Days Korea 2018] Day 2 - CEPH 운영자를 위한 Object Storage Performance T...[OpenInfra Days Korea 2018] Day 2 - CEPH 운영자를 위한 Object Storage Performance T...
[OpenInfra Days Korea 2018] Day 2 - CEPH 운영자를 위한 Object Storage Performance T...
 
MySQL/MariaDB Proxy Software Test
MySQL/MariaDB Proxy Software TestMySQL/MariaDB Proxy Software Test
MySQL/MariaDB Proxy Software Test
 

Similar to M|18 How MariaDB Server Scales with Spider

Using spider for sharding in production
Using spider for sharding in productionUsing spider for sharding in production
Using spider for sharding in productionKentoku
 
MariaDB: Connect Storage Engine
MariaDB: Connect Storage EngineMariaDB: Connect Storage Engine
MariaDB: Connect Storage EngineKangaroot
 
Sharding with spider solutions 20160721
Sharding with spider solutions 20160721Sharding with spider solutions 20160721
Sharding with spider solutions 20160721Kentoku
 
MariaDB Paris Workshop 2023 - Performance Optimization
MariaDB Paris Workshop 2023 - Performance OptimizationMariaDB Paris Workshop 2023 - Performance Optimization
MariaDB Paris Workshop 2023 - Performance OptimizationMariaDB plc
 
Newest topic of spider 20131016 in Buenos Aires Argentina
Newest topic of spider 20131016 in Buenos Aires ArgentinaNewest topic of spider 20131016 in Buenos Aires Argentina
Newest topic of spider 20131016 in Buenos Aires ArgentinaKentoku
 
Les fonctionnalites mariadb
Les fonctionnalites mariadbLes fonctionnalites mariadb
Les fonctionnalites mariadblemugfr
 
Using Pentaho with MariaDB ColumnStore
Using Pentaho with MariaDB ColumnStoreUsing Pentaho with MariaDB ColumnStore
Using Pentaho with MariaDB ColumnStoreMariaDB plc
 
PostgreSQL - масштабирование в моде, Valentine Gogichashvili (Zalando SE)
PostgreSQL - масштабирование в моде, Valentine Gogichashvili (Zalando SE)PostgreSQL - масштабирование в моде, Valentine Gogichashvili (Zalando SE)
PostgreSQL - масштабирование в моде, Valentine Gogichashvili (Zalando SE)Ontico
 
Data Lineage with Apache Airflow using Marquez
Data Lineage with Apache Airflow using Marquez Data Lineage with Apache Airflow using Marquez
Data Lineage with Apache Airflow using Marquez Willy Lulciuc
 
What to expect from MariaDB Platform X5, part 1
What to expect from MariaDB Platform X5, part 1What to expect from MariaDB Platform X5, part 1
What to expect from MariaDB Platform X5, part 1MariaDB plc
 
MySQL Spider Architecture
MySQL Spider ArchitectureMySQL Spider Architecture
MySQL Spider ArchitectureI Goo Lee
 
Spider Setup with AWS/sandbox
Spider Setup with AWS/sandboxSpider Setup with AWS/sandbox
Spider Setup with AWS/sandboxI Goo Lee
 
MariaDB for the Enterprise
MariaDB for the EnterpriseMariaDB for the Enterprise
MariaDB for the EnterpriseAll Things Open
 
OpenWorks2019 - Using Pentaho/Tableau with MariaDB ColumnStore
OpenWorks2019 - Using Pentaho/Tableau with MariaDB ColumnStoreOpenWorks2019 - Using Pentaho/Tableau with MariaDB ColumnStore
OpenWorks2019 - Using Pentaho/Tableau with MariaDB ColumnStoreGOTO Satoru
 
Creating PostgreSQL-as-a-Service at Scale
Creating PostgreSQL-as-a-Service at ScaleCreating PostgreSQL-as-a-Service at Scale
Creating PostgreSQL-as-a-Service at ScaleSean Chittenden
 
Dive into Spark Streaming
Dive into Spark StreamingDive into Spark Streaming
Dive into Spark StreamingGerard Maas
 
Empowering the AWS DynamoDB™ application developer with Alternator
Empowering the AWS DynamoDB™ application developer with AlternatorEmpowering the AWS DynamoDB™ application developer with Alternator
Empowering the AWS DynamoDB™ application developer with AlternatorScyllaDB
 
Deep Dive of ADBMS Migration to Apache Spark—Use Cases Sharing
Deep Dive of ADBMS Migration to Apache Spark—Use Cases SharingDeep Dive of ADBMS Migration to Apache Spark—Use Cases Sharing
Deep Dive of ADBMS Migration to Apache Spark—Use Cases SharingDatabricks
 
Beyond unit tests: Deployment and testing for Hadoop/Spark workflows
Beyond unit tests: Deployment and testing for Hadoop/Spark workflowsBeyond unit tests: Deployment and testing for Hadoop/Spark workflows
Beyond unit tests: Deployment and testing for Hadoop/Spark workflowsDataWorks Summit
 

Similar to M|18 How MariaDB Server Scales with Spider (20)

Using spider for sharding in production
Using spider for sharding in productionUsing spider for sharding in production
Using spider for sharding in production
 
MariaDB: Connect Storage Engine
MariaDB: Connect Storage EngineMariaDB: Connect Storage Engine
MariaDB: Connect Storage Engine
 
Sharding with spider solutions 20160721
Sharding with spider solutions 20160721Sharding with spider solutions 20160721
Sharding with spider solutions 20160721
 
MariaDB Paris Workshop 2023 - Performance Optimization
MariaDB Paris Workshop 2023 - Performance OptimizationMariaDB Paris Workshop 2023 - Performance Optimization
MariaDB Paris Workshop 2023 - Performance Optimization
 
Newest topic of spider 20131016 in Buenos Aires Argentina
Newest topic of spider 20131016 in Buenos Aires ArgentinaNewest topic of spider 20131016 in Buenos Aires Argentina
Newest topic of spider 20131016 in Buenos Aires Argentina
 
Les fonctionnalites mariadb
Les fonctionnalites mariadbLes fonctionnalites mariadb
Les fonctionnalites mariadb
 
Using Pentaho with MariaDB ColumnStore
Using Pentaho with MariaDB ColumnStoreUsing Pentaho with MariaDB ColumnStore
Using Pentaho with MariaDB ColumnStore
 
PostgreSQL - масштабирование в моде, Valentine Gogichashvili (Zalando SE)
PostgreSQL - масштабирование в моде, Valentine Gogichashvili (Zalando SE)PostgreSQL - масштабирование в моде, Valentine Gogichashvili (Zalando SE)
PostgreSQL - масштабирование в моде, Valentine Gogichashvili (Zalando SE)
 
Data Lineage with Apache Airflow using Marquez
Data Lineage with Apache Airflow using Marquez Data Lineage with Apache Airflow using Marquez
Data Lineage with Apache Airflow using Marquez
 
What to expect from MariaDB Platform X5, part 1
What to expect from MariaDB Platform X5, part 1What to expect from MariaDB Platform X5, part 1
What to expect from MariaDB Platform X5, part 1
 
MySQL Spider Architecture
MySQL Spider ArchitectureMySQL Spider Architecture
MySQL Spider Architecture
 
Spider Setup with AWS/sandbox
Spider Setup with AWS/sandboxSpider Setup with AWS/sandbox
Spider Setup with AWS/sandbox
 
MariaDB for the Enterprise
MariaDB for the EnterpriseMariaDB for the Enterprise
MariaDB for the Enterprise
 
OpenWorks2019 - Using Pentaho/Tableau with MariaDB ColumnStore
OpenWorks2019 - Using Pentaho/Tableau with MariaDB ColumnStoreOpenWorks2019 - Using Pentaho/Tableau with MariaDB ColumnStore
OpenWorks2019 - Using Pentaho/Tableau with MariaDB ColumnStore
 
Creating PostgreSQL-as-a-Service at Scale
Creating PostgreSQL-as-a-Service at ScaleCreating PostgreSQL-as-a-Service at Scale
Creating PostgreSQL-as-a-Service at Scale
 
Dive into Spark Streaming
Dive into Spark StreamingDive into Spark Streaming
Dive into Spark Streaming
 
Empowering the AWS DynamoDB™ application developer with Alternator
Empowering the AWS DynamoDB™ application developer with AlternatorEmpowering the AWS DynamoDB™ application developer with Alternator
Empowering the AWS DynamoDB™ application developer with Alternator
 
Jdbc
JdbcJdbc
Jdbc
 
Deep Dive of ADBMS Migration to Apache Spark—Use Cases Sharing
Deep Dive of ADBMS Migration to Apache Spark—Use Cases SharingDeep Dive of ADBMS Migration to Apache Spark—Use Cases Sharing
Deep Dive of ADBMS Migration to Apache Spark—Use Cases Sharing
 
Beyond unit tests: Deployment and testing for Hadoop/Spark workflows
Beyond unit tests: Deployment and testing for Hadoop/Spark workflowsBeyond unit tests: Deployment and testing for Hadoop/Spark workflows
Beyond unit tests: Deployment and testing for Hadoop/Spark workflows
 

More from MariaDB plc

MariaDB Paris Workshop 2023 - MaxScale 23.02.x
MariaDB Paris Workshop 2023 - MaxScale 23.02.xMariaDB Paris Workshop 2023 - MaxScale 23.02.x
MariaDB Paris Workshop 2023 - MaxScale 23.02.xMariaDB plc
 
MariaDB Paris Workshop 2023 - Newpharma
MariaDB Paris Workshop 2023 - NewpharmaMariaDB Paris Workshop 2023 - Newpharma
MariaDB Paris Workshop 2023 - NewpharmaMariaDB plc
 
MariaDB Paris Workshop 2023 - Cloud
MariaDB Paris Workshop 2023 - CloudMariaDB Paris Workshop 2023 - Cloud
MariaDB Paris Workshop 2023 - CloudMariaDB plc
 
MariaDB Paris Workshop 2023 - MariaDB Enterprise
MariaDB Paris Workshop 2023 - MariaDB EnterpriseMariaDB Paris Workshop 2023 - MariaDB Enterprise
MariaDB Paris Workshop 2023 - MariaDB EnterpriseMariaDB plc
 
MariaDB Paris Workshop 2023 - MaxScale
MariaDB Paris Workshop 2023 - MaxScale MariaDB Paris Workshop 2023 - MaxScale
MariaDB Paris Workshop 2023 - MaxScale MariaDB plc
 
MariaDB Paris Workshop 2023 - novadys presentation
MariaDB Paris Workshop 2023 - novadys presentationMariaDB Paris Workshop 2023 - novadys presentation
MariaDB Paris Workshop 2023 - novadys presentationMariaDB plc
 
MariaDB Paris Workshop 2023 - DARVA presentation
MariaDB Paris Workshop 2023 - DARVA presentationMariaDB Paris Workshop 2023 - DARVA presentation
MariaDB Paris Workshop 2023 - DARVA presentationMariaDB plc
 
MariaDB Tech und Business Update Hamburg 2023 - MariaDB Enterprise Server
MariaDB Tech und Business Update Hamburg 2023 - MariaDB Enterprise Server MariaDB Tech und Business Update Hamburg 2023 - MariaDB Enterprise Server
MariaDB Tech und Business Update Hamburg 2023 - MariaDB Enterprise Server MariaDB plc
 
MariaDB SkySQL Autonome Skalierung, Observability, Cloud-Backup
MariaDB SkySQL Autonome Skalierung, Observability, Cloud-BackupMariaDB SkySQL Autonome Skalierung, Observability, Cloud-Backup
MariaDB SkySQL Autonome Skalierung, Observability, Cloud-BackupMariaDB plc
 
Einführung : MariaDB Tech und Business Update Hamburg 2023
Einführung : MariaDB Tech und Business Update Hamburg 2023Einführung : MariaDB Tech und Business Update Hamburg 2023
Einführung : MariaDB Tech und Business Update Hamburg 2023MariaDB plc
 
Hochverfügbarkeitslösungen mit MariaDB
Hochverfügbarkeitslösungen mit MariaDBHochverfügbarkeitslösungen mit MariaDB
Hochverfügbarkeitslösungen mit MariaDBMariaDB plc
 
Die Neuheiten in MariaDB Enterprise Server
Die Neuheiten in MariaDB Enterprise ServerDie Neuheiten in MariaDB Enterprise Server
Die Neuheiten in MariaDB Enterprise ServerMariaDB plc
 
Global Data Replication with Galera for Ansell Guardian®
Global Data Replication with Galera for Ansell Guardian®Global Data Replication with Galera for Ansell Guardian®
Global Data Replication with Galera for Ansell Guardian®MariaDB plc
 
Introducing workload analysis
Introducing workload analysisIntroducing workload analysis
Introducing workload analysisMariaDB plc
 
Under the hood: SkySQL monitoring
Under the hood: SkySQL monitoringUnder the hood: SkySQL monitoring
Under the hood: SkySQL monitoringMariaDB plc
 
Introducing the R2DBC async Java connector
Introducing the R2DBC async Java connectorIntroducing the R2DBC async Java connector
Introducing the R2DBC async Java connectorMariaDB plc
 
MariaDB Enterprise Tools introduction
MariaDB Enterprise Tools introductionMariaDB Enterprise Tools introduction
MariaDB Enterprise Tools introductionMariaDB plc
 
Faster, better, stronger: The new InnoDB
Faster, better, stronger: The new InnoDBFaster, better, stronger: The new InnoDB
Faster, better, stronger: The new InnoDBMariaDB plc
 
The architecture of SkySQL
The architecture of SkySQLThe architecture of SkySQL
The architecture of SkySQLMariaDB plc
 
What to expect from MariaDB Platform X5, part 2
What to expect from MariaDB Platform X5, part 2What to expect from MariaDB Platform X5, part 2
What to expect from MariaDB Platform X5, part 2MariaDB plc
 

More from MariaDB plc (20)

MariaDB Paris Workshop 2023 - MaxScale 23.02.x
MariaDB Paris Workshop 2023 - MaxScale 23.02.xMariaDB Paris Workshop 2023 - MaxScale 23.02.x
MariaDB Paris Workshop 2023 - MaxScale 23.02.x
 
MariaDB Paris Workshop 2023 - Newpharma
MariaDB Paris Workshop 2023 - NewpharmaMariaDB Paris Workshop 2023 - Newpharma
MariaDB Paris Workshop 2023 - Newpharma
 
MariaDB Paris Workshop 2023 - Cloud
MariaDB Paris Workshop 2023 - CloudMariaDB Paris Workshop 2023 - Cloud
MariaDB Paris Workshop 2023 - Cloud
 
MariaDB Paris Workshop 2023 - MariaDB Enterprise
MariaDB Paris Workshop 2023 - MariaDB EnterpriseMariaDB Paris Workshop 2023 - MariaDB Enterprise
MariaDB Paris Workshop 2023 - MariaDB Enterprise
 
MariaDB Paris Workshop 2023 - MaxScale
MariaDB Paris Workshop 2023 - MaxScale MariaDB Paris Workshop 2023 - MaxScale
MariaDB Paris Workshop 2023 - MaxScale
 
MariaDB Paris Workshop 2023 - novadys presentation
MariaDB Paris Workshop 2023 - novadys presentationMariaDB Paris Workshop 2023 - novadys presentation
MariaDB Paris Workshop 2023 - novadys presentation
 
MariaDB Paris Workshop 2023 - DARVA presentation
MariaDB Paris Workshop 2023 - DARVA presentationMariaDB Paris Workshop 2023 - DARVA presentation
MariaDB Paris Workshop 2023 - DARVA presentation
 
MariaDB Tech und Business Update Hamburg 2023 - MariaDB Enterprise Server
MariaDB Tech und Business Update Hamburg 2023 - MariaDB Enterprise Server MariaDB Tech und Business Update Hamburg 2023 - MariaDB Enterprise Server
MariaDB Tech und Business Update Hamburg 2023 - MariaDB Enterprise Server
 
MariaDB SkySQL Autonome Skalierung, Observability, Cloud-Backup
MariaDB SkySQL Autonome Skalierung, Observability, Cloud-BackupMariaDB SkySQL Autonome Skalierung, Observability, Cloud-Backup
MariaDB SkySQL Autonome Skalierung, Observability, Cloud-Backup
 
Einführung : MariaDB Tech und Business Update Hamburg 2023
Einführung : MariaDB Tech und Business Update Hamburg 2023Einführung : MariaDB Tech und Business Update Hamburg 2023
Einführung : MariaDB Tech und Business Update Hamburg 2023
 
Hochverfügbarkeitslösungen mit MariaDB
Hochverfügbarkeitslösungen mit MariaDBHochverfügbarkeitslösungen mit MariaDB
Hochverfügbarkeitslösungen mit MariaDB
 
Die Neuheiten in MariaDB Enterprise Server
Die Neuheiten in MariaDB Enterprise ServerDie Neuheiten in MariaDB Enterprise Server
Die Neuheiten in MariaDB Enterprise Server
 
Global Data Replication with Galera for Ansell Guardian®
Global Data Replication with Galera for Ansell Guardian®Global Data Replication with Galera for Ansell Guardian®
Global Data Replication with Galera for Ansell Guardian®
 
Introducing workload analysis
Introducing workload analysisIntroducing workload analysis
Introducing workload analysis
 
Under the hood: SkySQL monitoring
Under the hood: SkySQL monitoringUnder the hood: SkySQL monitoring
Under the hood: SkySQL monitoring
 
Introducing the R2DBC async Java connector
Introducing the R2DBC async Java connectorIntroducing the R2DBC async Java connector
Introducing the R2DBC async Java connector
 
MariaDB Enterprise Tools introduction
MariaDB Enterprise Tools introductionMariaDB Enterprise Tools introduction
MariaDB Enterprise Tools introduction
 
Faster, better, stronger: The new InnoDB
Faster, better, stronger: The new InnoDBFaster, better, stronger: The new InnoDB
Faster, better, stronger: The new InnoDB
 
The architecture of SkySQL
The architecture of SkySQLThe architecture of SkySQL
The architecture of SkySQL
 
What to expect from MariaDB Platform X5, part 2
What to expect from MariaDB Platform X5, part 2What to expect from MariaDB Platform X5, part 2
What to expect from MariaDB Platform X5, part 2
 

Recently uploaded

Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...Delhi Call girls
 
Week-01-2.ppt BBB human Computer interaction
Week-01-2.ppt BBB human Computer interactionWeek-01-2.ppt BBB human Computer interaction
Week-01-2.ppt BBB human Computer interactionfulawalesam
 
Al Barsha Escorts $#$ O565212860 $#$ Escort Service In Al Barsha
Al Barsha Escorts $#$ O565212860 $#$ Escort Service In Al BarshaAl Barsha Escorts $#$ O565212860 $#$ Escort Service In Al Barsha
Al Barsha Escorts $#$ O565212860 $#$ Escort Service In Al BarshaAroojKhan71
 
Mg Road Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Banga...
Mg Road Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Banga...Mg Road Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Banga...
Mg Road Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Banga...amitlee9823
 
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...amitlee9823
 
➥🔝 7737669865 🔝▻ malwa Call-girls in Women Seeking Men 🔝malwa🔝 Escorts Ser...
➥🔝 7737669865 🔝▻ malwa Call-girls in Women Seeking Men  🔝malwa🔝   Escorts Ser...➥🔝 7737669865 🔝▻ malwa Call-girls in Women Seeking Men  🔝malwa🔝   Escorts Ser...
➥🔝 7737669865 🔝▻ malwa Call-girls in Women Seeking Men 🔝malwa🔝 Escorts Ser...amitlee9823
 
Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...
Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...
Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...amitlee9823
 
BigBuy dropshipping via API with DroFx.pptx
BigBuy dropshipping via API with DroFx.pptxBigBuy dropshipping via API with DroFx.pptx
BigBuy dropshipping via API with DroFx.pptxolyaivanovalion
 
Call Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Call Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service BangaloreCall Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Call Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangaloreamitlee9823
 
Halmar dropshipping via API with DroFx
Halmar  dropshipping  via API with DroFxHalmar  dropshipping  via API with DroFx
Halmar dropshipping via API with DroFxolyaivanovalion
 
➥🔝 7737669865 🔝▻ Bangalore Call-girls in Women Seeking Men 🔝Bangalore🔝 Esc...
➥🔝 7737669865 🔝▻ Bangalore Call-girls in Women Seeking Men  🔝Bangalore🔝   Esc...➥🔝 7737669865 🔝▻ Bangalore Call-girls in Women Seeking Men  🔝Bangalore🔝   Esc...
➥🔝 7737669865 🔝▻ Bangalore Call-girls in Women Seeking Men 🔝Bangalore🔝 Esc...amitlee9823
 
Probability Grade 10 Third Quarter Lessons
Probability Grade 10 Third Quarter LessonsProbability Grade 10 Third Quarter Lessons
Probability Grade 10 Third Quarter LessonsJoseMangaJr1
 
BDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort Service
BDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort ServiceBDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort Service
BDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort ServiceDelhi Call girls
 
Generative AI on Enterprise Cloud with NiFi and Milvus
Generative AI on Enterprise Cloud with NiFi and MilvusGenerative AI on Enterprise Cloud with NiFi and Milvus
Generative AI on Enterprise Cloud with NiFi and MilvusTimothy Spann
 
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...amitlee9823
 

Recently uploaded (20)

(NEHA) Call Girls Katra Call Now 8617697112 Katra Escorts 24x7
(NEHA) Call Girls Katra Call Now 8617697112 Katra Escorts 24x7(NEHA) Call Girls Katra Call Now 8617697112 Katra Escorts 24x7
(NEHA) Call Girls Katra Call Now 8617697112 Katra Escorts 24x7
 
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
 
Week-01-2.ppt BBB human Computer interaction
Week-01-2.ppt BBB human Computer interactionWeek-01-2.ppt BBB human Computer interaction
Week-01-2.ppt BBB human Computer interaction
 
Al Barsha Escorts $#$ O565212860 $#$ Escort Service In Al Barsha
Al Barsha Escorts $#$ O565212860 $#$ Escort Service In Al BarshaAl Barsha Escorts $#$ O565212860 $#$ Escort Service In Al Barsha
Al Barsha Escorts $#$ O565212860 $#$ Escort Service In Al Barsha
 
Mg Road Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Banga...
Mg Road Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Banga...Mg Road Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Banga...
Mg Road Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Banga...
 
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
 
➥🔝 7737669865 🔝▻ malwa Call-girls in Women Seeking Men 🔝malwa🔝 Escorts Ser...
➥🔝 7737669865 🔝▻ malwa Call-girls in Women Seeking Men  🔝malwa🔝   Escorts Ser...➥🔝 7737669865 🔝▻ malwa Call-girls in Women Seeking Men  🔝malwa🔝   Escorts Ser...
➥🔝 7737669865 🔝▻ malwa Call-girls in Women Seeking Men 🔝malwa🔝 Escorts Ser...
 
Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...
Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...
Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...
 
BigBuy dropshipping via API with DroFx.pptx
BigBuy dropshipping via API with DroFx.pptxBigBuy dropshipping via API with DroFx.pptx
BigBuy dropshipping via API with DroFx.pptx
 
Call Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Call Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service BangaloreCall Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Call Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
 
Halmar dropshipping via API with DroFx
Halmar  dropshipping  via API with DroFxHalmar  dropshipping  via API with DroFx
Halmar dropshipping via API with DroFx
 
➥🔝 7737669865 🔝▻ Bangalore Call-girls in Women Seeking Men 🔝Bangalore🔝 Esc...
➥🔝 7737669865 🔝▻ Bangalore Call-girls in Women Seeking Men  🔝Bangalore🔝   Esc...➥🔝 7737669865 🔝▻ Bangalore Call-girls in Women Seeking Men  🔝Bangalore🔝   Esc...
➥🔝 7737669865 🔝▻ Bangalore Call-girls in Women Seeking Men 🔝Bangalore🔝 Esc...
 
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Probability Grade 10 Third Quarter Lessons
Probability Grade 10 Third Quarter LessonsProbability Grade 10 Third Quarter Lessons
Probability Grade 10 Third Quarter Lessons
 
BDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort Service
BDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort ServiceBDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort Service
BDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort Service
 
Abortion pills in Doha Qatar (+966572737505 ! Get Cytotec
Abortion pills in Doha Qatar (+966572737505 ! Get CytotecAbortion pills in Doha Qatar (+966572737505 ! Get Cytotec
Abortion pills in Doha Qatar (+966572737505 ! Get Cytotec
 
Sampling (random) method and Non random.ppt
Sampling (random) method and Non random.pptSampling (random) method and Non random.ppt
Sampling (random) method and Non random.ppt
 
Generative AI on Enterprise Cloud with NiFi and Milvus
Generative AI on Enterprise Cloud with NiFi and MilvusGenerative AI on Enterprise Cloud with NiFi and Milvus
Generative AI on Enterprise Cloud with NiFi and Milvus
 
Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts ServiceCall Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
 
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
 

M|18 How MariaDB Server Scales with Spider

  • 1. How MariaDB Server Scales with Spider Jacob Mathew Senior Software Engineer, MariaDB Kentoku Shiba Author of Spider, Spiral Arms
  • 2. Spider ● What is Spider? ● Why should I use Spider? ● Sharding with Spider. ● Redundant Data. ● Data Consistency. ● Getting Started with Spider. ● What’s New in Spider? ● What’s Ahead for Spider?
  • 4. What is Spider? ● Storage engine plugin. ○ Spider doesn’t itself store data. ● Manage storage and retrieval of data stored using other storage engines. ● Sharding solution that stores data remotely on other servers. ● Partition tables using the Partition Engine. ● View the data as if it is local.
  • 5. Why Should I Use Spider?
  • 6. Why Should I Use Spider? ● Very large tables. ● Volume of data is growing. ● Lots of concurrent operations on the data. ● Few or no application code changes required.
  • 7. Why Should I Use Spider? ● Spider pushes down query information. ● Reduces amount of result data returned by data nodes. ● Parallel execution. ● Data consistency. SQL Client Data Node MariaDB Spider Node MariaDB table_a Data Node MariaDB table_a Data Node MariaDB table_a Data Node MariaDB table_a A-F G-L M-R S-Z
  • 9. Sharding with Spider 1. Receive a request. 2. Execute the request. a. Distribute SQL to data nodes. b. Receive and consolidate results from data nodes. 3. Send reply. SQL Client Data Node MariaDB Spider Node MariaDB table_a Data Node MariaDB table_a Data Node MariaDB table_a Data Node MariaDB table_a 1 3 2a 2b A-F G-L M-R S-Z
  • 10. Sharding with Spider ● Partition Engine ○ Supports all partitioning rules. ■ Range. ■ Key. ■ Hash. ■ List. ● CREATE SERVER ○ Comment for connection details. ○ Useful when each data node has different connection information.
  • 11. Sharding with Spider Spider cluster pushdown ● Engine condition. ● Index hints. ● Join. ● Aggregation. ● Direct update/delete.
  • 13. Redundant Data ● Full copy of the table on each data node. ● For SELECTs, Spider performs load balancing and chooses the data node. ● INSERTs, UPDATEs and DELETEs are parallelized to the data nodes. SQL Client Data Node MariaDB Spider Node MariaDB table_a Data Node MariaDB table_a Data Node MariaDB table_a Data Node MariaDB table_a A-Z A-Z A-Z A-Z
  • 15. Data Consistency ● Data needs to be written to multiple data nodes. ● Spider uses 2-phase commit. SQL Client Data Node MariaDB Spider Node MariaDB table_a Data Node MariaDB table_a Data Node MariaDB table_a Data Node MariaDB table_a A-F G-L M-R S-Z
  • 17. Getting Started with Spider 1. Get MariaDB. a. Spider is bundled with MariaDB. 2. Install the database. a. mysql_install_db 3. Start MariaDB server. 4. Install Spider engine. a. mysql < scripts/install_spider.sql 5. CREATE TABLE with options to use Spider.
  • 18. Getting Started with Spider On the Data Node: CREATE TABLE r_table_a (c1 INT PRIMARY KEY, c2 VARCHAR(100)) ENGINE=innodb DEFAULT CHARSET=UTF8;
  • 19. Getting Started with Spider On the Spider Node: CREATE TABLE table_a (c1 INT PRIMARY KEY, c2 VARCHAR(100)) ENGINE=spider DEFAULT CHARSET=UTF8 COMMENT ‘table "r_table_a", database "test", port "3306", host "<host name of data node>", user "<user name for data node>", password "<password for user>"’;
  • 20. Getting Started with Spider Omit column definitions on the Spider Node: CREATE TABLE table_a ENGINE=spider DEFAULT CHARSET=UTF8 COMMENT ‘table "r_table_a", database "test", port "3306", host "<host name of data node>", user "<user name for data node>", password "<password for user>"’;
  • 21. Getting Started with Spider CREATE TABLE table_a (c1 INT PRIMARY KEY, c2 VARCHAR(100)) ENGINE=spider DEFAULT CHARSET=UTF8 COMMENT ‘table "r_table_a", database "test", port "3306", user "<user name for data node>", password "<password for user>"’ PARTITION BY RANGE(c1) (PARTITION p1 VALUES LESS THAN (100000) COMMENT 'host "h1"', PARTITION p2 VALUES LESS THAN (200000) COMMENT 'host "h2"', PARTITION p3 VALUES LESS THAN (300000) COMMENT 'host "h3"', PARTITION p4 VALUES LESS THAN MAXVALUE COMMENT 'host "h4"'); Sharding on the Spider Node
  • 22. Getting Started with Spider CREATE SERVER server_1 FOREIGN DATA WRAPPER mysql OPTIONS HOST 'host name of data node', DATABASE 'test', USER 'user name for data node', PASSWORD 'password for data node', PORT 3306; CREATE TABLE table_a (c1 INT PRIMARY KEY, c2 VARCHAR(100)) ENGINE=spider DEFAULT CHARSET=UTF8 COMMENT ‘table "r_table_a", server "server_1"’; CREATE SERVER for connection information on the Spider Node
  • 23. Getting Started with Spider CREATE SERVER server_1 FOREIGN DATA WRAPPER mysql OPTIONS HOST 'host name of data node 1', DATABASE 'test', USER 'user name for data node 1', PASSWORD 'password for data node 1', PORT 3306; CREATE SERVER server_2 FOREIGN DATA WRAPPER mysql OPTIONS HOST 'host name of data node 2', DATABASE 'test', USER 'user name for data node 2', PASSWORD 'password for data node', PORT 3306; CREATE TABLE table_a (c1 INT PRIMARY KEY, c2 VARCHAR(100)) ENGINE=spider DEFAULT CHARSET=UTF8 COMMENT ‘table "r_table_a"’ PARTITION BY RANGE(c1) (PARTITION p1 VALUES LESS THAN (200000) COMMENT 'server "server_1"', PARTITION p2 VALUES LESS THAN MAXVALUE COMMENT 'server "server_2"'); CREATE SERVER for shard connection information on the Spider Node
  • 24. What’s New in Spider?
  • 25. What’s New in Spider? ● Support in the Partition Engine for additional features. ○ Engine Condition pushdown pushes down to the data nodes. ○ Multi range read. ○ Full Text search. ○ Auto-Increment data type. ● Direct aggregation of min, max, avg, count, sum ● Direct update/delete. ● Direct join. ● Options to log ○ Result errors. ○ Stored Procedure Queries. ● Contributions from Tencent.
  • 26. What’s New in Spider? Direct Aggregation ● Aggregation is pushed down to the data nodes: min, max, avg, count, sum. ● Aggregation results are returned by the data nodes. SQL Client Data Node MariaDB Spider Node MariaDB table_a Data Node MariaDB table_a Data Node MariaDB table_a Data Node MariaDB table_a A-F G-L M-R S-Z
  • 27. What’s New in Spider? Direct Update/Delete ● Entire update/delete operation is pushed down to the data nodes. ● Update/delete executed as a single cluster operation instead of one row at a time. SQL Client Data Node MariaDB Spider Node MariaDB table_a Data Node MariaDB table_a Data Node MariaDB table_a Data Node MariaDB table_a A-F G-L M-R S-Z
  • 28. What’s New in Spider? Direct Join ● Join is pushed down to the data nodes. ● Join results are consolidated by the Spider node. SQL Client Data Node MariaDB Spider Node MariaDB table_a Data Node MariaDB table_a Data Node MariaDB table_a Data Node MariaDB table_a A-F G-L M-R S-Z
  • 29. What’s New in Spider? ● Force pushdown of index hints. ● Optimization for LIMIT. ● Added max connection pool size feature to Spider. ● Bug fixes. Contributions from Tencent
  • 31. What’s Ahead for Spider? ● Vertical Partition (VP) Engine. ○ Multi-dimensional sharding. ○ VP merges multiple child tables into a single view. ○ VP efficiently chooses child tables for each query.
  • 32. Vertical Partitioning with VP SQL Client Spider / VP Node MariaDB table_a table_a_ca table_a_cb Partition by column col_b Partition by column col_a CREATE TABLE table_a_ca ( col_a int,, col_b date, col_c int, primary key(col_a)) ENGINE=innodb partition by ... CREATE TABLE table_a_cb ( col_a int, col_b date, col_c int, key idx1(col_a), key idx2(col_b)) ENGINE=innodb partition by ...
  • 33. Vertical Partitioning with VP SQL Client Spider / VP Node MariaDB table_a table_a_ca table_a_cb Partition by column col_b Partition by column col_a SELECT … FROM table_a WHERE col_a = 1
  • 34. Vertical Partitioning with VP SQL Client Spider / VP Node MariaDB table_a table_a_ca table_a_cb Partition by column col_b Partition by column col_a SELECT … FROM table_a WHERE col_b = ‘2016-01-01’
  • 35. Vertical Partitioning with VP ● When sharding Spider tables which have different partitioning rules for VP child tables, VP chooses sharded Spider tables efficiently.
  • 36. Vertical Partitioning with VP SELECT … FROM table_a WHERE col_a = 1 SQL Client Spider / VP Node MariaDB Partition by column col_a Data Node MariaDB table_a_cb A-L Data Node MariaDB table_a_cb M-Z Data Node MariaDB table_a_ca A-L Data Node MariaDB table_a_ca M-Z table_a table_a_ca table_a_cb Partition by column col_b
  • 37. Vertical Partitioning with VP SELECT … FROM table_a WHERE col_b = ‘2016-01-01’ SQL Client Spider / VP Node MariaDB Partition by column col_a Data Node MariaDB table_a_cb A-L Data Node MariaDB table_a_cb M-Z Data Node MariaDB table_a_ca A-L Data Node MariaDB table_a_ca M-Z table_a table_a_ca table_a_cb Partition by column col_b