Partitionieren über Rechnergrenzen hinweglinsenraum.de/documents/doag-spider.pdf · 2011-11-24 ·...

41
¨ Uberblick Plugin Konzept Spider Partitionieren ¨ uber Rechnergrenzen hinweg Erkan Yanar [email protected] Blog: linsenraum.de/erkules Xing: www.xing.com/profile/Erkan Yanar 24. November 2011 Erkan Yanar : Partitionieren ¨ uber Rechnergrenzen hinweg

Transcript of Partitionieren über Rechnergrenzen hinweglinsenraum.de/documents/doag-spider.pdf · 2011-11-24 ·...

Page 1: Partitionieren über Rechnergrenzen hinweglinsenraum.de/documents/doag-spider.pdf · 2011-11-24 · Uberblick Plugin Konzept Spider Was tun wenn: Daten ubersteigen die I/O-Kapazit

Uberblick Plugin Konzept Spider

Partitionieren uber Rechnergrenzen hinweg

Erkan [email protected]: linsenraum.de/erkules

Xing: www.xing.com/profile/Erkan Yanar

24. November 2011

Erkan Yanar : Partitionieren uber Rechnergrenzen hinweg

Page 2: Partitionieren über Rechnergrenzen hinweglinsenraum.de/documents/doag-spider.pdf · 2011-11-24 · Uberblick Plugin Konzept Spider Was tun wenn: Daten ubersteigen die I/O-Kapazit

Uberblick Plugin Konzept Spider

Was tun wenn:

Daten ubersteigen die I/O-Kapazitat eines Rechners

Anfragen ubersteigen die CPU-Kapazitat eines Rechners

Erkan Yanar : Partitionieren uber Rechnergrenzen hinweg

Page 3: Partitionieren über Rechnergrenzen hinweglinsenraum.de/documents/doag-spider.pdf · 2011-11-24 · Uberblick Plugin Konzept Spider Was tun wenn: Daten ubersteigen die I/O-Kapazit

Uberblick Plugin Konzept Spider

Was tun wenn:

Daten ubersteigen die I/O-Kapazitat eines Rechners

Anfragen ubersteigen die CPU-Kapazitat eines Rechners

Erkan Yanar : Partitionieren uber Rechnergrenzen hinweg

Page 4: Partitionieren über Rechnergrenzen hinweglinsenraum.de/documents/doag-spider.pdf · 2011-11-24 · Uberblick Plugin Konzept Spider Was tun wenn: Daten ubersteigen die I/O-Kapazit

Uberblick Plugin Konzept Spider

Gangige Losung:

SHARDING Teilen der Daten

Erkan Yanar : Partitionieren uber Rechnergrenzen hinweg

Page 5: Partitionieren über Rechnergrenzen hinweglinsenraum.de/documents/doag-spider.pdf · 2011-11-24 · Uberblick Plugin Konzept Spider Was tun wenn: Daten ubersteigen die I/O-Kapazit

Uberblick Plugin Konzept Spider

Reflex:Sharding

Daten auf mehrere Rechner

Disjunkter Datensatz

Rechner fur einen Teil derAnfragen/Daten verantwortlich

Applikation anpassen

Keine Joins

Keine Transaktionen uberShards

Erkan Yanar : Partitionieren uber Rechnergrenzen hinweg

Page 6: Partitionieren über Rechnergrenzen hinweglinsenraum.de/documents/doag-spider.pdf · 2011-11-24 · Uberblick Plugin Konzept Spider Was tun wenn: Daten ubersteigen die I/O-Kapazit

Uberblick Plugin Konzept Spider

Neue Losung: Spider

Kentoku Shiba

Storage Engine

Partitionierung und Federated(X)

Nicht Bestandteil von MySQL (und Branches)

Erkan Yanar : Partitionieren uber Rechnergrenzen hinweg

Page 7: Partitionieren über Rechnergrenzen hinweglinsenraum.de/documents/doag-spider.pdf · 2011-11-24 · Uberblick Plugin Konzept Spider Was tun wenn: Daten ubersteigen die I/O-Kapazit

Uberblick Plugin Konzept Spider

Neue Losung: Spider

Kentoku Shiba

Storage Engine

Partitionierung und Federated(X)

Nicht Bestandteil von MySQL (und Branches)

Erkan Yanar : Partitionieren uber Rechnergrenzen hinweg

Page 8: Partitionieren über Rechnergrenzen hinweglinsenraum.de/documents/doag-spider.pdf · 2011-11-24 · Uberblick Plugin Konzept Spider Was tun wenn: Daten ubersteigen die I/O-Kapazit

