SlideShare a Scribd company logo
1 of 51
Download to read offline
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
NoSQL	
  and	
  SQL	
  
The	
  Best	
  of	
  Both	
  Worlds	
  
	
  
	
  
	
  
梶山隆輔	
  /	
  Ryusuke	
  KAJIYAMA	
  
MySQL	
  Sales	
  ConsulKng	
  Senior	
  Manager	
  
MySQL	
  Global	
  Business	
  Unit	
  
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Safe	
  Harbor	
  Statement	
  
The	
  following	
  is	
  intended	
  to	
  outline	
  our	
  general	
  product	
  direcKon.	
  It	
  is	
  intended	
  for	
  
informaKon	
  purposes	
  only,	
  and	
  may	
  not	
  be	
  incorporated	
  into	
  any	
  contract.	
  It	
  is	
  not	
  a	
  
commitment	
  to	
  deliver	
  any	
  material,	
  code,	
  or	
  funcKonality,	
  and	
  should	
  not	
  be	
  relied	
  upon	
  
in	
  making	
  purchasing	
  decisions.	
  The	
  development,	
  release,	
  and	
  Kming	
  of	
  any	
  features	
  or	
  
funcKonality	
  described	
  for	
  Oracle’s	
  products	
  remains	
  at	
  the	
  sole	
  discreKon	
  of	
  Oracle.	
  
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
The	
  Data	
  Management	
  Landscape	
Source: 451Group
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Session	
  Agenda	
  
•  NoSQL	
  –	
  What	
  are	
  people	
  looking	
  for?	
  
•  RDBMS	
  –	
  What	
  advantages	
  do	
  they	
  sKll	
  have?	
  
•  How	
  MySQL	
  Delivers	
  the	
  Best	
  of	
  Both	
  Worlds	
  
– MySQL	
  Cluster	
  
•  NoSQL	
  aZributes:	
  Scale-­‐out,	
  performance,	
  ease-­‐of-­‐use,	
  schema	
  flexibility,	
  on-­‐line	
  operaKons	
  
•  NoSQL	
  APIs	
  
– Key-­‐Value	
  store	
  access	
  to	
  InnoDB	
  (Memcached)	
  
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Key-­‐Value	
  Store	
  
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Document	
  Store	
  
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Graph	
  Database	
  
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
•  Massive	
  scalability	
  
– No	
  applicaKon-­‐level	
  sharding	
  
•  Performance	
  
•  High	
  Availability/Fault	
  Tolerance	
  
•  Ease	
  of	
  use	
  
– Simple	
  operaKons/administraKon	
  
– Simple	
  APIs	
  
– Quickly	
  evolve	
  applicaKon	
  &	
  schema	
  
Scalability	
  
Performance	
  
HA	
  
Ease	
  of	
  use	
  
What	
  NoSQL	
  must	
  deliver	
  
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
NoSQL	
  
Simple	
  access	
  paZerns	
  
Compromise	
  on	
  consistency	
  
for	
  performance	
  
Ad-­‐hoc	
  data	
  format	
  
Simple	
  operaKon	
  
SQL	
  
Complex	
  queries	
  with	
  joins	
  
ACID	
  transacKons	
  
Well	
  defined	
  schemas	
  
Rich	
  set	
  of	
  tools	
  
• No	
  best	
  single	
  soluKon	
  fits	
  all	
  
• Mix	
  and	
  match	
  
SKll	
  a	
  role	
  for	
  SQL	
  (RDBMS)?	
  
Scalability	
  
Performance	
  
HA	
  
Ease	
  of	
  use	
  
SQL/Joins	
  
ACID	
  TransacBons	
  
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  Cluster	
  Overview	
  
•  Auto-­‐Sharding,	
  MulK-­‐Master	
  
•  ACID	
  Compliant,	
  OLTP	
  +	
  Real-­‐Time	
  AnalyKcs	
  
HIGH	
  SCALE,	
  READS	
  +	
  
WRITES	
  
•  Shared	
  nothing,	
  no	
  Single	
  Point	
  of	
  Failure	
  
•  Self	
  Healing	
  +	
  On-­‐Line	
  OperaKons	
  
99.999%	
  AVAILABILITY	
  
•  In-­‐Memory	
  OpKmizaKon	
  +	
  Disk-­‐Data	
  
•  Predictable	
  Low-­‐Latency,	
  Bounded	
  Access	
  Time	
  
REAL-­‐TIME	
  
•  Key/Value	
  +	
  Complex,	
  RelaKonal	
  Queries	
  
•  SQL	
  +	
  Memcached	
  +	
  JavaScript	
  +	
  Java	
  +	
  HTTP/REST	
  &	
  C++	
  
SQL	
  +	
  NoSQL	
  
•  Open	
  Source	
  +	
  Commercial	
  EdiKons	
  
•  Commodity	
  hardware	
  +	
  Management,	
  Monitoring	
  Tools	
  
LOW	
  TCO	
  
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Who’s	
  Using	
  MySQL	
  Cluster?	
  
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  Cluster	
  Architecture	
  
	
  
MySQL	
  Cluster	
  Data	
  Nodes	
  
Clients	
  
ApplicaKon	
  Layer	
  
Data	
  Layer	
  
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  Cluster	
  Scaling	
  
	
  
MySQL	
  Cluster	
  Data	
  Nodes	
  
Clients	
  
ApplicaKon	
  Layer	
  
Data	
  Layer	
  
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  Cluster	
  HA	
  
	
  
MySQL	
  Cluster	
  Data	
  Nodes	
  
Clients	
  
ApplicaKon	
  Layer	
  
Data	
  Layer	
  
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
On-­‐line	
  OperaKons	
  
•  Scale	
  the	
  cluster	
  (add	
  &	
  remove	
  nodes	
  on-­‐line)	
  
•  ReparKKon	
  tables	
  
•  Upgrade	
  /	
  patch	
  servers	
  &	
  OS	
  
•  Upgrade	
  /	
  patch	
  MySQL	
  Cluster	
  
•  Back-­‐Up	
  
•  Evolve	
  the	
  schema	
  on-­‐line,	
  in	
  real-­‐Kme	
  
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
1.2	
  Billion	
  UPDATEs	
  per	
  Minute	
  
•  NoSQL	
  C++	
  API,	
  
flexaSynch	
  benchmark	
  
•  30	
  x	
  Intel	
  E5-­‐2600	
  Intel	
  
Servers,	
  2	
  socket,	
  64GB	
  
•  ACID	
  TransacKons,	
  with	
  
Synchronous	
  ReplicaKon	
  
0
5
10
15
20
25
2 4 6 8 10 12 14 16 18 20 22 24 26 28 30
MillionsofUPDATEsperSecond
MySQL Cluster Data Nodes
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
•  Memory	
  opKmized	
  tables	
  
– Durable	
  
– Mix	
  with	
  disk-­‐based	
  tables	
  
•  Massively	
  concurrent	
  OLTP	
  
•  Distributed	
  Joins	
  for	
  analyKcs	
  
•  Parallel	
  table	
  scans	
  for	
  non-­‐indexed	
  
searches	
  
•  MySQL	
  Cluster	
  7.4	
  FlexAsych	
  
– 200M	
  NoSQL	
  Reads/Second	
  
3/15/15	
   30	
  
MySQL	
  Cluster	
  7.4	
  NoSQL	
  Performance	
  
200	
  Million	
  NoSQL	
  Reads/Second	
  
Copyright	
  2015,	
  oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved	
  
!"!!!!
!50,000,000!!
!100,000,000!!
!150,000,000!!
!200,000,000!!
!250,000,000!!
2! 4! 6! 8! 10! 12! 14! 16! 18! 20! 22! 24! 26! 28! 30! 32!
Reads&per&second&
Data&Nodes&
FlexAsync&Reads&
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
•  Memory	
  opKmized	
  tables	
  
– Durable	
  
– Mix	
  with	
  disk-­‐based	
  tables	
  
•  Massively	
  concurrent	
  OLTP	
  
•  Distributed	
  Joins	
  for	
  analyKcs	
  
•  Parallel	
  table	
  scans	
  for	
  non-­‐indexed	
  
searches	
  
•  MySQL	
  Cluster	
  7.4	
  DBT2	
  BM	
  
– 2.5M	
  SQL	
  Statements/Second	
  
3/15/15	
   31	
  
MySQL	
  Cluster	
  7.4	
  SQL	
  Performance	
  
2.5M	
  SQL	
  Statements/Second	
  
Copyright	
  2015,	
  oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved	
  
!"!!!!
!500,000!!
!1,000,000!!
!1,500,000!!
!2,000,000!!
!2,500,000!!
!3,000,000!!
2! 4! 6! 8! 10! 12! 14! 16!
SQL$Statements/sec$
Data$Nodes$
DBT2$SQL$Statements$per$Second$
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Scalability	
   !"
Performance	
   !"
