SlideShare a Scribd company logo
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  Fabric	
  
Sharding	
  &	
  High	
  Availability	
  for	
  MYSQL	
  
Mark	
  Swarbrick	
  
Principle	
  Presales	
  Consultant	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Safe	
  Harbor	
  Statement	
  
The	
  following	
  is	
  intended	
  to	
  outline	
  our	
  general	
  product	
  direcMon.	
  It	
  is	
  intended	
  for	
  
informaMon	
  purposes	
  only,	
  and	
  may	
  not	
  be	
  incorporated	
  into	
  any	
  contract.	
  It	
  is	
  not	
  a	
  
commitment	
  to	
  deliver	
  any	
  material,	
  code,	
  or	
  funcMonality,	
  and	
  should	
  not	
  be	
  relied	
  upon	
  
in	
  making	
  purchasing	
  decisions.	
  The	
  development,	
  release,	
  and	
  Mming	
  of	
  any	
  features	
  or	
  
funcMonality	
  described	
  for	
  Oracle’s	
  products	
  remains	
  at	
  the	
  sole	
  discreMon	
  of	
  Oracle.	
  
2	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Program	
  Agenda	
  
Requirements	
  for	
  Next	
  Gen	
  Services	
  
Simple,	
  transparent	
  High	
  Availability	
  
Delivering	
  SQL	
  &	
  ACID	
  at	
  scale	
  
Where	
  MySQL	
  Fabric	
  fits	
  	
  
1	
  
2	
  
3	
  
4	
  
3	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Program	
  Agenda	
  
Requirements	
  for	
  Next	
  Gen	
  Services	
  
Simple,	
  transparent	
  High	
  Availability	
  
Delivering	
  SQL	
  &	
  ACID	
  at	
  scale	
  
Where	
  MySQL	
  Fabric	
  fits	
  	
  
1	
  
2	
  
3	
  
4	
  
4	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Focus	
  on	
  driving	
  the	
  business	
  rather	
  than	
  on	
  infrastructure	
  
Business	
  PrioriMes	
  for	
  IT	
  
Deliver	
  new	
  
services	
  
Real-­‐Time	
  
Insight	
  from	
  
Data	
  
Simplify	
  
Architecture	
  
Fast	
  Time	
  to	
  
Market	
  
5	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
ApplicaMon	
  Requirements	
  
High	
  Availability	
   Scale	
  Data	
  &	
  User	
  Loads	
  
OLTP	
  &	
  AnalyMcs	
   ElasMc	
  
Responsive	
  &	
  Agile	
  
6	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  Fabric	
  
An	
  extensible	
  and	
  easy-­‐to-­‐
use	
  framework	
  for	
  
managing	
  a	
  farm	
  of	
  MySQL	
  
server	
  supporGng	
  high-­‐
availability	
  and	
  sharding	
  
7	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  Fabric	
  1.5	
  
•  High	
  Availability	
  
–  Server	
  monitoring	
  with	
  auto-­‐promoMon	
  and	
  
transparent	
  applicaMon	
  failover	
  
•  OpMonally	
  scale-­‐out	
  through	
  sharding	
  
–  ApplicaMon	
  provides	
  shard	
  key	
  
–  Range	
  or	
  Hash	
  
–  Tools	
  for	
  resharding	
  
–  Global	
  updates	
  &	
  tables	
  
•  Fabric-­‐aware	
  connectors	
  rather	
  than	
  
proxy:	
  Python,	
  Java,	
  PHP,	
  .NET,	
  C	
  (labs)	
  
–  Lower	
  latency,	
  boeleneck-­‐free	
  
•  Server	
  provisioning	
  using	
  OpenStack	
  etc.	
  
High	
  Availability	
  +	
  Sharding-­‐Based	
  Scale-­‐out	
  
MySQL	
  Fabric	
  
Connector	
  
ApplicaMon	
  
Read-­‐slaves	
  
mappings	
  
SQL	
  
HA	
  group	
  
Read-­‐slaves	
  
HA	
  group	
  
Connector	
  
ApplicaMon	
  
8	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Program	
  Agenda	
  
Requirements	
  for	
  Next	
  Gen	
  Services	
  
Simple,	
  transparent	
  High	
  Availability	
  
Delivering	
  SQL	
  &	
  ACID	
  at	
  scale	
  
Where	
  MySQL	
  Fabric	
  fits	
  	
  
1	
  
2	
  
3	
  
4	
  
9	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Layers	
  of	
  HA	
  
Redundant	
  Access	
  
to	
  Data	
  
Data	
  Redundancy	
  
Redundant	
  App	
  Servers	
  
RouGng	
  to	
  the	
  Data	
  
10	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
•  Asynchronous	
  
– MySQL	
  Default	
  
– In	
  parallel:	
  Master	
  acks	
  
to	
  app	
  and	
  sends	
  
transacMon	
  to	
  slave	
  
•  Fast	
  
•  Risk	
  of	
  lost	
  changes	
  if	
  
master	
  dies	
  
•  Synchronous	
  
– Only	
  available	
  with	
  
MySQL	
  Cluster	
  
– Serially:	
  Master	
  waits	
  
for	
  change	
  to	
  be	
  
applied	
  on	
  all	
  slaves	
  
before	
  ack	
  to	
  app	
  
•  Higher	
  latency	
  
•  If	
  AcMve/AcMve,	
  best	
  
suited	
  to	
  small	
  
transacMons	
  
•  Lossless	
  
•  Semi-­‐Synchronous	
  
– MySQL	
  5.5+	
  -­‐	
  Enhanced	
  
in	
  MySQL	
  5.7	
  
– Serially:	
  Master	
  waits	
  
for	
  change	
  to	
  be	
  
received	
  by	
  slave	
  then	
  
In	
  parallel	
  ack	
  to	
  app	
  
and	
  apply	
  changes	
  on	
  
slave	
  
•  Intermediate	
  latency	
  
•  Lossless	
  (MySQL	
  5.7)	
  
	
  
Asynchronous	
  vs.	
  Synchronous	
  ReplicaMon	
  
11	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  Fabric	
  Framework	
  (HA)	
  
All	
  Data	
  
Primary	
   Secondary	
  
Extra	
  Read	
  Replicas	
  MySQL	
  Fabric	
  
Controller	
  
SQL	
  Queries	
  
State	
  &	
  
RouGng	
  Info	
  
HA	
  Group	
  
CoordinaGon	
  
and	
  Control	
  
12	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  ReplicaMon	
  &	
  MySQL	
  Fabric	
  HA	
  
•  MySQL	
  ReplicaMon	
  is	
  the	
  iniMal	
  implementaMon	
  used	
  in	
  HA	
  Groups	
  
– PRIMARY	
  =	
  ReplicaMon	
  Master	
  &	
  receives	
  all	
  writes	
  
– SECONDARY	
  =	
  ReplicaMon	
  Slave	
  &	
  receives	
  share	
  of	
  reads	
  
•  Failover	
  
– MySQL	
  Fabric	
  detects	
  failure	
  of	
  PRIMARY/Master	
  
– Selects	
  a	
  SECONDARY/Slave	
  and	
  promotes	
  it	
  
– Updates	
  State	
  Store	
  
– Updated	
  state	
  fetched	
  by	
  Fabric-­‐aware	
  connectors	
  
How	
  this	
  effects	
  failover	
  
13	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
High-­‐Availability	
  Group	
  Concept	
  
•  Abstract	
  Concept	
  
– Set	
  of	
  servers	
  
– Server	
  aeributes	
  
•  Connector	
  Aeributes	
  
– ConnecMon	
  informaMon	
  
– Mode:	
  read-­‐only,	
  read-­‐write,	
  ...	
  
– Weight:	
  distribute	
  load	
  
•  Management	
  Aeributes	
  
– State:	
  state/role	
  of	
  the	
  server	
  
	
  
State:	
   	
  Primary	
  
Mode:	
   	
  Read-­‐Write	
  
Host:	
   	
  server-­‐1.example.com	
  
14	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Create	
  HA	
  Groups	
  and	
  add	
  Servers	
  
•  Define	
  a	
  group	
  
mysqlfabric group create my_group
•  Add	
  servers	
  to	
  group	
  
mysqlfabric group add my_group server1.example.com
mysqlfabric group add my_group server2.example.com
15	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Create	
  HA	
  Groups	
  and	
  add	
  Servers	
  