Uberblick Plugin Konzept Spider

STORAGE ENGINE PLUGIN

Partitionierung

RANGE

LIST

HASH

KEY

BILD VON BEIL

CREATE TABLE tbl a(col a int PRIMARY KEY,col b int) PARTITION BY RANGE( col a )( PARTITION p1 VALUES LESS THAN (1000) ,PARTITION p2 VALUES LESS THAN (2000) ,

PARTITION p3 VALUES LESS THAN (MAXVALUE) );

Erkan Yanar : Partitionieren uber Rechnergrenzen hinweg

Page 9: Partitionieren über Rechnergrenzen hinweglinsenraum.de/documents/doag-spider.pdf · 2011-11-24 · Uberblick Plugin Konzept Spider Was tun wenn: Daten ubersteigen die I/O-Kapazit

Uberblick Plugin Konzept Spider

STORAGE ENGINE PLUGIN

CREATE TABLE tbl a(col a int,col b int,PRIMARY KEY(col a))ENGINE = FEDERATEDCONNECTION

’mysql://ich:[email protected]/db/tbl a’;

Federated(X)

Erkan Yanar : Partitionieren uber Rechnergrenzen hinweg

Page 10: Partitionieren über Rechnergrenzen hinweglinsenraum.de/documents/doag-spider.pdf · 2011-11-24 · Uberblick Plugin Konzept Spider Was tun wenn: Daten ubersteigen die I/O-Kapazit

Uberblick Plugin Konzept Spider

Also: Spider

Kentoku Shiba

Storage Engine

Partitionierung und Federated(X)

Nicht Bestandteil von MySQL (und Branches)

Erkan Yanar : Partitionieren uber Rechnergrenzen hinweg

Page 11: Partitionieren über Rechnergrenzen hinweglinsenraum.de/documents/doag-spider.pdf · 2011-11-24 · Uberblick Plugin Konzept Spider Was tun wenn: Daten ubersteigen die I/O-Kapazit

Uberblick Plugin Konzept Spider

Was haben wir nun von Spider?

Joins verschiedener Knoten

Transparent zur Applikation

XA-Transaktionen

Erkan Yanar : Partitionieren uber Rechnergrenzen hinweg

Page 12: Partitionieren über Rechnergrenzen hinweglinsenraum.de/documents/doag-spider.pdf · 2011-11-24 · Uberblick Plugin Konzept Spider Was tun wenn: Daten ubersteigen die I/O-Kapazit

Uberblick Plugin Konzept Spider

ABER

Erkan Yanar : Partitionieren uber Rechnergrenzen hinweg

Page 13: Partitionieren über Rechnergrenzen hinweglinsenraum.de/documents/doag-spider.pdf · 2011-11-24 · Uberblick Plugin Konzept Spider Was tun wenn: Daten ubersteigen die I/O-Kapazit

Uberblick Plugin Konzept Spider

Plugins?!

Spider ist ein MySQL Plugin

Erkan Yanar : Partitionieren uber Rechnergrenzen hinweg

Page 14: Partitionieren über Rechnergrenzen hinweglinsenraum.de/documents/doag-spider.pdf · 2011-11-24 · Uberblick Plugin Konzept Spider Was tun wenn: Daten ubersteigen die I/O-Kapazit

Uberblick Plugin Konzept Spider

Break it

Plugins konnen zurLaufzeit geladen werden

Kein Neukompilieren

Kein Neustart

Erkan Yanar : Partitionieren uber Rechnergrenzen hinweg

Page 15: Partitionieren über Rechnergrenzen hinweglinsenraum.de/documents/doag-spider.pdf · 2011-11-24 · Uberblick Plugin Konzept Spider Was tun wenn: Daten ubersteigen die I/O-Kapazit

Uberblick Plugin Konzept Spider

PluginTypen

PluginTypen (MySQL5.5/Maria 5.2)

Daemon

Information Schema

Full Text Parser

StorageEngine

Authentication

Replication

Audit

Services

Erkan Yanar : Partitionieren uber Rechnergrenzen hinweg

Page 16: Partitionieren über Rechnergrenzen hinweglinsenraum.de/documents/doag-spider.pdf · 2011-11-24 · Uberblick Plugin Konzept Spider Was tun wenn: Daten ubersteigen die I/O-Kapazit

Uberblick Plugin Konzept Spider

PluginTypen

PluginTypen (MySQL5.5/Maria 5.2)

Daemon

Information Schema

Full Text Parser

StorageEngine

Authentication

Replication

Audit

Services