HA	
   !"
Ease	
  of	
  use	
   !"
SQL/Joins	
   !"
ACID	
  TransacBons	
   !"
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  Cluster	
  Auto-­‐Installer	
  
• Fast	
  configuraKon	
  
• Auto-­‐discovery	
  
• Workload	
  opKmized	
  
• Repeatable	
  best	
  pracKces	
  
Specify	
  
Workload	
  
Auto-­‐
Discover	
  
Define	
  
Topology	
  Deploy	
  
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Scalability	
   !"
Performance	
   !"
HA	
   !"
Ease	
  of	
  use	
   !"
SQL/Joins	
   !"
ACID	
  TransacBons	
   !"
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
NoSQL	
  Access	
  to	
  MySQL	
  Cluster	
  data	
  
Apps	
 Apps	
 Apps	
 Apps	
 Apps	
 Apps	
 Apps	
 Apps	
 Apps	
 Apps	
 Apps	
 Apps	
JPA	
Cluster	
  JPA	
PHP	
 Perl	
 Python	
 Ruby	
 JDBC	
 Cluster	
  J	
 JS	
 Apache	
 Memcached	
MySQL	
 JNI	
 Node.JS	
 mod_ndb	
 ndb_eng	
NDB	
  API	
  (C++)	
MySQL	
  Cluster	
  Data	
  Nodes	
  
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  Cluster	
  7.1:	
  ClusterJ/JPA	
  
•  Domain	
  Object	
  Model	
  Persistence	
  API	
  (ClusterJ):	
  
•  Java	
  API	
  
•  High	
  performance,	
  low	
  latency	
  
•  Feature	
  rich	
  
•  JPA	
  interface	
  built	
  upon	
  this	
  new	
  Java	
  layer:	
  
•  Java	
  Persistence	
  API	
  compliant	
  
•  Implemented	
  as	
  an	
  OpenJPA	
  plugin	
  
•  Uses	
  ClusterJ	
  where	
  possible,	
  reverts	
  to	
  JDBC	
  for	
  some	
  
operaKons	
  
•  Higher	
  performance	
  than	
  JDBC	
  
•  More	
  natural	
  for	
  most	
  Java	
  designers	
  
•  Easier	
  Cluster	
  adopKon	
  for	
  web	
  applicaKons	
  
Apps	
 Apps	
 Apps	
 Apps	
JPA	
Cluster	
  JPA	
JDBC	
 Cluster	
  J	
MySQL	
 JNI	
NDB	
  API	
  (C++)	
MySQL	
  Cluster	
  Data	
  Nodes	
  
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  Cluster	
  7.2:	
  Memcached	
  
•  Memcached	
  is	
  a	
  distributed	
  memory	
  based	
  	
  
hash-­‐key/value	
  store	
  with	
  no	
  persistence	
  to	
  disk	
  
•  NoSQL,	
  simple	
  API,	
  popular	
  with	
  developers	
  
•  MySQL	
  Cluster	
  already	
  provides	
  scalable,	
  in-­‐
memory	
  performance	
  with	
  NoSQL	
  (hashed)	
  
access	
  as	
  well	
  as	
  persistence	
  
•  Provide	
  the	
  Memcached	
  API	
  but	
  map	
  to	
  NDB	
  API	
  calls	
  
•  Writes-­‐in-­‐place,	
  so	
  no	
  need	
  to	
  invalidate	
  cache	
  
•  Simplifies	
  architecture	
  as	
  caching	
  &	
  database	
  
integrated	
  into	
  1	
  Ker	
  
•  Access	
  data	
  from	
  exisKng	
  relaKonal	
  tables	
  
Apps	
Memcached	
ndb_eng	
NDB	
  API	
  (C++)	
MySQL	
  Cluster	
  Data	
  Nodes	
  
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Schema-­‐Free	
  apps	
  
•  Rapid	
  applicaKon	
  evoluKon	
  
– New	
  types	
  of	
  data	
  constantly	
  
added	
  
– No	
  Kme	
  to	
  get	
  schema	
  extended	
  
– Missing	
  skills	
  to	
  extend	
  schema	
  
– IniKally	
  roll	
  out	
  to	
  just	
  a	
  few	
  users	
  
– Constantly	
  adding	
  to	
  live	
  system	
  
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Cluster	
  &	
  Memcached	
  –	
  Schema-­‐Free	
  
<town:maidenhead,SL6>
key	
   value	
  
<town:maidenhead,SL6>
key	
   value	
  
Key	
   Value	
  
town:maidenhead	
   SL6	
  
generic	
  table	
  
ApplicaKon	
  view	
  
SQL	
  view	
  
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Cluster	
  &	
  Memcached	
  -­‐	
  Configured	
  Schema	
  
<town:maidenhead,SL6>
prefix	
   key	
   value	
  
<town:maidenhead,SL6>
key	
   value	
  
Prefix	
   Table	
   Key-­‐col	
   Val-­‐col	
   policy	
  
town:	
   mapzip	
   town	
   code	
   cluster	
  
Config	
  tables	
  
town	
   ...	
   code	
   ...	
  
maidenhead	
   ...	
   SL6	
   ...	
  
mapzip	
  
ApplicaKon	
  view	
  
SQL	
  view	
  
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Node.js	
  NoSQL	
  API	
  
•  NaKve	
  JavaScript	
  access	
  to	
  MySQL	
  Cluster	
  
– End-­‐to-­‐End	
  JavaScript:	
  browser	
  to	
  app	
  &	
  DB	
  
– Storing	
  and	
  retrieving	
  JavaScript	
  objects	
  
directly	
  in	
  MySQL	
  Cluster	
  	
  
– Eliminate	
  SQL	
  transformaKon	
  
•  Implemented	
  as	
  a	
  module	
  for	
  node.js	
  
– Integrates	
  Cluster	
  API	
  library	
  within	
  web	
  app	
  
•  Couple	
  high	
  performance,	
  distributed	
  apps,	
  
with	
  high	
  performance	
  distributed	
  database	
  
•  OpKonally	
  routes	
  through	
  MySQL	
  Server	
  
V8 JavaScript Engine
MySQL Cluster Node.js Module
MySQL Cluster Data Nodes
Clients
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
What	
  does	
  an	
  asynchronous	
  API	
  mean?	
  
do_stuff1(data,
callback1)
callback1(results) do_stuff2(data,
callback2)
callback2(results)
Get	
  on	
  with	
  other	
  stuff	
   Get	
  on	
  with	
  other	
  stuff	
  
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  Cluster	
  7.3:	
  JavaScript	
  Connector	
  for	
  node	
  
var nosql = require('mysql-js');
var annotations = new
nosql.TableMapping('towns').applyT
oClass(Town);
var dbProperties =
nosql.ConnectionProperties('ndb');
nosql.openSession(dbProperties,
annotations, onSession);
Modular connector with
various back-end
adapters:
•  ndb: low-level native
access to MySQL Cluster
•  mysql: access to any
MySQL server (translates
operations to SQL
statements)
Tutorial https://blogs.oracle.com/MySQL/entry/mysql_cluster_tutorial_nosql_api
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
var onSession = function(err, session) {
if (err) {console.log(err);
process.exit(0);} else {
var data = new Town('Maidenhead',
'Berkshire');
session.persist(data, onInsert, data,
session);
}
};
MySQL	
  Cluster	
  NoSQL	
  API	
  for	
  Node.js	
  
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  Cluster	
  NoSQL	
  API	
  for	
  Node.js	
  
var onInsert = function(err, object, session) {
if (err) {console.log(err);} else {
console.log('Inserted: ' +
JSON.stringify(object));
session.find(Town, 'Maidenhead',
onFind);
}
};
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  Cluster	
  NoSQL	
  API	
  for	
  Node.js	
  
var onFind = function(err, result) {
if (err) {console.log(err);} else {
console.log('Found: ' +
JSON.stringify(result));
}
process.exit(0);
};
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
NoSQL	
  API	
  for	
  Node.js	
  &	
  FKs	
  
FKs	
  enforced	
  on	
  all	
  APIs:	
  
{ message: 'Error',
sqlstate: '23000',
ndb_error: null,
cause:
{message: 'Foreign key constraint violated: No parent row found [255]',
sqlstate: '23000',
ndb_error:
{ message: 'Foreign key constraint violated: No parent row found',
code: 255,
classification: 'ConstraintViolation',
handler_error_code: 151,
status: 'PermanentError' },
cause: null } }
	
  
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  5.6	
  Memcached	
  with	
  InnoDB	
  
0
10000
20000
30000
40000
50000
60000
70000
80000
8 32 128 512
TPS
Client Connections
Memcached API
SQL
Clients	
  and	
  ApplicaBons	
  
MySQL	
  Server	
  
Memcached	
  Plug-­‐in	
  
innodb_	
  
memcached	
  
local	
  cache	
  
(opKonal)	
  