•  Promote	
  one	
  server	
  to	
  be	
  primary
mysqlfabric group promote my_group
•  Tell	
  failure	
  detector	
  to	
  monitor	
  group
mysqlfabric group activate my_group
16	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Program	
  Agenda	
  
Requirements	
  for	
  Next	
  Gen	
  Services	
  
Simple,	
  transparent	
  High	
  Availability	
  
Delivering	
  SQL	
  &	
  ACID	
  at	
  scale	
  
Where	
  MySQL	
  Fabric	
  fits	
  	
  
1	
  
2	
  
3	
  
4	
  
17	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
The	
  Path	
  to	
  Scalability	
  
•  Scaling	
  on	
  dense,	
  mulM-­‐
core,	
  mulM-­‐thread	
  servers	
  
– 10s	
  -­‐	
  100GBs	
  RAM	
  
– SSDs	
  
•  Scale	
  across	
  cores	
  within	
  a	
  
single	
  instance	
  
•  You	
  can	
  get	
  a	
  long	
  way	
  
with	
  MySQL	
  5.6	
  &	
  5.7!	
  
Scaling-­‐Up	
  can	
  take	
  you	
  a	
  long	
  way	
  
18	
  
0	
  
2,000	
  
4,000	
  
6,000	
  
8,000	
  
10,000	
  
12,000	
  
14,000	
  
16,000	
  
18,000	
  
8	
   16	
   32	
   64	
   128	
   256	
   512	
   1,024	
  
TransacGons	
  per	
  Second	
  
ConnecGons	
  
MySQL	
  5.7:	
  Sysbench	
  OLTP	
  Read	
  Write	
  
MySQL	
  
5.7	
  
MySQL	
  
5.6	
  
MySQL	
  
5.5	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
•  Write	
  scalability	
  
– Can	
  handle	
  more	
  writes	
  
•  Large	
  data	
  set	
  
– Database	
  too	
  large	
  
– Does	
  not	
  fit	
  on	
  single	
  server	
  
•  Improved	
  performance	
  
– Smaller	
  index	
  size	
  
– Smaller	
  working	
  set	
  
– Improve	
  performance	
  (reads	
  and	
  
writes)	
  
Benefits	
  of	
  Sharding	
  
UID	
  10000-­‐20000	
   UID	
  20001-­‐40000	
  
19	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
•  Connector	
  API	
  Extensions	
  
– Support	
  TransacMons	
  
– Support	
  full	
  SQL	
  
•  Decision	
  logic	
  in	
  connector	
  
– Reducing	
  network	
  load	
  
•  Shard	
  MulMple	
  Tables	
  
– Using	
  same	
  key	
  
•  Global	
  Updates	
  
– Global	
  tables	
  
– Schema	
  updates	
  
•  Sharding	
  FuncMons	
  
– Range	
  
– (Consistent)	
  Hash	
  
•  Shard	
  OperaMons	
  
– Shard	
  move	
  
– Shard	
  split	
  
•  Server	
  Provisioning	
  
– Integrated	
  with	
  OpenStack	
  &	
  other	
  
frameworks	
  
MySQL	
  Fabric	
  Sharding	
  &	
  Provisioning	
  Features	
  
20	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Sharding	
  Architecture	
  
Shards	
  
MySQL	
  Fabric	
  Node	
  
ApplicaGon	
  
Global	
  
Group	
  
Global	
  Updates	
  
Shard	
  
Updates	
  
ReplicaGon	
  
21	
  
Connector	
  
Connector	
  
Connector	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  Fabric	
  (HA	
  +	
  Sharding)	
  
Global	
  Data	
  
Primary	
   Secondary	
  
Shard	
  1	
  
Primary	
   Secondary	
  
Shard	
  2	
  
Primary	
   Secondary	
  
MySQL	
  Fabric	
  
Controller	
  
SQL	
  Queries	
  
Server/Shard	
  State	
  &	
  
Mapping	
  
Global	
  Group	
   HA	
  Group	
  
CoordinaGon	
  and	
  
Control	
  
HA	
  Group	
  
Extra	
  Read	
  Replicas	
   Extra	
  Read	
  Replicas	
  
22	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
RouMng	
  TransacMons	
  
Shard	
  #2	
  
Shard	
  #1	
  
Shard	
  #3	
  
Executor	
  
App	
  Server	
  
Connector	
  
	
  
	
   Cache	
  
State	
  Store	
  
23	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
RouMng	
  TransacMons	
  
Shard	
  #2	
  
Shard	
  #1	
  
Shard	
  #3	
  
Executor	
  
App	
  Server	
  
Connector	
  
	
  
	
   Cache	
  
State	
  Store	
  
App	
  Server	
  
Connector	
  
	
  
	
   Cache	
  
24	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  Fabric:	
  Sharding	
  Setup	
  
•  Set	
  up	
  some	
  groups	
  
– my_global –	
  for	
  global	
  updates	
  
– my_group.N	
  –	
  for	
  the	
  shards	
  
– Add	
  servers	
  to	
  the	
  groups	
  
•  Create	
  a	
  shard	
  mapping	
  
– A	
  “distributed	
  database”	
  
– Mapping	
  keys	
  to	
  shards	
  
– Give	
  informaMon	
  on	
  what	
  tables	
  are	
  sharded	
  
•  Add	
  shards	
  
25	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  Fabric:	
  
•  Moving	
  a	
  shard	
  (id=5)	
  from	
  exisMng	
  group	
  to	
  another	
  (my_group.8)	
  
mysqlfabric sharding move 5 my_group.8
•  Splirng	
  a	
  shard	
  (id=5)	
  into	
  two	
  parts	
  with	
  new	
  half	
  stored	
  in	
  group	
  
my_group.6
mysqlfabric sharding split 5 my_group.6
Moving	
  and	
  Spling	
  Shards	
  
26	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
•  Indicate	
  tables	
  to	
  be	
  used	
  in	
  query	
  
– Property:	
  tables	
  
– Fabric	
  will	
  compute	
  map	
  
•  Indicate	
  read-­‐only	
  queries	
  
– Property:	
  mode	
  
•  Provide	
  sharding	
  key	
  
– Property:	
  key	
  
– Fabric	
  will	
  compute	
  shard	
  
•  Joins	
  within	
  the	
  shard	
  (or	
  with	
  
global	
  tables)	
  supported	
  
Connector	
  API:	
  Shard	
  Specific	
  Query	
  
conn.set_property(tables=["test.subscribers"], key=sub_no, mode=fabric.MODE_READONLY)
cur = conn.cursor()
cur.execute(
"SELECT first_name, last_name FROM subscribers WHERE sub_no = %s", (sub_no)
)
for row in cur:
print row
27	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
•  Set	
  global	
  scope	
  
– Property:	
  scope	
  
– Query	
  goes	
  to	
  global	
  	
  group	
  
Connector	
  API:	
  Global	
  Update	
  
conn.set_property(tables=[], scope='GLOBAL')
cur = conn.cursor()
cur.execute("ALTER TABLE test.subscribers ADD nickname VARCHAR(64)")
28	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
> mysqlfabric provider register
my_stack 

my_user my_password 

http://8.21.28.222:5000/v2.0/ 

--tenant=my_user_role 

--provider_type=OPENSTACK
> mysqlfabric machine create
my_stack 

--image id=8c92f0d9-79f1-4d95-
b398-86bda7342a2d 

--flavor name=m1.small
> mysqlfabric machine list my_stack
•  Fabric	
  creates	
  new	
  machines,	
  	
  &	
  
MySQL	
  Servers	
  
– IniMally	
  using	
  OpenStack	
  Nova	
  
– Other	
  frameworks	
  on	
  the	
  way	
  
(OpenStack	
  Trove,	
  AWS,…)	
  
•  Server	
  setup	
  
– Clones	
  slave	
  
– Sets	
  up	
  replicaMon	
  
– Performs	
  custom	
  operaMons	
  
29	
  
Server	
  Provisioning	
  –	
  OpenStack	
  Nova	
  IntegraMon	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Extensible	
  Architecture	
  
MySQL	
  Fabric	
  Node	
  
Connector	
  
Connector	
  
Connector	
  
MySQL	
  Fabric	
  
Framework	
  
AMQP?	
   MySQL	
   XML-­‐RPC	
  