Erkan Yanar : Partitionieren uber Rechnergrenzen hinweg

Page 17: Partitionieren über Rechnergrenzen hinweglinsenraum.de/documents/doag-spider.pdf · 2011-11-24 · Uberblick Plugin Konzept Spider Was tun wenn: Daten ubersteigen die I/O-Kapazit

Uberblick Plugin Konzept Spider

Plugins konnen auch zur Laufzeit eingebunden werden

INSTALL PLUGIN pluginname SONAME ’plugin.so’

UNINSTALL PLUGIN pluginname

Erkan Yanar : Partitionieren uber Rechnergrenzen hinweg

Page 18: Partitionieren über Rechnergrenzen hinweglinsenraum.de/documents/doag-spider.pdf · 2011-11-24 · Uberblick Plugin Konzept Spider Was tun wenn: Daten ubersteigen die I/O-Kapazit

Uberblick Plugin Konzept Spider

Wo waren wir stehen geblieben? Spider!

Kentoku Shiba

Storage Engine

Partitionierung und Federated(X)

Nicht Bestandteil von MySQL (und Branches)

Erkan Yanar : Partitionieren uber Rechnergrenzen hinweg

Page 19: Partitionieren über Rechnergrenzen hinweglinsenraum.de/documents/doag-spider.pdf · 2011-11-24 · Uberblick Plugin Konzept Spider Was tun wenn: Daten ubersteigen die I/O-Kapazit

Uberblick Plugin Konzept Spider

mysql> INSTALL PLUGIN spider SONAME ’ha_spider.so’;

..

mysql> SELECT Engine,Transactions,XA,savepoints

FROM INFORMATION_SCHEMA.ENGINES;

+--------------------+--------------+------+------------+

| Engine | Transactions | XA | savepoints |

+--------------------+--------------+------+------------+

| SPIDER | YES | YES | NO |

| InnoDB | YES | YES | YES |

| MRG_MYISAM | NO | NO | NO |

| PERFORMANCE_SCHEMA | NO | NO | NO |

| CSV | NO | NO | NO |

| MEMORY | NO | NO | NO |

| MyISAM | NO | NO | NO |

+--------------------+--------------+------+------------+

7 rows in set (0.00 sec)

Erkan Yanar : Partitionieren uber Rechnergrenzen hinweg

Page 20: Partitionieren über Rechnergrenzen hinweglinsenraum.de/documents/doag-spider.pdf · 2011-11-24 · Uberblick Plugin Konzept Spider Was tun wenn: Daten ubersteigen die I/O-Kapazit

Uberblick Plugin Konzept Spider

Syntax

CREATE TABLE tbl_a(

col_a int,

col_b int,

PRIMARY KEY(col_a)

)

ENGINE = SPIDER

CONNECTION ’host "192.168.178.25",

table "tbl_a", user "ich", password "auch"’ ;

Erkan Yanar : Partitionieren uber Rechnergrenzen hinweg

Page 21: Partitionieren über Rechnergrenzen hinweglinsenraum.de/documents/doag-spider.pdf · 2011-11-24 · Uberblick Plugin Konzept Spider Was tun wenn: Daten ubersteigen die I/O-Kapazit

Uberblick Plugin Konzept Spider

Syntax

CREATE TABLE tbl_a(

col_a int,

col_b int,

PRIMARY KEY(col_a)

) ENGINE = SPIDER

CONNECTION ’ table "tbl_a", user "ich", password "auch" ’

PARTITION BY RANGE( col_a )

(

PARTITION p1 VALUES LESS THAN (1000)

COMMENT ’host "192.168.178.25"’,

PARTITION p2 VALUES LESS THAN (2000)

COMMENT ’host "192.168.178.26"’,

PARTITION p3 VALUES LESS THAN (MAXVALUE)

COMMENT ’host "192.168.178.27", port "3307"’

);

Erkan Yanar : Partitionieren uber Rechnergrenzen hinweg

Page 22: Partitionieren über Rechnergrenzen hinweglinsenraum.de/documents/doag-spider.pdf · 2011-11-24 · Uberblick Plugin Konzept Spider Was tun wenn: Daten ubersteigen die I/O-Kapazit

Uberblick Plugin Konzept Spider

Syntax

Optionen (Auszug)

port

database

default file

host

password

read only mode

socket

user

table

Erkan Yanar : Partitionieren uber Rechnergrenzen hinweg

Page 23: Partitionieren über Rechnergrenzen hinweglinsenraum.de/documents/doag-spider.pdf · 2011-11-24 · Uberblick Plugin Konzept Spider Was tun wenn: Daten ubersteigen die I/O-Kapazit