Handler	
  API	
   InnoDB	
  API	
  
InnoDB	
  Storage	
  Engine	
  
mysqld	
  process	
  
SQL	
   Memcached	
  Protocol	
  
Up	
  to	
  9x	
  Higher	
  “SET	
  /	
  INSERT”	
  Throughput	
  
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
InnoDB	
  as	
  a	
  NoSQL	
  Database	
•  A	
  NoSQL	
  product	
  such	
  as	
  Memcached	
  directly	
  accesses	
  InnoDB	
  
•  Simple	
  commands,	
  much	
  smaller	
  network	
  transmit	
  packages	
  
•  Persistent	
  storage	
  from	
  InnoDB	
  
•  Index	
  on	
  the	
  key	
  column	
  	
  
•  Full	
  ACID	
  compliance	
  
•  Bypass	
  OpKmizer	
  and	
  QP	
  layer	
  of	
  MySQL	
  
•  Dual	
  access	
  of	
  data	
  (SQL	
  and	
  Memcached)	
  
•  Enabling	
  binlog	
  with	
  innodb_api_enable_binlog	
  
•  ConfiguraKon	
  Parameters	
  
– daemon_memcached_r_batch_size	
  
– daemon_memcached_w_batch_size	
  
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
InnoDB	
  memcached	
  Plugin	
•  Supported	
  Plaqorm	
  
– Linux,	
  Solaris,	
  and	
  Mac	
  OS	
  X	
  
•  Sosware	
  Prerequisites	
  
– You	
  must	
  have	
  libevent	
  installed,	
  since	
  it	
  is	
  required	
  by	
  memcached	
  
•  Setng	
  Up	
  Required	
  Tables	
  
– run	
  the	
  configuraKon	
  script	
  scripts/innodb_memcached_config.sql to	
  
install	
  the	
  necessary	
  tables	
  
•  Installing	
  the	
  Daemon	
  Plugin	
  
mysql> install plugin daemon_memcached soname "libmemcached.so”;
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
InnoDB	
  memcached	
  Plugin	
•  ConfiguraKon	
  tables	
  created	
  by	
  install	
  script	
  
mysql> use innodb_memcache;
Database changed
mysql> show tables;
+---------------------------+
| Tables_in_innodb_memcache |
+---------------------------+
| cache_policies |
| config_options |
| containers |
+---------------------------+
3 rows in set (0.01 sec)
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
InnoDB	
  memcached	
  Plugin	
•  The	
  mapping	
  is	
  done	
  through	
  specifying	
  corresponding	
  column	
  values	
  in	
  
containers	
  table:	
  
mysql> desc containers;
+------------------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------------------+--------------+------+-----+---------+-------+
| name | varchar(50) | NO | PRI | NULL | |
| db_schema | varchar(250) | NO | | NULL | |
| db_table | varchar(250) | NO | | NULL | |
| key_columns | varchar(250) | NO | | NULL | |
| value_columns | varchar(250) | YES | | NULL | |
| flags | varchar(250) | NO | | 0 | |
| cas_column | varchar(250) | YES | | NULL | |
| expire_time_column | varchar(250) | YES | | NULL | |
| unique_idx_name_on_key | varchar(250) | NO | | NULL | |
+------------------------+--------------+------+-----+---------+-------+
9 rows in set (0.02 sec)
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
InnoDB	
  memcached	
  Plugin	
•  Mapping	
  to	
  table	
  can	
  be	
  added	
  via	
  SQL	
  
•  To	
  switch	
  to	
  table	
  ”db1/tbl1",	
  and	
  get	
  the	
  value	
  corresponding	
  to	
  “key_a”	
  in	
  
"get	
  @@new_mapping_name.key”	
  format;	
  
	
  
	
  
prefix	
  "@@"	
  is	
  required	
  for	
  signaling	
  a	
  mapped	
  table	
  change	
  
•  The	
  default	
  delimiter	
  that	
  separates	
  the	
  "mapping	
  name"	
  and	
  key	
  value	
  is	
  	
  ".”,	
  
which	
  can	
  be	
  changed	
  opKon	
  in	
  the	
  "config_opKons"	
  system	
  table	
  with	
  name	
  
of	
  "table_map_delimiter"	
  
INSERT INTO containers VALUES ("setup_3", ”db1", ”tbl1",
"c1", "c2", "c3", "c4", "c5", "idx");
get @@setup_3.key_a
(OR	
  simply, get @@setup_3)