Executor	
  
State	
  Store	
  
(persister)	
  
Shard	
  
HA	
  
Prov	
  
???	
  
MySQL	
  
Backing	
  
Store	
  
SQL	
  
30	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
•  Connector	
  API	
  Extensions	
  
–  Support	
  TransacMons	
  
–  Support	
  full	
  SQL	
  
•  Fabric-­‐Aware	
  Connectors	
  at	
  GA:	
  
–  PHP	
  +	
  Doctrine,	
  Python,	
  Java	
  +	
  Hibernate,	
  .NET,	
  
C	
  (pre-­‐GA)	
  	
  
•  Decision	
  logic	
  in	
  connector	
  
–  Reducing	
  latency	
  &network	
  load	
  
•  Load	
  Balancing	
  
–  Read-­‐Write	
  Split	
  
–  Distribute	
  transacMons	
  
•  Global	
  Updates	
  
–  Global	
  data	
  
–  Schema	
  updates	
  
•  Sharding	
  FuncMons	
  
–  Range	
  
–  (Consistent)	
  Hash	
  
•  Shard	
  OperaMons	
  
–  Shard	
  move	
  
–  Shard	
  split	
  
•  Server	
  Provisioning	
  
–  OpenStack	
  IntegraMon	
  (&	
  other	
  frameworks)	
  
MySQL	
  Fabric:	
  Goals	
  &	
  Features	
  
31	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
•  RouMng	
  is	
  dependent	
  on	
  Fabric-­‐aware	
  
connectors	
  
–  Currently	
  Java	
  (+	
  Hibernate),	
  PHP	
  (+	
  Doctrine),	
  
Python,	
  .NET	
  &	
  C	
  (labs)	
  
•  MySQL	
  Fabric	
  node	
  is	
  a	
  single	
  (non-­‐
redundant	
  process)	
  
–  HA	
  Maintained	
  as	
  connectors	
  conMnue	
  to	
  route	
  
using	
  local	
  caches	
  
•  Establishes	
  asynchronous	
  replicaMon	
  
–  Manual	
  steps	
  to	
  switch	
  to	
  semisynchronous	
  
•  Sharding	
  not	
  completely	
  transparent	
  to	
  
applicaMon	
  (must	
  provide	
  shard	
  key	
  –	
  
column	
  from	
  applicaMon	
  schema)	
  
•  No	
  cross-­‐shard	
  joins	
  or	
  other	
  queries	
  
•  Management	
  is	
  through	
  CLI,	
  MySQL	
  
protocol	
  or	
  XML/RPC	
  API	
  
–  No	
  GUI	
  
MySQL	
  Fabric	
  –	
  Current	
  LimitaMons	
  
32	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Program	
  Agenda	
  
Requirements	
  for	
  Next	
  Gen	
  Services	
  
Simple,	
  transparent	
  High	
  Availability	
  
Delivering	
  SQL	
  &	
  ACID	
  at	
  scale	
  
Where	
  MySQL	
  Fabric	
  fits	
  	
  
1	
  
2	
  
3	
  
4	
  
33	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Oracle	
  MySQL	
  HA	
  &	
  Scaling	
  SoluMons	
  
MySQL	
  
ReplicaGon	
  
MySQL	
  
Fabric	
  
Oracle	
  VM	
  
Template	
  
Oracle	
  
Clusterware	
  
Solaris	
  
Cluster	
  
Windows	
  
Cluster	
  
DRBD	
  
MySQL	
  
Cluster	
  
App	
  Auto-­‐Failover	
   ✖	
   ✔	
   ✔	
   ✔	
   ✔	
   ✔	
   ✔	
   ✔	
  
Data	
  Layer	
  Auto-­‐Failover	
   ✖	
   ✔	
   ✔	
   ✔	
   ✔	
   ✔	
   ✔	
   ✔	
  
Zero	
  Data	
  Loss	
   MySQL	
  5.7	
   MySQL	
  5.7	
   ✔	
   ✔	
   ✔	
   ✔	
   ✔	
   ✔	
  
Plaxorm	
  Support	
   All	
   All	
   Linux	
   Linux	
   Solaris	
   Windows	
   Linux	
   All	
  
Clustering	
  Mode	
  
Master	
  +	
  
Slaves	
  
Master	
  +	
  
Slaves	
  
AcGve/
Passive	
  
AcGve/
Passive	
  
AcGve/
Passive	
  
AcGve/
Passive	
  
AcGve/
Passive	
  
MulG-­‐
Master	
  
Failover	
  Time	
   N/A	
   Secs	
   Secs	
  +	
   Secs	
  +	
   Secs	
  +	
   Secs	
  +	
   Secs	
  +	
   <	
  1	
  Sec	
  
Scale-­‐out	
   Reads	
   ✔	
   ✖	
   ✖	
   ✖	
   ✖	
   ✖	
   ✔	
  
Cross-­‐shard	
  operaMons	
   N/A	
   ✖	
   N/A	
   N/A	
   N/A	
   N/A	
   N/A	
   ✔	
  
Transparent	
  rouMng	
   ✖	
   For	
  HA	
   ✔	
   ✔	
   ✔	
   ✔	
   ✔	
   ✔	
  
Shared	
  Nothing	
   ✔	
   ✔	
   ✖	
   ✖	
   ✖	
   ✖	
   ✔	
   ✔	
  
Storage	
  Engine	
   InnoDB+	
   InnoDB+	
   InnoDB+	
   InnoDB+	
   InnoDB+	
   InnoDB+	
   InnoDB+	
   NDB	
  
Single	
  Vendor	
  Support	
   ✔	
   ✔	
   ✔	
   ✔	
   ✔	
   ✖	
   ✔	
   ✔	
  
34	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  Fabric	
  Resources	
  
•  Download	
  and	
  try	
  	
  
hep://dev.mysql.com/downloads/fabric/	
  	
  
•  DocumentaMon	
  
hep://dev.mysql.com/doc/mysql-­‐uMliMes/en/fabric.html 	
  	
  
•  MySQL	
  Fabric	
  on	
  the	
  web	
  
hep://www.mysql.com/products/enterprise/fabric.html 	
  	
  
•  Forum	
  (MySQL	
  Fabric,	
  Sharding,	
  HA,	
  UMliMes)	
  
hep://forums.mysql.com/list.php?144 	
  	
  
•  Tutorial:	
  MySQL	
  Fabric	
  -­‐	
  adding	
  High	
  Availability	
  and	
  Scaling	
  to	
  MySQL	
  
hep://www.clusterdb.com/mysql-­‐fabric/mysql-­‐fabric-­‐adding-­‐high-­‐availability-­‐and-­‐scaling-­‐to-­‐mysql 	
  	
  
•  White	
  Paper:	
  MySQL	
  Fabric	
  -­‐	
  A	
  Guide	
  to	
  Managing	
  MySQL	
  High	
  Availability	
  and	
  Scaling	
  Out	
  
hep://www.mysql.com/why-­‐mysql/white-­‐papers/mysql-­‐fabric-­‐product-­‐guide 	
  	
  
•  Webinar	
  Replays	
  
hep://www.mysql.com/news-­‐and-­‐events/on-­‐demand-­‐webinars/#en-­‐20-­‐41	
  	
  
35	
  
Netherlands Tech Tour 02 -   MySQL Fabric

More Related Content

What's hot

Why MySQL High Availability Matters
Why MySQL High Availability MattersWhy MySQL High Availability Matters
Why MySQL High Availability Matters
Matt Lord
 
MySQL Tech Tour 2015 - Alt Intro
MySQL Tech Tour 2015 - Alt IntroMySQL Tech Tour 2015 - Alt Intro
MySQL Tech Tour 2015 - Alt Intro
Mark Swarbrick
 
MySQL Fabric Tutorial, October 2014
MySQL Fabric Tutorial, October 2014MySQL Fabric Tutorial, October 2014
MySQL Fabric Tutorial, October 2014
Lars Thalmann
 
MySQL Manchester TT - Replication Features
MySQL Manchester TT  - Replication FeaturesMySQL Manchester TT  - Replication Features
MySQL Manchester TT - Replication Features
Mark Swarbrick
 
MySQL Tech Tour 2015 - 5.7 Connector/J/Net
MySQL Tech Tour 2015 - 5.7 Connector/J/NetMySQL Tech Tour 2015 - 5.7 Connector/J/Net
MySQL Tech Tour 2015 - 5.7 Connector/J/Net
Mark Swarbrick
 