Uberblick Plugin Konzept Spider

Beispiele

Beispiele

Erkan Yanar : Partitionieren uber Rechnergrenzen hinweg

Page 24: Partitionieren über Rechnergrenzen hinweglinsenraum.de/documents/doag-spider.pdf · 2011-11-24 · Uberblick Plugin Konzept Spider Was tun wenn: Daten ubersteigen die I/O-Kapazit

Uberblick Plugin Konzept Spider

Beispiele

Transparenter Zugriff auf nicht lokale Tabellen

Engine Condition Pushdown

Engine Condition Pushdown

Erkan Yanar : Partitionieren uber Rechnergrenzen hinweg

Page 25: Partitionieren über Rechnergrenzen hinweglinsenraum.de/documents/doag-spider.pdf · 2011-11-24 · Uberblick Plugin Konzept Spider Was tun wenn: Daten ubersteigen die I/O-Kapazit

Uberblick Plugin Konzept Spider

Beispiele

Transparenter Zugriff auf nicht lokale Tabellen

Engine Condition Pushdown

Engine Condition Pushdown

Erkan Yanar : Partitionieren uber Rechnergrenzen hinweg

Page 26: Partitionieren über Rechnergrenzen hinweglinsenraum.de/documents/doag-spider.pdf · 2011-11-24 · Uberblick Plugin Konzept Spider Was tun wenn: Daten ubersteigen die I/O-Kapazit

Uberblick Plugin Konzept Spider

Beispiele

Transparenter Zugriff auf nicht lokale Tabellen

Engine Condition Pushdown

Engine Condition Pushdown

Erkan Yanar : Partitionieren uber Rechnergrenzen hinweg

Page 27: Partitionieren über Rechnergrenzen hinweglinsenraum.de/documents/doag-spider.pdf · 2011-11-24 · Uberblick Plugin Konzept Spider Was tun wenn: Daten ubersteigen die I/O-Kapazit

Uberblick Plugin Konzept Spider

Beispiele

Transparentes Sharding

Erkan Yanar : Partitionieren uber Rechnergrenzen hinweg

Page 28: Partitionieren über Rechnergrenzen hinweglinsenraum.de/documents/doag-spider.pdf · 2011-11-24 · Uberblick Plugin Konzept Spider Was tun wenn: Daten ubersteigen die I/O-Kapazit

Uberblick Plugin Konzept Spider

Beispiele

Transparentes Sharding

Erkan Yanar : Partitionieren uber Rechnergrenzen hinweg

Page 29: Partitionieren über Rechnergrenzen hinweglinsenraum.de/documents/doag-spider.pdf · 2011-11-24 · Uberblick Plugin Konzept Spider Was tun wenn: Daten ubersteigen die I/O-Kapazit

Uberblick Plugin Konzept Spider

Beispiele

transparentes Sharding HA

Erkan Yanar : Partitionieren uber Rechnergrenzen hinweg

Page 30: Partitionieren über Rechnergrenzen hinweglinsenraum.de/documents/doag-spider.pdf · 2011-11-24 · Uberblick Plugin Konzept Spider Was tun wenn: Daten ubersteigen die I/O-Kapazit

Uberblick Plugin Konzept Spider

Beispiele

Parallele Replikation

Erkan Yanar : Partitionieren uber Rechnergrenzen hinweg

Page 31: Partitionieren über Rechnergrenzen hinweglinsenraum.de/documents/doag-spider.pdf · 2011-11-24 · Uberblick Plugin Konzept Spider Was tun wenn: Daten ubersteigen die I/O-Kapazit

Uberblick Plugin Konzept Spider

Beispiele

Parallele Replikation

MySQL Repl.

Single Threaded

Serialisiert

Spider parallelisiert

Erkan Yanar : Partitionieren uber Rechnergrenzen hinweg

Page 32: Partitionieren über Rechnergrenzen hinweglinsenraum.de/documents/doag-spider.pdf · 2011-11-24 · Uberblick Plugin Konzept Spider Was tun wenn: Daten ubersteigen die I/O-Kapazit

Uberblick Plugin Konzept Spider

Beispiele

Synchrone Replikation

MySQL Replikation selbst ist a/semi-synchron.Ein Trigger ist synchron.

Erkan Yanar : Partitionieren uber Rechnergrenzen hinweg

Page 33: Partitionieren über Rechnergrenzen hinweglinsenraum.de/documents/doag-spider.pdf · 2011-11-24 · Uberblick Plugin Konzept Spider Was tun wenn: Daten ubersteigen die I/O-Kapazit