INSERT INTO config_options VALUES("table_map_delimiter", “|");
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
HTTP	
  Plugin	
  for	
  MySQL	
  
•  Server	
  Plugin	
  adds	
  HTTP(S)	
  endpoints	
  to	
  MySQL	
  
•  Results	
  are	
  serialized	
  to	
  JSON	
  format	
  encoded	
  as	
  UTF8	
  
•  Provides	
  3	
  choices	
  of	
  User	
  Endpoint	
  Types	
  
– SQL	
  
– CRUD	
  -­‐	
  Key-­‐Value	
  
– JSON	
  -­‐	
  Document	
  
59	
  
labs.mysql.com	
  
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
•  json_valid()	
  
•  json_search()	
  
•  json_extract()	
  
•  json_replace()	
  
•  json_append()	
  
•  json_remove()	
  
•  json_set()	
  
•  json_merge()	
  
•  json_safe_merge()	
  
•  json_deep_merge()	
  
•  json_contains_key()	
  
•  json_depth()	
  
•  json_count()	
  
•  json_version()	
  
•  json_test_parser()	
  
JSON	
  SQL	
  FuncKons	
labs.mysql.com	
  
MySQL Cluster as Transactional NoSQL (KVS)

More Related Content

What's hot

MySQL High Availibility Solutions
MySQL High Availibility SolutionsMySQL High Availibility Solutions
MySQL High Availibility SolutionsMark Swarbrick
 
MySQL Enterprise Backup apr 2016
MySQL Enterprise Backup apr 2016MySQL Enterprise Backup apr 2016
MySQL Enterprise Backup apr 2016Ted Wennmark
 
MySQL Enterprise Monitor
MySQL Enterprise MonitorMySQL Enterprise Monitor
MySQL Enterprise MonitorTed Wennmark
 
Why MySQL High Availability Matters
Why MySQL High Availability MattersWhy MySQL High Availability Matters
Why MySQL High Availability MattersMatt Lord
 
MySQL for Software-as-a-Service (SaaS)
MySQL for Software-as-a-Service (SaaS)MySQL for Software-as-a-Service (SaaS)
MySQL for Software-as-a-Service (SaaS)Mario Beck
 
Netherlands Tech Tour - 07 MySQL Whats upcoming in 5.7
Netherlands Tech Tour - 07 MySQL Whats upcoming in 5.7Netherlands Tech Tour - 07 MySQL Whats upcoming in 5.7
Netherlands Tech Tour - 07 MySQL Whats upcoming in 5.7Mark Swarbrick
 
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
 
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
 
1 my sql20151219-kaji_ivan
1 my sql20151219-kaji_ivan1 my sql20151219-kaji_ivan
1 my sql20151219-kaji_ivanIvan Tu
 
MySQL Day Paris 2016 - MySQL HA: InnoDB Cluster and NDB Cluster
MySQL Day Paris 2016 - MySQL HA: InnoDB Cluster and NDB ClusterMySQL Day Paris 2016 - MySQL HA: InnoDB Cluster and NDB Cluster
MySQL Day Paris 2016 - MySQL HA: InnoDB Cluster and NDB ClusterOlivier DASINI
 
MySQL Tech Tour 2015 - 5.7 Whats new
MySQL Tech Tour 2015 - 5.7 Whats newMySQL Tech Tour 2015 - 5.7 Whats new
MySQL Tech Tour 2015 - 5.7 Whats newMark Swarbrick
 
MySQL Security
MySQL SecurityMySQL Security
MySQL SecurityMario Beck
 
Oracle OpenWorld 2013 - HOL9737 MySQL Replication Best Practices
Oracle OpenWorld 2013 - HOL9737 MySQL Replication Best PracticesOracle OpenWorld 2013 - HOL9737 MySQL Replication Best Practices
Oracle OpenWorld 2013 - HOL9737 MySQL Replication Best PracticesSven Sandberg
 
MySQL 5.7: Focus on Replication
MySQL 5.7: Focus on ReplicationMySQL 5.7: Focus on Replication
MySQL 5.7: Focus on ReplicationMario Beck
 
NoSQL and MySQL: News about JSON
NoSQL and MySQL: News about JSONNoSQL and MySQL: News about JSON
NoSQL and MySQL: News about JSONMario Beck
 
MySQL Community and Commercial Edition
MySQL Community and Commercial EditionMySQL Community and Commercial Edition
MySQL Community and Commercial EditionMario Beck
 
MySQL Document Store
MySQL Document StoreMySQL Document Store
MySQL Document StoreMario Beck
 
MySQL NoSQL Document Store
MySQL NoSQL Document StoreMySQL NoSQL Document Store
MySQL NoSQL Document StoreMark Swarbrick
 
MySQL Intro JSON NoSQL
MySQL Intro JSON NoSQLMySQL Intro JSON NoSQL
MySQL Intro JSON NoSQLMark Swarbrick
 
MySQL 5.7 InnoDB Cluster (Jan 2018)
MySQL 5.7 InnoDB Cluster (Jan 2018)MySQL 5.7 InnoDB Cluster (Jan 2018)
MySQL 5.7 InnoDB Cluster (Jan 2018)Olivier DASINI
 

What's hot (20)

MySQL High Availibility Solutions
MySQL High Availibility SolutionsMySQL High Availibility Solutions
MySQL High Availibility Solutions
 
MySQL Enterprise Backup apr 2016
MySQL Enterprise Backup apr 2016MySQL Enterprise Backup apr 2016
MySQL Enterprise Backup apr 2016
 
MySQL Enterprise Monitor
MySQL Enterprise MonitorMySQL Enterprise Monitor
MySQL Enterprise Monitor
 
Why MySQL High Availability Matters
Why MySQL High Availability MattersWhy MySQL High Availability Matters
Why MySQL High Availability Matters
 
MySQL for Software-as-a-Service (SaaS)
MySQL for Software-as-a-Service (SaaS)MySQL for Software-as-a-Service (SaaS)
MySQL for Software-as-a-Service (SaaS)
 
Netherlands Tech Tour - 07 MySQL Whats upcoming in 5.7
Netherlands Tech Tour - 07 MySQL Whats upcoming in 5.7Netherlands Tech Tour - 07 MySQL Whats upcoming in 5.7
Netherlands Tech Tour - 07 MySQL Whats upcoming in 5.7
 
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
 
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
 
1 my sql20151219-kaji_ivan
1 my sql20151219-kaji_ivan1 my sql20151219-kaji_ivan
1 my sql20151219-kaji_ivan
 
MySQL Day Paris 2016 - MySQL HA: InnoDB Cluster and NDB Cluster
MySQL Day Paris 2016 - MySQL HA: InnoDB Cluster and NDB ClusterMySQL Day Paris 2016 - MySQL HA: InnoDB Cluster and NDB Cluster
MySQL Day Paris 2016 - MySQL HA: InnoDB Cluster and NDB Cluster
 
MySQL Tech Tour 2015 - 5.7 Whats new
MySQL Tech Tour 2015 - 5.7 Whats newMySQL Tech Tour 2015 - 5.7 Whats new
MySQL Tech Tour 2015 - 5.7 Whats new
 
MySQL Security
MySQL SecurityMySQL Security
MySQL Security
 
Oracle OpenWorld 2013 - HOL9737 MySQL Replication Best Practices
Oracle OpenWorld 2013 - HOL9737 MySQL Replication Best PracticesOracle OpenWorld 2013 - HOL9737 MySQL Replication Best Practices
Oracle OpenWorld 2013 - HOL9737 MySQL Replication Best Practices
 
MySQL 5.7: Focus on Replication
MySQL 5.7: Focus on ReplicationMySQL 5.7: Focus on Replication
MySQL 5.7: Focus on Replication
 
NoSQL and MySQL: News about JSON
NoSQL and MySQL: News about JSONNoSQL and MySQL: News about JSON
NoSQL and MySQL: News about JSON
 
MySQL Community and Commercial Edition
MySQL Community and Commercial EditionMySQL Community and Commercial Edition
MySQL Community and Commercial Edition
 
MySQL Document Store
MySQL Document StoreMySQL Document Store
MySQL Document Store
 
MySQL NoSQL Document Store
MySQL NoSQL Document StoreMySQL NoSQL Document Store
MySQL NoSQL Document Store
 
MySQL Intro JSON NoSQL
MySQL Intro JSON NoSQLMySQL Intro JSON NoSQL
MySQL Intro JSON NoSQL
 
MySQL 5.7 InnoDB Cluster (Jan 2018)
MySQL 5.7 InnoDB Cluster (Jan 2018)MySQL 5.7 InnoDB Cluster (Jan 2018)
MySQL 5.7 InnoDB Cluster (Jan 2018)
 

Viewers also liked

[Preview] MySQL session at Open Source Conference 2014 .Enterprise Osaka
[Preview] MySQL session at Open Source Conference 2014 .Enterprise Osaka[Preview] MySQL session at Open Source Conference 2014 .Enterprise Osaka
[Preview] MySQL session at Open Source Conference 2014 .Enterprise OsakaRyusuke Kajiyama
 
[Java Küche RDB 最前線 2015] MySQL 5.7技術アップデート
[Java Küche RDB 最前線 2015] MySQL 5.7技術アップデート[Java Küche RDB 最前線 2015] MySQL 5.7技術アップデート
[Java Küche RDB 最前線 2015] MySQL 5.7技術アップデートRyusuke Kajiyama
 
[db tech showcase 2015 Sapporo HOKKAIDO] MySQL 5.7
[db tech showcase 2015 Sapporo HOKKAIDO] MySQL 5.7[db tech showcase 2015 Sapporo HOKKAIDO] MySQL 5.7
[db tech showcase 2015 Sapporo HOKKAIDO] MySQL 5.7Ryusuke Kajiyama
 
MySQL 5.7 & 最新開発状況 @ オープンソースカンファレンス20
MySQL 5.7 & 最新開発状況 @ オープンソースカンファレンス20MySQL 5.7 & 最新開発状況 @ オープンソースカンファレンス20
MySQL 5.7 & 最新開発状況 @ オープンソースカンファレンス20Ryusuke Kajiyama
 
[db tech showcase 2015 Sapporo HOKKAIDO] MySQL as document database!?
[db tech showcase 2015 Sapporo HOKKAIDO] MySQL as document database!?[db tech showcase 2015 Sapporo HOKKAIDO] MySQL as document database!?
[db tech showcase 2015 Sapporo HOKKAIDO] MySQL as document database!?Ryusuke Kajiyama
 
Art of MySQL Replication.
Art of MySQL Replication.Art of MySQL Replication.
Art of MySQL Replication.Mikiya Okuno
 
20150131 ChugokuDB-Shimane-MySQL
20150131 ChugokuDB-Shimane-MySQL20150131 ChugokuDB-Shimane-MySQL
20150131 ChugokuDB-Shimane-MySQLRyusuke Kajiyama
 
第九回中国地方DB勉強会 in 米子 MySQL 5.7+
第九回中国地方DB勉強会 in 米子 MySQL 5.7+第九回中国地方DB勉強会 in 米子 MySQL 5.7+
第九回中国地方DB勉強会 in 米子 MySQL 5.7+Ryusuke Kajiyama
 
MySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQL
MySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQLMySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQL
MySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQLRyusuke Kajiyama
 
MySQLチューニング
MySQLチューニングMySQLチューニング
MySQLチューニングyoku0825
 
MySQL 5.7とレプリケーションにおける改良
MySQL 5.7とレプリケーションにおける改良MySQL 5.7とレプリケーションにおける改良
MySQL 5.7とレプリケーションにおける改良Shinya Sugiyama
 
Pi4Jで簡単! ラズパイでトイレ空室管理システムを つくってみたよ
Pi4Jで簡単!   ラズパイでトイレ空室管理システムを つくってみたよPi4Jで簡単!   ラズパイでトイレ空室管理システムを つくってみたよ
Pi4Jで簡単! ラズパイでトイレ空室管理システムを つくってみたよYoshio Kajikuri
 
Shlideshare
ShlideshareShlideshare
Shlidesharehyun
 

Viewers also liked (13)

[Preview] MySQL session at Open Source Conference 2014 .Enterprise Osaka
[Preview] MySQL session at Open Source Conference 2014 .Enterprise Osaka[Preview] MySQL session at Open Source Conference 2014 .Enterprise Osaka
[Preview] MySQL session at Open Source Conference 2014 .Enterprise Osaka
 
[Java Küche RDB 最前線 2015] MySQL 5.7技術アップデート
[Java Küche RDB 最前線 2015] MySQL 5.7技術アップデート[Java Küche RDB 最前線 2015] MySQL 5.7技術アップデート
[Java Küche RDB 最前線 2015] MySQL 5.7技術アップデート
 
[db tech showcase 2015 Sapporo HOKKAIDO] MySQL 5.7
[db tech showcase 2015 Sapporo HOKKAIDO] MySQL 5.7[db tech showcase 2015 Sapporo HOKKAIDO] MySQL 5.7
[db tech showcase 2015 Sapporo HOKKAIDO] MySQL 5.7
 
MySQL 5.7 & 最新開発状況 @ オープンソースカンファレンス20
MySQL 5.7 & 最新開発状況 @ オープンソースカンファレンス20MySQL 5.7 & 最新開発状況 @ オープンソースカンファレンス20
MySQL 5.7 & 最新開発状況 @ オープンソースカンファレンス20
 
[db tech showcase 2015 Sapporo HOKKAIDO] MySQL as document database!?
[db tech showcase 2015 Sapporo HOKKAIDO] MySQL as document database!?[db tech showcase 2015 Sapporo HOKKAIDO] MySQL as document database!?
[db tech showcase 2015 Sapporo HOKKAIDO] MySQL as document database!?
 
Art of MySQL Replication.
Art of MySQL Replication.Art of MySQL Replication.
Art of MySQL Replication.
 
20150131 ChugokuDB-Shimane-MySQL
20150131 ChugokuDB-Shimane-MySQL20150131 ChugokuDB-Shimane-MySQL
20150131 ChugokuDB-Shimane-MySQL
 
第九回中国地方DB勉強会 in 米子 MySQL 5.7+
第九回中国地方DB勉強会 in 米子 MySQL 5.7+第九回中国地方DB勉強会 in 米子 MySQL 5.7+
第九回中国地方DB勉強会 in 米子 MySQL 5.7+
 
MySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQL
MySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQLMySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQL
MySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQL
 
MySQLチューニング
MySQLチューニングMySQLチューニング
MySQLチューニング
 
MySQL 5.7とレプリケーションにおける改良
MySQL 5.7とレプリケーションにおける改良MySQL 5.7とレプリケーションにおける改良
MySQL 5.7とレプリケーションにおける改良
 
Pi4Jで簡単! ラズパイでトイレ空室管理システムを つくってみたよ
Pi4Jで簡単!   ラズパイでトイレ空室管理システムを つくってみたよPi4Jで簡単!   ラズパイでトイレ空室管理システムを つくってみたよ
Pi4Jで簡単! ラズパイでトイレ空室管理システムを つくってみたよ
 
Shlideshare
ShlideshareShlideshare
Shlideshare
 

Similar to MySQL Cluster as Transactional NoSQL (KVS)

Introduction to MySQL
Introduction to MySQLIntroduction to MySQL
Introduction to MySQLTed Wennmark
 
NoSQL and SQL - Why Choose? Enjoy the best of both worlds with MySQL
NoSQL and SQL - Why Choose? Enjoy the best of both worlds with MySQLNoSQL and SQL - Why Choose? Enjoy the best of both worlds with MySQL
NoSQL and SQL - Why Choose? Enjoy the best of both worlds with MySQLAndrew Morgan
 
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 MySQLTed Wennmark
 
A practical introduction to Oracle NoSQL Database - OOW2014
A practical introduction to Oracle NoSQL Database - OOW2014A practical introduction to Oracle NoSQL Database - OOW2014
A practical introduction to Oracle NoSQL Database - OOW2014Anuj Sahni
 
Using MySQL Enterprise Monitor for Continuous Performance Improvement
Using MySQL Enterprise Monitor for Continuous Performance ImprovementUsing MySQL Enterprise Monitor for Continuous Performance Improvement
Using MySQL Enterprise Monitor for Continuous Performance ImprovementMark Matthews
 
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
 
Simplify IT: Oracle SuperCluster
Simplify IT: Oracle SuperCluster Simplify IT: Oracle SuperCluster
Simplify IT: Oracle SuperCluster Fran Navarro
 
20141011 my sql clusterv01pptx
20141011 my sql clusterv01pptx20141011 my sql clusterv01pptx
20141011 my sql clusterv01pptxIvan Ma
 
Change Management for Oracle Database with SQLcl
Change Management for Oracle Database with SQLcl Change Management for Oracle Database with SQLcl
Change Management for Oracle Database with SQLcl Jeff Smith
 
Netherlands Tech Tour 05 - Strategic Operationalization of MySQL
Netherlands Tech Tour 05 - Strategic Operationalization of MySQLNetherlands Tech Tour 05 - Strategic Operationalization of MySQL
Netherlands Tech Tour 05 - Strategic Operationalization of MySQLMark Swarbrick
 
MySQL London Tech Tour March 2015 - Embedded Database of Choice
MySQL London Tech Tour March 2015 - Embedded Database of ChoiceMySQL London Tech Tour March 2015 - Embedded Database of Choice
MySQL London Tech Tour March 2015 - Embedded Database of ChoiceMark Swarbrick
 
MySQL for Oracle DBAs
MySQL for Oracle DBAsMySQL for Oracle DBAs
MySQL for Oracle DBAsMario Beck
 
Oracle database in cloud, dr in cloud and overview of oracle database 18c
Oracle database in cloud, dr in cloud and overview of oracle database 18cOracle database in cloud, dr in cloud and overview of oracle database 18c
Oracle database in cloud, dr in cloud and overview of oracle database 18cAiougVizagChapter
 
MySQL Enterprise Portfolio
MySQL Enterprise PortfolioMySQL Enterprise Portfolio
MySQL Enterprise PortfolioAbel Flórez
 
Oracle Enterprise Manager for MySQL
Oracle Enterprise Manager for MySQLOracle Enterprise Manager for MySQL
Oracle Enterprise Manager for MySQLMario Beck
 
Oracle MySQL Tutorial -- MySQL NoSQL Cloud Buenos Aires Nov, 13 2014
Oracle MySQL Tutorial -- MySQL NoSQL Cloud Buenos Aires Nov, 13 2014Oracle MySQL Tutorial -- MySQL NoSQL Cloud Buenos Aires Nov, 13 2014
Oracle MySQL Tutorial -- MySQL NoSQL Cloud Buenos Aires Nov, 13 2014Manuel Contreras
 
My sql en la nube conoce las mejores prácticas en administración y operación_...
My sql en la nube conoce las mejores prácticas en administración y operación_...My sql en la nube conoce las mejores prácticas en administración y operación_...
My sql en la nube conoce las mejores prácticas en administración y operación_...GeneXus
 
MySQL Enterprise Edition Overview
MySQL Enterprise Edition OverviewMySQL Enterprise Edition Overview
MySQL Enterprise Edition OverviewMario Beck
 

Similar to MySQL Cluster as Transactional NoSQL (KVS) (20)

Introduction to MySQL
Introduction to MySQLIntroduction to MySQL
Introduction to MySQL
 
NoSQL and SQL - Why Choose? Enjoy the best of both worlds with MySQL
NoSQL and SQL - Why Choose? Enjoy the best of both worlds with MySQLNoSQL and SQL - Why Choose? Enjoy the best of both worlds with MySQL
NoSQL and SQL - Why Choose? Enjoy the best of both worlds with MySQL
 
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 Fabric
MySQL FabricMySQL Fabric
MySQL Fabric
 
A practical introduction to Oracle NoSQL Database - OOW2014
A practical introduction to Oracle NoSQL Database - OOW2014A practical introduction to Oracle NoSQL Database - OOW2014
A practical introduction to Oracle NoSQL Database - OOW2014
 
Using MySQL Enterprise Monitor for Continuous Performance Improvement
Using MySQL Enterprise Monitor for Continuous Performance ImprovementUsing MySQL Enterprise Monitor for Continuous Performance Improvement
Using MySQL Enterprise Monitor for Continuous Performance Improvement
 
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)
 