MySQL Fabric: Easy Management of MySQL Servers
MySQL Fabric: Easy Management of MySQL ServersMySQL Fabric: Easy Management of MySQL Servers
MySQL Fabric: Easy Management of MySQL Servers
Mats Kindahl
 
MySQL Tech Tour 2015 - 5.7 Security
MySQL Tech Tour 2015 - 5.7 SecurityMySQL Tech Tour 2015 - 5.7 Security
MySQL Tech Tour 2015 - 5.7 Security
Mark Swarbrick
 
Oracle Enterprise Manager for MySQL
Oracle Enterprise Manager for MySQLOracle Enterprise Manager for MySQL
Oracle Enterprise Manager for MySQL
Mario Beck
 
MySQL Manchester TT - MySQL Enterprise Edition
MySQL Manchester TT - MySQL Enterprise EditionMySQL Manchester TT - MySQL Enterprise Edition
MySQL Manchester TT - MySQL Enterprise Edition
Mark Swarbrick
 
MySQL Cluster as Transactional NoSQL (KVS)
MySQL Cluster as Transactional NoSQL (KVS)MySQL Cluster as Transactional NoSQL (KVS)
MySQL Cluster as Transactional NoSQL (KVS)
Ryusuke Kajiyama
 
TWJUG August, MySQL JDBC Driver "Connector/J"
TWJUG August, MySQL JDBC Driver "Connector/J"TWJUG August, MySQL JDBC Driver "Connector/J"
TWJUG August, MySQL JDBC Driver "Connector/J"
Ryusuke Kajiyama
 
MySQL Cloud Service
MySQL Cloud ServiceMySQL Cloud Service
MySQL Cloud Service
Mario Beck
 
Sharding and Scale-out using MySQL Fabric
Sharding and Scale-out using MySQL FabricSharding and Scale-out using MySQL Fabric
Sharding and Scale-out using MySQL Fabric
Mats Kindahl
 
TWJUG August, What's new in MySQL 5.7 RC
TWJUG August, What's new in MySQL 5.7 RCTWJUG August, What's new in MySQL 5.7 RC
TWJUG August, What's new in MySQL 5.7 RC
Ryusuke Kajiyama
 
Mysql User Camp : 20-June-14 : Mysql Fabric
Mysql User Camp : 20-June-14 : Mysql FabricMysql User Camp : 20-June-14 : Mysql Fabric
Mysql User Camp : 20-June-14 : Mysql Fabric
Mysql User Camp
 
20140722 Taiwan MySQL User Group Meeting Tech Updates
20140722 Taiwan MySQL User Group Meeting Tech Updates20140722 Taiwan MySQL User Group Meeting Tech Updates
20140722 Taiwan MySQL User Group Meeting Tech Updates
Ryusuke Kajiyama
 
Enabling digital transformation with MySQL
Enabling digital transformation with MySQLEnabling digital transformation with MySQL
Enabling digital transformation with MySQL
MySQL Brasil
 
WLS12c_NewFeatures_Basics
WLS12c_NewFeatures_BasicsWLS12c_NewFeatures_Basics
WLS12c_NewFeatures_BasicsSudhesh Pnair
 
MySQL High Availability: Managing Farms of Distributed Servers (MySQL Fabric)
MySQL High Availability: Managing Farms of Distributed Servers (MySQL Fabric)MySQL High Availability: Managing Farms of Distributed Servers (MySQL Fabric)
MySQL High Availability: Managing Farms of Distributed Servers (MySQL Fabric)Alfranio Júnior
 
MySQL Document Store
MySQL Document StoreMySQL Document Store
MySQL Document Store
Mario Beck
 

What's hot (20)

Why MySQL High Availability Matters
Why MySQL High Availability MattersWhy MySQL High Availability Matters
Why MySQL High Availability Matters
 
MySQL Tech Tour 2015 - Alt Intro
MySQL Tech Tour 2015 - Alt IntroMySQL Tech Tour 2015 - Alt Intro
MySQL Tech Tour 2015 - Alt Intro
 
MySQL Fabric Tutorial, October 2014
MySQL Fabric Tutorial, October 2014MySQL Fabric Tutorial, October 2014
MySQL Fabric Tutorial, October 2014
 
MySQL Manchester TT - Replication Features
MySQL Manchester TT  - Replication FeaturesMySQL Manchester TT  - Replication Features
MySQL Manchester TT - Replication Features
 
MySQL Tech Tour 2015 - 5.7 Connector/J/Net
MySQL Tech Tour 2015 - 5.7 Connector/J/NetMySQL Tech Tour 2015 - 5.7 Connector/J/Net
MySQL Tech Tour 2015 - 5.7 Connector/J/Net
 
MySQL Fabric: Easy Management of MySQL Servers
MySQL Fabric: Easy Management of MySQL ServersMySQL Fabric: Easy Management of MySQL Servers
MySQL Fabric: Easy Management of MySQL Servers
 
MySQL Tech Tour 2015 - 5.7 Security
MySQL Tech Tour 2015 - 5.7 SecurityMySQL Tech Tour 2015 - 5.7 Security
MySQL Tech Tour 2015 - 5.7 Security
 
Oracle Enterprise Manager for MySQL
Oracle Enterprise Manager for MySQLOracle Enterprise Manager for MySQL
Oracle Enterprise Manager for MySQL
 
MySQL Manchester TT - MySQL Enterprise Edition
MySQL Manchester TT - MySQL Enterprise EditionMySQL Manchester TT - MySQL Enterprise Edition
MySQL Manchester TT - MySQL Enterprise Edition
 
MySQL Cluster as Transactional NoSQL (KVS)
MySQL Cluster as Transactional NoSQL (KVS)MySQL Cluster as Transactional NoSQL (KVS)
MySQL Cluster as Transactional NoSQL (KVS)
 
TWJUG August, MySQL JDBC Driver "Connector/J"
TWJUG August, MySQL JDBC Driver "Connector/J"TWJUG August, MySQL JDBC Driver "Connector/J"
TWJUG August, MySQL JDBC Driver "Connector/J"
 
MySQL Cloud Service
MySQL Cloud ServiceMySQL Cloud Service
MySQL Cloud Service
 
Sharding and Scale-out using MySQL Fabric
Sharding and Scale-out using MySQL FabricSharding and Scale-out using MySQL Fabric
Sharding and Scale-out using MySQL Fabric
 
TWJUG August, What's new in MySQL 5.7 RC
TWJUG August, What's new in MySQL 5.7 RCTWJUG August, What's new in MySQL 5.7 RC
TWJUG August, What's new in MySQL 5.7 RC
 
Mysql User Camp : 20-June-14 : Mysql Fabric
Mysql User Camp : 20-June-14 : Mysql FabricMysql User Camp : 20-June-14 : Mysql Fabric
Mysql User Camp : 20-June-14 : Mysql Fabric
 
20140722 Taiwan MySQL User Group Meeting Tech Updates
20140722 Taiwan MySQL User Group Meeting Tech Updates20140722 Taiwan MySQL User Group Meeting Tech Updates
20140722 Taiwan MySQL User Group Meeting Tech Updates
 
Enabling digital transformation with MySQL
Enabling digital transformation with MySQLEnabling digital transformation with MySQL
Enabling digital transformation with MySQL
 
WLS12c_NewFeatures_Basics
WLS12c_NewFeatures_BasicsWLS12c_NewFeatures_Basics
WLS12c_NewFeatures_Basics
 
MySQL High Availability: Managing Farms of Distributed Servers (MySQL Fabric)
MySQL High Availability: Managing Farms of Distributed Servers (MySQL Fabric)MySQL High Availability: Managing Farms of Distributed Servers (MySQL Fabric)
MySQL High Availability: Managing Farms of Distributed Servers (MySQL Fabric)
 
MySQL Document Store
MySQL Document StoreMySQL Document Store
MySQL Document Store
 

Similar to Netherlands Tech Tour 02 - MySQL Fabric

MySQL Fabric - High Availability & Automated Sharding for MySQL
MySQL Fabric - High Availability & Automated Sharding for MySQLMySQL Fabric - High Availability & Automated Sharding for MySQL
MySQL Fabric - High Availability & Automated Sharding for MySQL
Ted Wennmark
 