Uberblick Plugin Konzept Spider

Beispiele

Kaskadierte Partitionierung

MySQL kann Partition/SubpartitionLIST,RANGE:[HASH,KEY] → LIST,RANGE:[HASH,KEY]

Erkan Yanar : Partitionieren uber Rechnergrenzen hinweg

Page 34: Partitionieren über Rechnergrenzen hinweglinsenraum.de/documents/doag-spider.pdf · 2011-11-24 · Uberblick Plugin Konzept Spider Was tun wenn: Daten ubersteigen die I/O-Kapazit

Uberblick Plugin Konzept Spider

Beispiele

Idee DWH

read only

packed MyISAM/Aria oder PBXT

Via Spider partitionieren :)

Goodie?

QCache

Erkan Yanar : Partitionieren uber Rechnergrenzen hinweg

Page 35: Partitionieren über Rechnergrenzen hinweglinsenraum.de/documents/doag-spider.pdf · 2011-11-24 · Uberblick Plugin Konzept Spider Was tun wenn: Daten ubersteigen die I/O-Kapazit

Uberblick Plugin Konzept Spider

Beispiele

udf

Spider bringt eigene Funktionen mit

Erkan Yanar : Partitionieren uber Rechnergrenzen hinweg

Page 36: Partitionieren über Rechnergrenzen hinweglinsenraum.de/documents/doag-spider.pdf · 2011-11-24 · Uberblick Plugin Konzept Spider Was tun wenn: Daten ubersteigen die I/O-Kapazit

Uberblick Plugin Konzept Spider

Beispiele

mysql> select * from mysql.func;

+------------------------------+-----+--------------+-----------+

| name | ret | dl | type |

+------------------------------+-----+--------------+-----------+

| spider_direct_sql | 2 | ha_spider.so | function |

| spider_bg_direct_sql | 2 | ha_spider.so | aggregate |

| spider_ping_table | 2 | ha_spider.so | function |

| spider_copy_tables | 2 | ha_spider.so | function |

| spider_flush_table_mon_cache | 2 | ha_spider.so | function |

+------------------------------+-----+--------------+-----------+

Erkan Yanar : Partitionieren uber Rechnergrenzen hinweg

Page 37: Partitionieren über Rechnergrenzen hinweglinsenraum.de/documents/doag-spider.pdf · 2011-11-24 · Uberblick Plugin Konzept Spider Was tun wenn: Daten ubersteigen die I/O-Kapazit

Uberblick Plugin Konzept Spider

Beispiele

mysql> do(spider_direct_sql

(’CREATE TABLE direct (id int PRIMARY KEY)’,

’’,

’database "spider_slave", host "10.10.10.4", user "user"’)

);

Erkan Yanar : Partitionieren uber Rechnergrenzen hinweg

Page 38: Partitionieren über Rechnergrenzen hinweglinsenraum.de/documents/doag-spider.pdf · 2011-11-24 · Uberblick Plugin Konzept Spider Was tun wenn: Daten ubersteigen die I/O-Kapazit

Uberblick Plugin Konzept Spider

Beispiele

HA

Keine Doku

Erkan Yanar : Partitionieren uber Rechnergrenzen hinweg

Page 39: Partitionieren über Rechnergrenzen hinweglinsenraum.de/documents/doag-spider.pdf · 2011-11-24 · Uberblick Plugin Konzept Spider Was tun wenn: Daten ubersteigen die I/O-Kapazit

Uberblick Plugin Konzept Spider

Beispiele

VP

Partitionieren von Spalten

ONLINE ALTER TABLE

. . .

Erkan Yanar : Partitionieren uber Rechnergrenzen hinweg

Page 40: Partitionieren über Rechnergrenzen hinweglinsenraum.de/documents/doag-spider.pdf · 2011-11-24 · Uberblick Plugin Konzept Spider Was tun wenn: Daten ubersteigen die I/O-Kapazit

Uberblick Plugin Konzept Spider

Beispiele

Conclusion

Transparentes Sharding

XA-Transaction

Condition Push Down

Limits der Partitionierung

Not widly testet

Not included

uvm.

Erkan Yanar : Partitionieren uber Rechnergrenzen hinweg

Page 41: Partitionieren über Rechnergrenzen hinweglinsenraum.de/documents/doag-spider.pdf · 2011-11-24 · Uberblick Plugin Konzept Spider Was tun wenn: Daten ubersteigen die I/O-Kapazit

Uberblick Plugin Konzept Spider

Beispiele

ENDE

Erkan Yanar : Partitionieren uber Rechnergrenzen hinweg