Simplify IT: Oracle SuperCluster
Simplify IT: Oracle SuperCluster Simplify IT: Oracle SuperCluster
Simplify IT: Oracle SuperCluster
 
Oracle Database Cloud Service
Oracle Database Cloud ServiceOracle Database Cloud Service
Oracle Database Cloud Service
 
20141011 my sql clusterv01pptx
20141011 my sql clusterv01pptx20141011 my sql clusterv01pptx
20141011 my sql clusterv01pptx
 
Change Management for Oracle Database with SQLcl
Change Management for Oracle Database with SQLcl Change Management for Oracle Database with SQLcl
Change Management for Oracle Database with SQLcl
 
Netherlands Tech Tour 05 - Strategic Operationalization of MySQL
Netherlands Tech Tour 05 - Strategic Operationalization of MySQLNetherlands Tech Tour 05 - Strategic Operationalization of MySQL
Netherlands Tech Tour 05 - Strategic Operationalization of MySQL
 
MySQL London Tech Tour March 2015 - Embedded Database of Choice
MySQL London Tech Tour March 2015 - Embedded Database of ChoiceMySQL London Tech Tour March 2015 - Embedded Database of Choice
MySQL London Tech Tour March 2015 - Embedded Database of Choice
 
MySQL for Oracle DBAs
MySQL for Oracle DBAsMySQL for Oracle DBAs
MySQL for Oracle DBAs
 
Oracle database in cloud, dr in cloud and overview of oracle database 18c
Oracle database in cloud, dr in cloud and overview of oracle database 18cOracle database in cloud, dr in cloud and overview of oracle database 18c
Oracle database in cloud, dr in cloud and overview of oracle database 18c
 