MySQL High Availability Solutions - Feb 2015 webinar
MySQL High Availability Solutions - Feb 2015 webinarMySQL High Availability Solutions - Feb 2015 webinar
MySQL High Availability Solutions - Feb 2015 webinar
Andrew Morgan
 
Introduction to MySQL
Introduction to MySQLIntroduction to MySQL
Introduction to MySQL
Ted Wennmark
 
MySQL & Oracle Linux Keynote at Open Source India 2014
MySQL & Oracle Linux Keynote at Open Source India 2014MySQL & Oracle Linux Keynote at Open Source India 2014
MySQL & Oracle Linux Keynote at Open Source India 2014
Sanjay Manwani
 
My sql5.7 whatsnew_presentedatgids2015
My sql5.7 whatsnew_presentedatgids2015My sql5.7 whatsnew_presentedatgids2015
My sql5.7 whatsnew_presentedatgids2015
Sanjay Manwani
 
200 million qps on commodity hardware : Getting started with MySQL Cluster 7.4
200 million qps on commodity hardware : Getting started with MySQL Cluster 7.4200 million qps on commodity hardware : Getting started with MySQL Cluster 7.4
200 million qps on commodity hardware : Getting started with MySQL Cluster 7.4
Frazer Clement
 
1 my sql20151219-kaji_ivan
1 my sql20151219-kaji_ivan1 my sql20151219-kaji_ivan
1 my sql20151219-kaji_ivan
Ivan Tu
 
MySQL Cluster - Latest Developments (up to and including MySQL Cluster 7.4)
MySQL Cluster - Latest Developments (up to and including MySQL Cluster 7.4)MySQL Cluster - Latest Developments (up to and including MySQL Cluster 7.4)
MySQL Cluster - Latest Developments (up to and including MySQL Cluster 7.4)
Andrew Morgan
 
MySQL Manchester TT - Performance Tuning
MySQL Manchester TT  - Performance TuningMySQL Manchester TT  - Performance Tuning
MySQL Manchester TT - Performance Tuning
Mark Swarbrick
 
1 architecture & design
1   architecture & design1   architecture & design
1 architecture & design
Mark Swarbrick
 
5 razões estratégicas para usar MySQL
5 razões estratégicas para usar MySQL5 razões estratégicas para usar MySQL
5 razões estratégicas para usar MySQL
MySQL Brasil
 
Mysql User Camp : 20th June - Mysql New Features
Mysql User Camp : 20th June - Mysql New FeaturesMysql User Camp : 20th June - Mysql New Features
Mysql User Camp : 20th June - Mysql New FeaturesTarique Saleem
 
Mysql User Camp : 20-June-14 : Mysql New features and NoSQL Support
 Mysql User Camp : 20-June-14 : Mysql New features and NoSQL Support Mysql User Camp : 20-June-14 : Mysql New features and NoSQL Support
Mysql User Camp : 20-June-14 : Mysql New features and NoSQL Support
Mysql User Camp
 
Elastic Scalability in MySQL Fabric Using OpenStack
Elastic Scalability in MySQL Fabric Using OpenStackElastic Scalability in MySQL Fabric Using OpenStack
Elastic Scalability in MySQL Fabric Using OpenStack
Mats Kindahl
 
Alta Disponibilidade no MySQL 5.7
Alta Disponibilidade no MySQL 5.7Alta Disponibilidade no MySQL 5.7
Alta Disponibilidade no MySQL 5.7
MySQL Brasil
 
MySQL for Oracle DBAs
MySQL for Oracle DBAsMySQL for Oracle DBAs
MySQL for Oracle DBAs
Mario Beck
 
What's new in MySQL 5.7, Oracle Virtual Technology Summit, 2016
What's new in MySQL 5.7, Oracle Virtual Technology Summit, 2016What's new in MySQL 5.7, Oracle Virtual Technology Summit, 2016
What's new in MySQL 5.7, Oracle Virtual Technology Summit, 2016Geir Høydalsvik
 
WebLogic 12c - OMF Canberra June 2014
WebLogic 12c - OMF Canberra June 2014WebLogic 12c - OMF Canberra June 2014
WebLogic 12c - OMF Canberra June 2014
Joelith
 
MySQL for Oracle DBAs
MySQL for Oracle DBAsMySQL for Oracle DBAs
MySQL for Oracle DBAs
Ben Krug
 
MySQL Web Reference Architecture
MySQL Web Reference Architecture MySQL Web Reference Architecture
MySQL Web Reference Architecture
Ricky Setyawan
 

Similar to Netherlands Tech Tour 02 - MySQL Fabric (20)

MySQL Fabric - High Availability & Automated Sharding for MySQL
MySQL Fabric - High Availability & Automated Sharding for MySQLMySQL Fabric - High Availability & Automated Sharding for MySQL
MySQL Fabric - High Availability & Automated Sharding for MySQL
 
MySQL High Availability Solutions - Feb 2015 webinar
MySQL High Availability Solutions - Feb 2015 webinarMySQL High Availability Solutions - Feb 2015 webinar
MySQL High Availability Solutions - Feb 2015 webinar
 
Introduction to MySQL
Introduction to MySQLIntroduction to MySQL
Introduction to MySQL
 
MySQL & Oracle Linux Keynote at Open Source India 2014
MySQL & Oracle Linux Keynote at Open Source India 2014MySQL & Oracle Linux Keynote at Open Source India 2014
MySQL & Oracle Linux Keynote at Open Source India 2014
 
My sql5.7 whatsnew_presentedatgids2015
My sql5.7 whatsnew_presentedatgids2015My sql5.7 whatsnew_presentedatgids2015
My sql5.7 whatsnew_presentedatgids2015
 
200 million qps on commodity hardware : Getting started with MySQL Cluster 7.4
200 million qps on commodity hardware : Getting started with MySQL Cluster 7.4200 million qps on commodity hardware : Getting started with MySQL Cluster 7.4
200 million qps on commodity hardware : Getting started with MySQL Cluster 7.4
 
1 my sql20151219-kaji_ivan
1 my sql20151219-kaji_ivan1 my sql20151219-kaji_ivan
1 my sql20151219-kaji_ivan
 
MySQL Cluster - Latest Developments (up to and including MySQL Cluster 7.4)
MySQL Cluster - Latest Developments (up to and including MySQL Cluster 7.4)MySQL Cluster - Latest Developments (up to and including MySQL Cluster 7.4)
MySQL Cluster - Latest Developments (up to and including MySQL Cluster 7.4)
 
MySQL Manchester TT - Performance Tuning
MySQL Manchester TT  - Performance TuningMySQL Manchester TT  - Performance Tuning
MySQL Manchester TT - Performance Tuning
 
1 architecture & design
1   architecture & design1   architecture & design
1 architecture & design
 
5 razões estratégicas para usar MySQL
5 razões estratégicas para usar MySQL5 razões estratégicas para usar MySQL
5 razões estratégicas para usar MySQL
 
Mysql User Camp : 20th June - Mysql New Features
Mysql User Camp : 20th June - Mysql New FeaturesMysql User Camp : 20th June - Mysql New Features
Mysql User Camp : 20th June - Mysql New Features
 
Mysql User Camp : 20-June-14 : Mysql New features and NoSQL Support
 Mysql User Camp : 20-June-14 : Mysql New features and NoSQL Support Mysql User Camp : 20-June-14 : Mysql New features and NoSQL Support
Mysql User Camp : 20-June-14 : Mysql New features and NoSQL Support
 
Elastic Scalability in MySQL Fabric Using OpenStack
Elastic Scalability in MySQL Fabric Using OpenStackElastic Scalability in MySQL Fabric Using OpenStack
Elastic Scalability in MySQL Fabric Using OpenStack
 
Alta Disponibilidade no MySQL 5.7
Alta Disponibilidade no MySQL 5.7Alta Disponibilidade no MySQL 5.7
Alta Disponibilidade no MySQL 5.7
 
MySQL for Oracle DBAs
MySQL for Oracle DBAsMySQL for Oracle DBAs
MySQL for Oracle DBAs
 
What's new in MySQL 5.7, Oracle Virtual Technology Summit, 2016
What's new in MySQL 5.7, Oracle Virtual Technology Summit, 2016What's new in MySQL 5.7, Oracle Virtual Technology Summit, 2016
What's new in MySQL 5.7, Oracle Virtual Technology Summit, 2016
 
WebLogic 12c - OMF Canberra June 2014
WebLogic 12c - OMF Canberra June 2014WebLogic 12c - OMF Canberra June 2014
WebLogic 12c - OMF Canberra June 2014
 
MySQL for Oracle DBAs
MySQL for Oracle DBAsMySQL for Oracle DBAs
MySQL for Oracle DBAs
 
MySQL Web Reference Architecture
MySQL Web Reference Architecture MySQL Web Reference Architecture
MySQL Web Reference Architecture
 

More from Mark Swarbrick

MySQL NoSQL Document Store
MySQL NoSQL Document StoreMySQL NoSQL Document Store
MySQL NoSQL Document Store
Mark Swarbrick
 
MySQL @ the University Of Nottingham
MySQL @ the University Of NottinghamMySQL @ the University Of Nottingham
MySQL @ the University Of Nottingham
Mark Swarbrick
 
InnoDb Vs NDB Cluster
InnoDb Vs NDB ClusterInnoDb Vs NDB Cluster
InnoDb Vs NDB Cluster
Mark Swarbrick
 
MySQL Security & GDPR
MySQL Security & GDPRMySQL Security & GDPR
MySQL Security & GDPR
Mark Swarbrick
 
Intro To MySQL 2019
Intro To MySQL 2019Intro To MySQL 2019
Intro To MySQL 2019
Mark Swarbrick
 
MySQL 8
MySQL 8MySQL 8
MySQL Dublin Event Nov 2018 - MySQL 8
MySQL Dublin Event Nov 2018 - MySQL 8MySQL Dublin Event Nov 2018 - MySQL 8
MySQL Dublin Event Nov 2018 - MySQL 8
Mark Swarbrick
 
MySQL Dublin Event Nov 2018 - State of the Dolphin
MySQL Dublin Event Nov 2018 - State of the DolphinMySQL Dublin Event Nov 2018 - State of the Dolphin
MySQL Dublin Event Nov 2018 - State of the Dolphin
Mark Swarbrick
 
Oracle Code Event - MySQL JSON Document Store
Oracle Code Event - MySQL JSON Document StoreOracle Code Event - MySQL JSON Document Store
Oracle Code Event - MySQL JSON Document Store
Mark Swarbrick
 
TLV - MySQL Security overview
TLV - MySQL Security overviewTLV - MySQL Security overview
TLV - MySQL Security overview
Mark Swarbrick
 
TLV - MySQL Enterprise Edition + Cloud
TLV - MySQL Enterprise Edition + CloudTLV - MySQL Enterprise Edition + Cloud
TLV - MySQL Enterprise Edition + Cloud
Mark Swarbrick
 
TLV - Whats new in MySQL 8
TLV - Whats new in MySQL 8TLV - Whats new in MySQL 8
TLV - Whats new in MySQL 8
Mark Swarbrick
 
MySQL At University Of Nottingham - 2018 MySQL Days
MySQL At University Of Nottingham - 2018 MySQL DaysMySQL At University Of Nottingham - 2018 MySQL Days
MySQL At University Of Nottingham - 2018 MySQL Days
Mark Swarbrick
 
MySQL At Mastercard - 2018 MySQL Days
MySQL At Mastercard - 2018 MySQL DaysMySQL At Mastercard - 2018 MySQL Days
MySQL At Mastercard - 2018 MySQL Days
Mark Swarbrick
 
MySQL 8 - 2018 MySQL Days
MySQL 8 - 2018 MySQL DaysMySQL 8 - 2018 MySQL Days
MySQL 8 - 2018 MySQL Days
Mark Swarbrick
 
MySQL Security + GDPR - 2018 MySQL Days
MySQL Security + GDPR - 2018 MySQL DaysMySQL Security + GDPR - 2018 MySQL Days
MySQL Security + GDPR - 2018 MySQL Days
Mark Swarbrick
 
MySQL InnoDB + NDB Cluster - 2018 MySQL Days
MySQL InnoDB + NDB Cluster - 2018 MySQL DaysMySQL InnoDB + NDB Cluster - 2018 MySQL Days
MySQL InnoDB + NDB Cluster - 2018 MySQL Days
Mark Swarbrick
 
MySQL Cloud - 2018 MySQL Days
MySQL Cloud - 2018 MySQL DaysMySQL Cloud - 2018 MySQL Days
MySQL Cloud - 2018 MySQL Days
Mark Swarbrick
 
MySQL 2018 Intro - 2018 MySQL Days
MySQL 2018 Intro - 2018 MySQL DaysMySQL 2018 Intro - 2018 MySQL Days
MySQL 2018 Intro - 2018 MySQL Days
Mark Swarbrick
 
MySQL + GDPR
MySQL + GDPRMySQL + GDPR
MySQL + GDPR
Mark Swarbrick
 

More from Mark Swarbrick (20)

MySQL NoSQL Document Store
MySQL NoSQL Document StoreMySQL NoSQL Document Store
MySQL NoSQL Document Store
 
MySQL @ the University Of Nottingham
MySQL @ the University Of NottinghamMySQL @ the University Of Nottingham
MySQL @ the University Of Nottingham
 
InnoDb Vs NDB Cluster
InnoDb Vs NDB ClusterInnoDb Vs NDB Cluster
InnoDb Vs NDB Cluster
 
MySQL Security & GDPR
MySQL Security & GDPRMySQL Security & GDPR
MySQL Security & GDPR
 
Intro To MySQL 2019
Intro To MySQL 2019Intro To MySQL 2019
Intro To MySQL 2019
 
MySQL 8
MySQL 8MySQL 8
MySQL 8
 
MySQL Dublin Event Nov 2018 - MySQL 8
MySQL Dublin Event Nov 2018 - MySQL 8MySQL Dublin Event Nov 2018 - MySQL 8
MySQL Dublin Event Nov 2018 - MySQL 8
 
MySQL Dublin Event Nov 2018 - State of the Dolphin
MySQL Dublin Event Nov 2018 - State of the DolphinMySQL Dublin Event Nov 2018 - State of the Dolphin
MySQL Dublin Event Nov 2018 - State of the Dolphin
 
Oracle Code Event - MySQL JSON Document Store
Oracle Code Event - MySQL JSON Document StoreOracle Code Event - MySQL JSON Document Store
Oracle Code Event - MySQL JSON Document Store
 
TLV - MySQL Security overview
TLV - MySQL Security overviewTLV - MySQL Security overview
TLV - MySQL Security overview
 
TLV - MySQL Enterprise Edition + Cloud
TLV - MySQL Enterprise Edition + CloudTLV - MySQL Enterprise Edition + Cloud
TLV - MySQL Enterprise Edition + Cloud
 
TLV - Whats new in MySQL 8
TLV - Whats new in MySQL 8TLV - Whats new in MySQL 8
TLV - Whats new in MySQL 8
 
MySQL At University Of Nottingham - 2018 MySQL Days
MySQL At University Of Nottingham - 2018 MySQL DaysMySQL At University Of Nottingham - 2018 MySQL Days
MySQL At University Of Nottingham - 2018 MySQL Days
 
MySQL At Mastercard - 2018 MySQL Days
MySQL At Mastercard - 2018 MySQL DaysMySQL At Mastercard - 2018 MySQL Days
MySQL At Mastercard - 2018 MySQL Days
 
MySQL 8 - 2018 MySQL Days
MySQL 8 - 2018 MySQL DaysMySQL 8 - 2018 MySQL Days
MySQL 8 - 2018 MySQL Days
 
MySQL Security + GDPR - 2018 MySQL Days
MySQL Security + GDPR - 2018 MySQL DaysMySQL Security + GDPR - 2018 MySQL Days
MySQL Security + GDPR - 2018 MySQL Days
 
MySQL InnoDB + NDB Cluster - 2018 MySQL Days
MySQL InnoDB + NDB Cluster - 2018 MySQL DaysMySQL InnoDB + NDB Cluster - 2018 MySQL Days
MySQL InnoDB + NDB Cluster - 2018 MySQL Days
 
MySQL Cloud - 2018 MySQL Days
MySQL Cloud - 2018 MySQL DaysMySQL Cloud - 2018 MySQL Days
MySQL Cloud - 2018 MySQL Days
 