MySQL Enterprise Portfolio
MySQL Enterprise PortfolioMySQL Enterprise Portfolio
MySQL Enterprise Portfolio
 
Oracle Enterprise Manager for MySQL
Oracle Enterprise Manager for MySQLOracle Enterprise Manager for MySQL
Oracle Enterprise Manager for MySQL
 
Oracle MySQL Tutorial -- MySQL NoSQL Cloud Buenos Aires Nov, 13 2014
Oracle MySQL Tutorial -- MySQL NoSQL Cloud Buenos Aires Nov, 13 2014Oracle MySQL Tutorial -- MySQL NoSQL Cloud Buenos Aires Nov, 13 2014
Oracle MySQL Tutorial -- MySQL NoSQL Cloud Buenos Aires Nov, 13 2014
 
My sql en la nube conoce las mejores prácticas en administración y operación_...
My sql en la nube conoce las mejores prácticas en administración y operación_...My sql en la nube conoce las mejores prácticas en administración y operación_...
My sql en la nube conoce las mejores prácticas en administración y operación_...
 
MySQL Enterprise Edition Overview
MySQL Enterprise Edition OverviewMySQL Enterprise Edition Overview
MySQL Enterprise Edition Overview
 

More from Ryusuke Kajiyama

[OSC 2020 Online/Nagoya] MySQLドキュメントストア
[OSC 2020 Online/Nagoya] MySQLドキュメントストア[OSC 2020 Online/Nagoya] MySQLドキュメントストア
[OSC 2020 Online/Nagoya] MySQLドキュメントストアRyusuke Kajiyama
 
[OSC 2020 Osaka] MySQL"超"入門
[OSC 2020 Osaka] MySQL"超"入門[OSC 2020 Osaka] MySQL"超"入門
[OSC 2020 Osaka] MySQL"超"入門Ryusuke Kajiyama
 
[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能
[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能
[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能Ryusuke Kajiyama
 
[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0
[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0
[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0Ryusuke Kajiyama
 
[db tech showcase 2017 Tokyo] D31 - MySQL 8.0の日本語キャラクタ・セットと文字照合
[db tech showcase 2017 Tokyo] D31 - MySQL 8.0の日本語キャラクタ・セットと文字照合[db tech showcase 2017 Tokyo] D31 - MySQL 8.0の日本語キャラクタ・セットと文字照合
[db tech showcase 2017 Tokyo] D31 - MySQL 8.0の日本語キャラクタ・セットと文字照合Ryusuke Kajiyama
 
[db tech showcase 2017 Tokyo] A23 - MySQLのセキュリティ関連機能の現状
[db tech showcase 2017 Tokyo] A23 - MySQLのセキュリティ関連機能の現状[db tech showcase 2017 Tokyo] A23 - MySQLのセキュリティ関連機能の現状
[db tech showcase 2017 Tokyo] A23 - MySQLのセキュリティ関連機能の現状Ryusuke Kajiyama
 
2017年5月26日 オープンソースデータベース比較セミナー「NoSQLとしても使えるMySQLとMySQL Cluster」
2017年5月26日 オープンソースデータベース比較セミナー「NoSQLとしても使えるMySQLとMySQL Cluster」2017年5月26日 オープンソースデータベース比較セミナー「NoSQLとしても使えるMySQLとMySQL Cluster」
2017年5月26日 オープンソースデータベース比較セミナー「NoSQLとしても使えるMySQLとMySQL Cluster」Ryusuke Kajiyama
 
第20回 中国地方DB勉強会 in 岡山 MySQLレプリケーション
第20回 中国地方DB勉強会 in 岡山 MySQLレプリケーション第20回 中国地方DB勉強会 in 岡山 MySQLレプリケーション
第20回 中国地方DB勉強会 in 岡山 MySQLレプリケーションRyusuke Kajiyama
 
MySQL Performance Tuning at COSCUP 2014
MySQL Performance Tuning at COSCUP 2014MySQL Performance Tuning at COSCUP 2014
MySQL Performance Tuning at COSCUP 2014Ryusuke Kajiyama
 
State of the Dolphin, at db tech showcase Osaka 2014
State of the Dolphin, at db tech showcase Osaka 2014State of the Dolphin, at db tech showcase Osaka 2014
State of the Dolphin, at db tech showcase Osaka 2014Ryusuke Kajiyama
 
20140518 JJUG MySQL Clsuter as NoSQL
20140518 JJUG MySQL Clsuter as NoSQL20140518 JJUG MySQL Clsuter as NoSQL
20140518 JJUG MySQL Clsuter as NoSQLRyusuke Kajiyama
 
2012.10.20 OSC 2012 Hiroshima
2012.10.20 OSC 2012 Hiroshima2012.10.20 OSC 2012 Hiroshima
2012.10.20 OSC 2012 HiroshimaRyusuke Kajiyama
 

More from Ryusuke Kajiyama (13)

[OSC 2020 Online/Nagoya] MySQLドキュメントストア
[OSC 2020 Online/Nagoya] MySQLドキュメントストア[OSC 2020 Online/Nagoya] MySQLドキュメントストア
[OSC 2020 Online/Nagoya] MySQLドキュメントストア
 
[OSC 2020 Osaka] MySQL"超"入門
[OSC 2020 Osaka] MySQL"超"入門[OSC 2020 Osaka] MySQL"超"入門
[OSC 2020 Osaka] MySQL"超"入門
 
[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能
[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能
[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能
 
[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0
[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0
[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0
 
[db tech showcase 2017 Tokyo] D31 - MySQL 8.0の日本語キャラクタ・セットと文字照合
[db tech showcase 2017 Tokyo] D31 - MySQL 8.0の日本語キャラクタ・セットと文字照合[db tech showcase 2017 Tokyo] D31 - MySQL 8.0の日本語キャラクタ・セットと文字照合
[db tech showcase 2017 Tokyo] D31 - MySQL 8.0の日本語キャラクタ・セットと文字照合
 
[db tech showcase 2017 Tokyo] A23 - MySQLのセキュリティ関連機能の現状
[db tech showcase 2017 Tokyo] A23 - MySQLのセキュリティ関連機能の現状[db tech showcase 2017 Tokyo] A23 - MySQLのセキュリティ関連機能の現状
[db tech showcase 2017 Tokyo] A23 - MySQLのセキュリティ関連機能の現状
 
2017年5月26日 オープンソースデータベース比較セミナー「NoSQLとしても使えるMySQLとMySQL Cluster」
2017年5月26日 オープンソースデータベース比較セミナー「NoSQLとしても使えるMySQLとMySQL Cluster」2017年5月26日 オープンソースデータベース比較セミナー「NoSQLとしても使えるMySQLとMySQL Cluster」
2017年5月26日 オープンソースデータベース比較セミナー「NoSQLとしても使えるMySQLとMySQL Cluster」
 
第20回 中国地方DB勉強会 in 岡山 MySQLレプリケーション
第20回 中国地方DB勉強会 in 岡山 MySQLレプリケーション第20回 中国地方DB勉強会 in 岡山 MySQLレプリケーション
第20回 中国地方DB勉強会 in 岡山 MySQLレプリケーション
 
MySQL Performance Tuning at COSCUP 2014
MySQL Performance Tuning at COSCUP 2014MySQL Performance Tuning at COSCUP 2014
MySQL Performance Tuning at COSCUP 2014
 
State of the Dolphin, at db tech showcase Osaka 2014
State of the Dolphin, at db tech showcase Osaka 2014State of the Dolphin, at db tech showcase Osaka 2014
State of the Dolphin, at db tech showcase Osaka 2014
 
20140518 JJUG MySQL Clsuter as NoSQL
20140518 JJUG MySQL Clsuter as NoSQL20140518 JJUG MySQL Clsuter as NoSQL
20140518 JJUG MySQL Clsuter as NoSQL
 
2012.10.20 OSC 2012 Hiroshima
2012.10.20 OSC 2012 Hiroshima2012.10.20 OSC 2012 Hiroshima
2012.10.20 OSC 2012 Hiroshima
 
MySQL de NoSQL Fukuoka
MySQL de NoSQL FukuokaMySQL de NoSQL Fukuoka
MySQL de NoSQL Fukuoka
 

Recently uploaded

DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 

Recently uploaded (20)

DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 

MySQL Cluster as Transactional NoSQL (KVS)

  • 1. Copyright  ©  2014,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   NoSQL  and  SQL   The  Best  of  Both  Worlds         梶山隆輔  /  Ryusuke  KAJIYAMA   MySQL  Sales  ConsulKng  Senior  Manager   MySQL  Global  Business  Unit  
  • 2. Copyright  ©  2014,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Safe  Harbor  Statement   The  following  is  intended  to  outline  our  general  product  direcKon.  It  is  intended  for   informaKon  purposes  only,  and  may  not  be  incorporated  into  any  contract.  It  is  not  a   commitment  to  deliver  any  material,  code,  or  funcKonality,  and  should  not  be  relied  upon   in  making  purchasing  decisions.  The  development,  release,  and  Kming  of  any  features  or   funcKonality  described  for  Oracle’s  products  remains  at  the  sole  discreKon  of  Oracle.  
  • 3. Copyright  ©  2014,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   The  Data  Management  Landscape Source: 451Group
  • 4. Copyright  ©  2014,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Session  Agenda   •  NoSQL  –  What  are  people  looking  for?   •  RDBMS  –  What  advantages  do  they  sKll  have?   •  How  MySQL  Delivers  the  Best  of  Both  Worlds   – MySQL  Cluster   •  NoSQL  aZributes:  Scale-­‐out,  performance,  ease-­‐of-­‐use,  schema  flexibility,  on-­‐line  operaKons   •  NoSQL  APIs   – Key-­‐Value  store  access  to  InnoDB  (Memcached)  
  • 5. Copyright  ©  2014,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Key-­‐Value  Store  
  • 6. Copyright  ©  2014,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Document  Store  
  • 7. Copyright  ©  2014,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Graph  Database  
  • 8. Copyright  ©  2014,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   •  Massive  scalability   – No  applicaKon-­‐level  sharding   •  Performance   •  High  Availability/Fault  Tolerance   •  Ease  of  use   – Simple  operaKons/administraKon   – Simple  APIs   – Quickly  evolve  applicaKon  &  schema   Scalability   Performance   HA   Ease  of  use   What  NoSQL  must  deliver  
  • 9. Copyright  ©  2014,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |  
  • 10. Copyright  ©  2014,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   NoSQL   Simple  access  paZerns   Compromise  on  consistency   for  performance   Ad-­‐hoc  data  format   Simple  operaKon   SQL   Complex  queries  with  joins   ACID  transacKons   Well  defined  schemas   Rich  set  of  tools   • No  best  single  soluKon  fits  all   • Mix  and  match   SKll  a  role  for  SQL  (RDBMS)?   Scalability   Performance   HA   Ease  of  use   SQL/Joins   ACID  TransacBons  
  • 11. Copyright  ©  2014,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  Cluster  Overview   •  Auto-­‐Sharding,  MulK-­‐Master   •  ACID  Compliant,  OLTP  +  Real-­‐Time  AnalyKcs   HIGH  SCALE,  READS  +   WRITES   •  Shared  nothing,  no  Single  Point  of  Failure   •  Self  Healing  +  On-­‐Line  OperaKons   99.999%  AVAILABILITY   •  In-­‐Memory  OpKmizaKon  +  Disk-­‐Data   •  Predictable  Low-­‐Latency,  Bounded  Access  Time   REAL-­‐TIME   •  Key/Value  +  Complex,  RelaKonal  Queries   •  SQL  +  Memcached  +  JavaScript  +  Java  +  HTTP/REST  &  C++   SQL  +  NoSQL   •  Open  Source  +  Commercial  EdiKons   •  Commodity  hardware  +  Management,  Monitoring  Tools   LOW  TCO  
  • 12. Copyright  ©  2014,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Who’s  Using  MySQL  Cluster?  
  • 13. Copyright  ©  2014,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  Cluster  Architecture     MySQL  Cluster  Data  Nodes   Clients   ApplicaKon  Layer   Data  Layer  
  • 14. Copyright  ©  2014,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  Cluster  Scaling     MySQL  Cluster  Data  Nodes   Clients   ApplicaKon  Layer   Data  Layer  
  • 15. Copyright  ©  2014,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |  
  • 16. Copyright  ©  2014,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  Cluster  HA     MySQL  Cluster  Data  Nodes   Clients   ApplicaKon  Layer   Data  Layer  
  • 17. Copyright  ©  2014,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   On-­‐line  OperaKons   •  Scale  the  cluster  (add  &  remove  nodes  on-­‐line)   •  ReparKKon  tables   •  Upgrade  /  patch  servers  &  OS   •  Upgrade  /  patch  MySQL  Cluster   •  Back-­‐Up   •  Evolve  the  schema  on-­‐line,  in  real-­‐Kme  
  • 18. Copyright  ©  2014,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |  
  • 19. Copyright  ©  2014,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   1.2  Billion  UPDATEs  per  Minute   •  NoSQL  C++  API,   flexaSynch  benchmark   •  30  x  Intel  E5-­‐2600  Intel   Servers,  2  socket,  64GB   •  ACID  TransacKons,  with   Synchronous  ReplicaKon   0 5 10 15 20 25 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 MillionsofUPDATEsperSecond MySQL Cluster Data Nodes
  • 20. Copyright  ©  2014,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   •  Memory  opKmized  tables   – Durable   – Mix  with  disk-­‐based  tables   •  Massively  concurrent  OLTP   •  Distributed  Joins  for  analyKcs   •  Parallel  table  scans  for  non-­‐indexed   searches   •  MySQL  Cluster  7.4  FlexAsych   – 200M  NoSQL  Reads/Second   3/15/15   30   MySQL  Cluster  7.4  NoSQL  Performance   200  Million  NoSQL  Reads/Second   Copyright  2015,  oracle  and/or  its  affiliates.  All  rights  reserved   !"!!!! !50,000,000!! !100,000,000!! !150,000,000!! !200,000,000!! !250,000,000!! 2! 4! 6! 8! 10! 12! 14! 16! 18! 20! 22! 24! 26! 28! 30! 32! Reads&per&second& Data&Nodes& FlexAsync&Reads&
  • 21. Copyright  ©  2014,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   •  Memory  opKmized  tables   – Durable   – Mix  with  disk-­‐based  tables   •  Massively  concurrent  OLTP   •  Distributed  Joins  for  analyKcs   •  Parallel  table  scans  for  non-­‐indexed   searches   •  MySQL  Cluster  7.4  DBT2  BM   – 2.5M  SQL  Statements/Second   3/15/15   31   MySQL  Cluster  7.4  SQL  Performance   2.5M  SQL  Statements/Second   Copyright  2015,  oracle  and/or  its  affiliates.  All  rights  reserved   !"!!!! !500,000!! !1,000,000!! !1,500,000!! !2,000,000!! !2,500,000!! !3,000,000!! 2! 4! 6! 8! 10! 12! 14! 16! SQL$Statements/sec$ Data$Nodes$ DBT2$SQL$Statements$per$Second$
  • 22. Copyright  ©  2014,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |  
  • 23. Copyright  ©  2014,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Scalability   !" Performance   !" HA   !" Ease  of  use   !" SQL/Joins   !" ACID  TransacBons   !"
  • 24. Copyright  ©  2014,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |  
  • 25. Copyright  ©  2014,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  Cluster  Auto-­‐Installer   • Fast  configuraKon   • Auto-­‐discovery   • Workload  opKmized   • Repeatable  best  pracKces   Specify   Workload   Auto-­‐ Discover   Define   Topology  Deploy  
  • 26. Copyright  ©  2014,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |  
  • 27. Copyright  ©  2014,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Scalability   !" Performance   !" HA   !" Ease  of  use   !" SQL/Joins   !" ACID  TransacBons   !"
  • 28. Copyright  ©  2014,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |  
  • 29. Copyright  ©  2014,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |  
  • 30. Copyright  ©  2014,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   NoSQL  Access  to  MySQL  Cluster  data   Apps Apps Apps Apps Apps Apps Apps Apps Apps Apps Apps Apps JPA Cluster  JPA PHP Perl Python Ruby JDBC Cluster  J JS Apache Memcached MySQL JNI Node.JS mod_ndb ndb_eng NDB  API  (C++) MySQL  Cluster  Data  Nodes  
  • 31. Copyright  ©  2014,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  Cluster  7.1:  ClusterJ/JPA   •  Domain  Object  Model  Persistence  API  (ClusterJ):   •  Java  API   •  High  performance,  low  latency   •  Feature  rich   •  JPA  interface  built  upon  this  new  Java  layer:   •  Java  Persistence  API  compliant   •  Implemented  as  an  OpenJPA  plugin   •  Uses  ClusterJ  where  possible,  reverts  to  JDBC  for  some   operaKons   •  Higher  performance  than  JDBC   •  More  natural  for  most  Java  designers   •  Easier  Cluster  adopKon  for  web  applicaKons   Apps Apps Apps Apps JPA Cluster  JPA JDBC Cluster  J MySQL JNI NDB  API  (C++) MySQL  Cluster  Data  Nodes  
  • 32. Copyright  ©  2014,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  Cluster  7.2:  Memcached   •  Memcached  is  a  distributed  memory  based     hash-­‐key/value  store  with  no  persistence  to  disk   •  NoSQL,  simple  API,  popular  with  developers   •  MySQL  Cluster  already  provides  scalable,  in-­‐ memory  performance  with  NoSQL  (hashed)   access  as  well  as  persistence   •  Provide  the  Memcached  API  but  map  to  NDB  API  calls   •  Writes-­‐in-­‐place,  so  no  need  to  invalidate  cache   •  Simplifies  architecture  as  caching  &  database   integrated  into  1  Ker   •  Access  data  from  exisKng  relaKonal  tables   Apps Memcached ndb_eng NDB  API  (C++) MySQL  Cluster  Data  Nodes  
  • 33. Copyright  ©  2014,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Schema-­‐Free  apps   •  Rapid  applicaKon  evoluKon   – New  types  of  data  constantly   added   – No  Kme  to  get  schema  extended   – Missing  skills  to  extend  schema   – IniKally  roll  out  to  just  a  few  users   – Constantly  adding  to  live  system  
  • 34. Copyright  ©  2014,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Cluster  &  Memcached  –  Schema-­‐Free   <town:maidenhead,SL6> key   value   <town:maidenhead,SL6> key   value   Key   Value   town:maidenhead   SL6   generic  table   ApplicaKon  view   SQL  view  
  • 35. Copyright  ©  2014,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Cluster  &  Memcached  -­‐  Configured  Schema   <town:maidenhead,SL6> prefix   key   value   <town:maidenhead,SL6> key   value   Prefix   Table   Key-­‐col   Val-­‐col   policy   town:   mapzip   town   code   cluster   Config  tables   town   ...   code   ...   maidenhead   ...   SL6   ...   mapzip   ApplicaKon  view   SQL  view  
  • 36. Copyright  ©  2014,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Node.js  NoSQL  API   •  NaKve  JavaScript  access  to  MySQL  Cluster   – End-­‐to-­‐End  JavaScript:  browser  to  app  &  DB   – Storing  and  retrieving  JavaScript  objects   directly  in  MySQL  Cluster     – Eliminate  SQL  transformaKon   •  Implemented  as  a  module  for  node.js   – Integrates  Cluster  API  library  within  web  app   •  Couple  high  performance,  distributed  apps,   with  high  performance  distributed  database   •  OpKonally  routes  through  MySQL  Server   V8 JavaScript Engine MySQL Cluster Node.js Module MySQL Cluster Data Nodes Clients
  • 37. Copyright  ©  2014,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   What  does  an  asynchronous  API  mean?   do_stuff1(data, callback1) callback1(results) do_stuff2(data, callback2) callback2(results) Get  on  with  other  stuff   Get  on  with  other  stuff  
  • 38. Copyright  ©  2014,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  Cluster  7.3:  JavaScript  Connector  for  node   var nosql = require('mysql-js'); var annotations = new nosql.TableMapping('towns').applyT oClass(Town); var dbProperties = nosql.ConnectionProperties('ndb'); nosql.openSession(dbProperties, annotations, onSession); Modular connector with various back-end adapters: •  ndb: low-level native access to MySQL Cluster •  mysql: access to any MySQL server (translates operations to SQL statements) Tutorial https://blogs.oracle.com/MySQL/entry/mysql_cluster_tutorial_nosql_api
  • 39. Copyright  ©  2014,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   var onSession = function(err, session) { if (err) {console.log(err); process.exit(0);} else { var data = new Town('Maidenhead', 'Berkshire'); session.persist(data, onInsert, data, session); } }; MySQL  Cluster  NoSQL  API  for  Node.js  
  • 40. Copyright  ©  2014,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  Cluster  NoSQL  API  for  Node.js   var onInsert = function(err, object, session) { if (err) {console.log(err);} else { console.log('Inserted: ' + JSON.stringify(object)); session.find(Town, 'Maidenhead', onFind); } };
  • 41. Copyright  ©  2014,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  Cluster  NoSQL  API  for  Node.js   var onFind = function(err, result) { if (err) {console.log(err);} else { console.log('Found: ' + JSON.stringify(result)); } process.exit(0); };
  • 42. Copyright  ©  2014,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   NoSQL  API  for  Node.js  &  FKs   FKs  enforced  on  all  APIs:   { message: 'Error', sqlstate: '23000', ndb_error: null, cause: {message: 'Foreign key constraint violated: No parent row found [255]', sqlstate: '23000', ndb_error: { message: 'Foreign key constraint violated: No parent row found', code: 255, classification: 'ConstraintViolation', handler_error_code: 151, status: 'PermanentError' }, cause: null } }  
  • 43. Copyright  ©  2014,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  5.6  Memcached  with  InnoDB   0 10000 20000 30000 40000 50000 60000 70000 80000 8 32 128 512 TPS Client Connections Memcached API SQL Clients  and  ApplicaBons   MySQL  Server   Memcached  Plug-­‐in   innodb_   memcached   local  cache   (opKonal)   Handler  API   InnoDB  API   InnoDB  Storage  Engine   mysqld  process   SQL   Memcached  Protocol   Up  to  9x  Higher  “SET  /  INSERT”  Throughput  
  • 44. Copyright  ©  2014,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   InnoDB  as  a  NoSQL  Database •  A  NoSQL  product  such  as  Memcached  directly  accesses  InnoDB   •  Simple  commands,  much  smaller  network  transmit  packages   •  Persistent  storage  from  InnoDB   •  Index  on  the  key  column     •  Full  ACID  compliance   •  Bypass  OpKmizer  and  QP  layer  of  MySQL   •  Dual  access  of  data  (SQL  and  Memcached)   •  Enabling  binlog  with  innodb_api_enable_binlog   •  ConfiguraKon  Parameters   – daemon_memcached_r_batch_size   – daemon_memcached_w_batch_size  
  • 45. Copyright  ©  2014,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   InnoDB  memcached  Plugin •  Supported  Plaqorm   – Linux,  Solaris,  and  Mac  OS  X   •  Sosware  Prerequisites   – You  must  have  libevent  installed,  since  it  is  required  by  memcached   •  Setng  Up  Required  Tables   – run  the  configuraKon  script  scripts/innodb_memcached_config.sql to   install  the  necessary  tables   •  Installing  the  Daemon  Plugin   mysql> install plugin daemon_memcached soname "libmemcached.so”;
  • 46. Copyright  ©  2014,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   InnoDB  memcached  Plugin •  ConfiguraKon  tables  created  by  install  script   mysql> use innodb_memcache; Database changed mysql> show tables; +---------------------------+ | Tables_in_innodb_memcache | +---------------------------+ | cache_policies | | config_options | | containers | +---------------------------+ 3 rows in set (0.01 sec)
  • 47. Copyright  ©  2014,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   InnoDB  memcached  Plugin •  The  mapping  is  done  through  specifying  corresponding  column  values  in   containers  table:   mysql> desc containers; +------------------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------------------+--------------+------+-----+---------+-------+ | name | varchar(50) | NO | PRI | NULL | | | db_schema | varchar(250) | NO | | NULL | | | db_table | varchar(250) | NO | | NULL | | | key_columns | varchar(250) | NO | | NULL | | | value_columns | varchar(250) | YES | | NULL | | | flags | varchar(250) | NO | | 0 | | | cas_column | varchar(250) | YES | | NULL | | | expire_time_column | varchar(250) | YES | | NULL | | | unique_idx_name_on_key | varchar(250) | NO | | NULL | | +------------------------+--------------+------+-----+---------+-------+ 9 rows in set (0.02 sec)
  • 48. Copyright  ©  2014,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   InnoDB  memcached  Plugin •  Mapping  to  table  can  be  added  via  SQL   •  To  switch  to  table  ”db1/tbl1",  and  get  the  value  corresponding  to  “key_a”  in   "get  @@new_mapping_name.key”  format;       prefix  "@@"  is  required  for  signaling  a  mapped  table  change   •  The  default  delimiter  that  separates  the  "mapping  name"  and  key  value  is    ".”,   which  can  be  changed  opKon  in  the  "config_opKons"  system  table  with  name   of  "table_map_delimiter"   INSERT INTO containers VALUES ("setup_3", ”db1", ”tbl1", "c1", "c2", "c3", "c4", "c5", "idx"); get @@setup_3.key_a (OR  simply, get @@setup_3) INSERT INTO config_options VALUES("table_map_delimiter", “|");
  • 49. Copyright  ©  2014,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   HTTP  Plugin  for  MySQL   •  Server  Plugin  adds  HTTP(S)  endpoints  to  MySQL   •  Results  are  serialized  to  JSON  format  encoded  as  UTF8   •  Provides  3  choices  of  User  Endpoint  Types   – SQL   – CRUD  -­‐  Key-­‐Value   – JSON  -­‐  Document   59   labs.mysql.com  
  • 50. Copyright  ©  2014,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   •  json_valid()   •  json_search()   •  json_extract()   •  json_replace()   •  json_append()   •  json_remove()   •  json_set()   •  json_merge()   •  json_safe_merge()   •  json_deep_merge()   •  json_contains_key()   •  json_depth()   •  json_count()   •  json_version()   •  json_test_parser()   JSON  SQL  FuncKons labs.mysql.com