MySQL 2018 Intro - 2018 MySQL Days
MySQL 2018 Intro - 2018 MySQL DaysMySQL 2018 Intro - 2018 MySQL Days
MySQL 2018 Intro - 2018 MySQL Days
 
MySQL + GDPR
MySQL + GDPRMySQL + GDPR
MySQL + GDPR
 

Recently uploaded

Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
Fwdays
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
CatarinaPereira64715
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
Abida Shariff
 

Recently uploaded (20)

Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 

Netherlands Tech Tour 02 - MySQL Fabric

  • 1. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  Fabric   Sharding  &  High  Availability  for  MYSQL   Mark  Swarbrick   Principle  Presales  Consultant  
  • 2. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Safe  Harbor  Statement   The  following  is  intended  to  outline  our  general  product  direcMon.  It  is  intended  for   informaMon  purposes  only,  and  may  not  be  incorporated  into  any  contract.  It  is  not  a   commitment  to  deliver  any  material,  code,  or  funcMonality,  and  should  not  be  relied  upon   in  making  purchasing  decisions.  The  development,  release,  and  Mming  of  any  features  or   funcMonality  described  for  Oracle’s  products  remains  at  the  sole  discreMon  of  Oracle.   2  
  • 3. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Program  Agenda   Requirements  for  Next  Gen  Services   Simple,  transparent  High  Availability   Delivering  SQL  &  ACID  at  scale   Where  MySQL  Fabric  fits     1   2   3   4   3  
  • 4. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Program  Agenda   Requirements  for  Next  Gen  Services   Simple,  transparent  High  Availability   Delivering  SQL  &  ACID  at  scale   Where  MySQL  Fabric  fits     1   2   3   4   4  
  • 5. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Focus  on  driving  the  business  rather  than  on  infrastructure   Business  PrioriMes  for  IT   Deliver  new   services   Real-­‐Time   Insight  from   Data   Simplify   Architecture   Fast  Time  to   Market   5  
  • 6. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   ApplicaMon  Requirements   High  Availability   Scale  Data  &  User  Loads   OLTP  &  AnalyMcs   ElasMc   Responsive  &  Agile   6  
  • 7. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  Fabric   An  extensible  and  easy-­‐to-­‐ use  framework  for   managing  a  farm  of  MySQL   server  supporGng  high-­‐ availability  and  sharding   7  
  • 8. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  Fabric  1.5   •  High  Availability   –  Server  monitoring  with  auto-­‐promoMon  and   transparent  applicaMon  failover   •  OpMonally  scale-­‐out  through  sharding   –  ApplicaMon  provides  shard  key   –  Range  or  Hash   –  Tools  for  resharding   –  Global  updates  &  tables   •  Fabric-­‐aware  connectors  rather  than   proxy:  Python,  Java,  PHP,  .NET,  C  (labs)   –  Lower  latency,  boeleneck-­‐free   •  Server  provisioning  using  OpenStack  etc.   High  Availability  +  Sharding-­‐Based  Scale-­‐out   MySQL  Fabric   Connector   ApplicaMon   Read-­‐slaves   mappings   SQL   HA  group   Read-­‐slaves   HA  group   Connector   ApplicaMon   8  
  • 9. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Program  Agenda   Requirements  for  Next  Gen  Services   Simple,  transparent  High  Availability   Delivering  SQL  &  ACID  at  scale   Where  MySQL  Fabric  fits     1   2   3   4   9  
  • 10. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Layers  of  HA   Redundant  Access   to  Data   Data  Redundancy   Redundant  App  Servers   RouGng  to  the  Data   10  
  • 11. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   •  Asynchronous   – MySQL  Default   – In  parallel:  Master  acks   to  app  and  sends   transacMon  to  slave   •  Fast   •  Risk  of  lost  changes  if   master  dies   •  Synchronous   – Only  available  with   MySQL  Cluster   – Serially:  Master  waits   for  change  to  be   applied  on  all  slaves   before  ack  to  app   •  Higher  latency   •  If  AcMve/AcMve,  best   suited  to  small   transacMons   •  Lossless   •  Semi-­‐Synchronous   – MySQL  5.5+  -­‐  Enhanced   in  MySQL  5.7   – Serially:  Master  waits   for  change  to  be   received  by  slave  then   In  parallel  ack  to  app   and  apply  changes  on   slave   •  Intermediate  latency   •  Lossless  (MySQL  5.7)     Asynchronous  vs.  Synchronous  ReplicaMon   11  
  • 12. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  Fabric  Framework  (HA)   All  Data   Primary   Secondary   Extra  Read  Replicas  MySQL  Fabric   Controller   SQL  Queries   State  &   RouGng  Info   HA  Group   CoordinaGon   and  Control   12  
  • 13. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  ReplicaMon  &  MySQL  Fabric  HA   •  MySQL  ReplicaMon  is  the  iniMal  implementaMon  used  in  HA  Groups   – PRIMARY  =  ReplicaMon  Master  &  receives  all  writes   – SECONDARY  =  ReplicaMon  Slave  &  receives  share  of  reads   •  Failover   – MySQL  Fabric  detects  failure  of  PRIMARY/Master   – Selects  a  SECONDARY/Slave  and  promotes  it   – Updates  State  Store   – Updated  state  fetched  by  Fabric-­‐aware  connectors   How  this  effects  failover   13  
  • 14. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   High-­‐Availability  Group  Concept   •  Abstract  Concept   – Set  of  servers   – Server  aeributes   •  Connector  Aeributes   – ConnecMon  informaMon   – Mode:  read-­‐only,  read-­‐write,  ...   – Weight:  distribute  load   •  Management  Aeributes   – State:  state/role  of  the  server     State:    Primary   Mode:    Read-­‐Write   Host:    server-­‐1.example.com   14  
  • 15. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Create  HA  Groups  and  add  Servers   •  Define  a  group   mysqlfabric group create my_group •  Add  servers  to  group   mysqlfabric group add my_group server1.example.com mysqlfabric group add my_group server2.example.com 15  
  • 16. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Create  HA  Groups  and  add  Servers   •  Promote  one  server  to  be  primary mysqlfabric group promote my_group •  Tell  failure  detector  to  monitor  group mysqlfabric group activate my_group 16  
  • 17. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Program  Agenda   Requirements  for  Next  Gen  Services   Simple,  transparent  High  Availability   Delivering  SQL  &  ACID  at  scale   Where  MySQL  Fabric  fits     1   2   3   4   17  
  • 18. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   The  Path  to  Scalability   •  Scaling  on  dense,  mulM-­‐ core,  mulM-­‐thread  servers   – 10s  -­‐  100GBs  RAM   – SSDs   •  Scale  across  cores  within  a   single  instance   •  You  can  get  a  long  way   with  MySQL  5.6  &  5.7!   Scaling-­‐Up  can  take  you  a  long  way   18   0   2,000   4,000   6,000   8,000   10,000   12,000   14,000   16,000   18,000   8   16   32   64   128   256   512   1,024   TransacGons  per  Second   ConnecGons   MySQL  5.7:  Sysbench  OLTP  Read  Write   MySQL   5.7   MySQL   5.6   MySQL   5.5  
  • 19. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   •  Write  scalability   – Can  handle  more  writes   •  Large  data  set   – Database  too  large   – Does  not  fit  on  single  server   •  Improved  performance   – Smaller  index  size   – Smaller  working  set   – Improve  performance  (reads  and   writes)   Benefits  of  Sharding   UID  10000-­‐20000   UID  20001-­‐40000   19  
  • 20. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   •  Connector  API  Extensions   – Support  TransacMons   – Support  full  SQL   •  Decision  logic  in  connector   – Reducing  network  load   •  Shard  MulMple  Tables   – Using  same  key   •  Global  Updates   – Global  tables   – Schema  updates   •  Sharding  FuncMons   – Range   – (Consistent)  Hash   •  Shard  OperaMons   – Shard  move   – Shard  split   •  Server  Provisioning   – Integrated  with  OpenStack  &  other   frameworks   MySQL  Fabric  Sharding  &  Provisioning  Features   20  
  • 21. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Sharding  Architecture   Shards   MySQL  Fabric  Node   ApplicaGon   Global   Group   Global  Updates   Shard   Updates   ReplicaGon   21   Connector   Connector   Connector  
  • 22. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  Fabric  (HA  +  Sharding)   Global  Data   Primary   Secondary   Shard  1   Primary   Secondary   Shard  2   Primary   Secondary   MySQL  Fabric   Controller   SQL  Queries   Server/Shard  State  &   Mapping   Global  Group   HA  Group   CoordinaGon  and   Control   HA  Group   Extra  Read  Replicas   Extra  Read  Replicas   22  
  • 23. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   RouMng  TransacMons   Shard  #2   Shard  #1   Shard  #3   Executor   App  Server   Connector       Cache   State  Store   23  
  • 24. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   RouMng  TransacMons   Shard  #2   Shard  #1   Shard  #3   Executor   App  Server   Connector       Cache   State  Store   App  Server   Connector       Cache   24  
  • 25. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  Fabric:  Sharding  Setup   •  Set  up  some  groups   – my_global –  for  global  updates   – my_group.N  –  for  the  shards   – Add  servers  to  the  groups   •  Create  a  shard  mapping   – A  “distributed  database”   – Mapping  keys  to  shards   – Give  informaMon  on  what  tables  are  sharded   •  Add  shards   25  
  • 26. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  Fabric:   •  Moving  a  shard  (id=5)  from  exisMng  group  to  another  (my_group.8)   mysqlfabric sharding move 5 my_group.8 •  Splirng  a  shard  (id=5)  into  two  parts  with  new  half  stored  in  group   my_group.6 mysqlfabric sharding split 5 my_group.6 Moving  and  Spling  Shards   26  
  • 27. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   •  Indicate  tables  to  be  used  in  query   – Property:  tables   – Fabric  will  compute  map   •  Indicate  read-­‐only  queries   – Property:  mode   •  Provide  sharding  key   – Property:  key   – Fabric  will  compute  shard   •  Joins  within  the  shard  (or  with   global  tables)  supported   Connector  API:  Shard  Specific  Query   conn.set_property(tables=["test.subscribers"], key=sub_no, mode=fabric.MODE_READONLY) cur = conn.cursor() cur.execute( "SELECT first_name, last_name FROM subscribers WHERE sub_no = %s", (sub_no) ) for row in cur: print row 27  
  • 28. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   •  Set  global  scope   – Property:  scope   – Query  goes  to  global    group   Connector  API:  Global  Update   conn.set_property(tables=[], scope='GLOBAL') cur = conn.cursor() cur.execute("ALTER TABLE test.subscribers ADD nickname VARCHAR(64)") 28  
  • 29. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   > mysqlfabric provider register my_stack 
 my_user my_password 
 http://8.21.28.222:5000/v2.0/ 
 --tenant=my_user_role 
 --provider_type=OPENSTACK > mysqlfabric machine create my_stack 
 --image id=8c92f0d9-79f1-4d95- b398-86bda7342a2d 
 --flavor name=m1.small > mysqlfabric machine list my_stack •  Fabric  creates  new  machines,    &   MySQL  Servers   – IniMally  using  OpenStack  Nova   – Other  frameworks  on  the  way   (OpenStack  Trove,  AWS,…)   •  Server  setup   – Clones  slave   – Sets  up  replicaMon   – Performs  custom  operaMons   29   Server  Provisioning  –  OpenStack  Nova  IntegraMon  
  • 30. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Extensible  Architecture   MySQL  Fabric  Node   Connector   Connector   Connector   MySQL  Fabric   Framework   AMQP?   MySQL   XML-­‐RPC   Executor   State  Store   (persister)   Shard   HA   Prov   ???   MySQL   Backing   Store   SQL   30  
  • 31. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   •  Connector  API  Extensions   –  Support  TransacMons   –  Support  full  SQL   •  Fabric-­‐Aware  Connectors  at  GA:   –  PHP  +  Doctrine,  Python,  Java  +  Hibernate,  .NET,   C  (pre-­‐GA)     •  Decision  logic  in  connector   –  Reducing  latency  &network  load   •  Load  Balancing   –  Read-­‐Write  Split   –  Distribute  transacMons   •  Global  Updates   –  Global  data   –  Schema  updates   •  Sharding  FuncMons   –  Range   –  (Consistent)  Hash   •  Shard  OperaMons   –  Shard  move   –  Shard  split   •  Server  Provisioning   –  OpenStack  IntegraMon  (&  other  frameworks)   MySQL  Fabric:  Goals  &  Features   31  
  • 32. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   •  RouMng  is  dependent  on  Fabric-­‐aware   connectors   –  Currently  Java  (+  Hibernate),  PHP  (+  Doctrine),   Python,  .NET  &  C  (labs)   •  MySQL  Fabric  node  is  a  single  (non-­‐ redundant  process)   –  HA  Maintained  as  connectors  conMnue  to  route   using  local  caches   •  Establishes  asynchronous  replicaMon   –  Manual  steps  to  switch  to  semisynchronous   •  Sharding  not  completely  transparent  to   applicaMon  (must  provide  shard  key  –   column  from  applicaMon  schema)   •  No  cross-­‐shard  joins  or  other  queries   •  Management  is  through  CLI,  MySQL   protocol  or  XML/RPC  API   –  No  GUI   MySQL  Fabric  –  Current  LimitaMons   32  
  • 33. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Program  Agenda   Requirements  for  Next  Gen  Services   Simple,  transparent  High  Availability   Delivering  SQL  &  ACID  at  scale   Where  MySQL  Fabric  fits     1   2   3   4   33  
  • 34. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Oracle  MySQL  HA  &  Scaling  SoluMons   MySQL   ReplicaGon   MySQL   Fabric   Oracle  VM   Template   Oracle   Clusterware   Solaris   Cluster   Windows   Cluster   DRBD   MySQL   Cluster   App  Auto-­‐Failover   ✖   ✔   ✔   ✔   ✔   ✔   ✔   ✔   Data  Layer  Auto-­‐Failover   ✖   ✔   ✔   ✔   ✔   ✔   ✔   ✔   Zero  Data  Loss   MySQL  5.7   MySQL  5.7   ✔   ✔   ✔   ✔   ✔   ✔   Plaxorm  Support   All   All   Linux   Linux   Solaris   Windows   Linux   All   Clustering  Mode   Master  +   Slaves   Master  +   Slaves   AcGve/ Passive   AcGve/ Passive   AcGve/ Passive   AcGve/ Passive   AcGve/ Passive   MulG-­‐ Master   Failover  Time   N/A   Secs   Secs  +   Secs  +   Secs  +   Secs  +   Secs  +   <  1  Sec   Scale-­‐out   Reads   ✔   ✖   ✖   ✖   ✖   ✖   ✔   Cross-­‐shard  operaMons   N/A   ✖   N/A   N/A   N/A   N/A   N/A   ✔   Transparent  rouMng   ✖   For  HA   ✔   ✔   ✔   ✔   ✔   ✔   Shared  Nothing   ✔   ✔   ✖   ✖   ✖   ✖   ✔   ✔   Storage  Engine   InnoDB+   InnoDB+   InnoDB+   InnoDB+   InnoDB+   InnoDB+   InnoDB+   NDB   Single  Vendor  Support   ✔   ✔   ✔   ✔   ✔   ✖   ✔   ✔   34  
  • 35. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  Fabric  Resources   •  Download  and  try     hep://dev.mysql.com/downloads/fabric/     •  DocumentaMon   hep://dev.mysql.com/doc/mysql-­‐uMliMes/en/fabric.html     •  MySQL  Fabric  on  the  web   hep://www.mysql.com/products/enterprise/fabric.html     •  Forum  (MySQL  Fabric,  Sharding,  HA,  UMliMes)   hep://forums.mysql.com/list.php?144     •  Tutorial:  MySQL  Fabric  -­‐  adding  High  Availability  and  Scaling  to  MySQL   hep://www.clusterdb.com/mysql-­‐fabric/mysql-­‐fabric-­‐adding-­‐high-­‐availability-­‐and-­‐scaling-­‐to-­‐mysql     •  White  Paper:  MySQL  Fabric  -­‐  A  Guide  to  Managing  MySQL  High  Availability  and  Scaling  Out   hep://www.mysql.com/why-­‐mysql/white-­‐papers/mysql-­‐fabric-­‐product-­‐guide     •  Webinar  Replays   hep://www.mysql.com/news-­‐and-­‐events/on-­‐demand-­‐webinars/#en-­‐20-­‐41     35