SlideShare a Scribd company logo
Synchronize your data
between MySQL
and MongoDB
using Tungsten Replicator
Giuseppe Maxia, Director of QA
Continuent, Inc

©Continuent 2013
Tuesday, October 15, 13

1
About me

•

Giuseppe Maxia, a.k.a. "The Data Charmer"

• Director of Quality Assurance, Continuent, Inc
• 25+ years development and DB experience
• Long timer MySQL community member.
• Oracle ACE Director
• Blog: http://datacharmer.blogspot.com
• Twitter: @datacharmer

©Continuent 2013
Tuesday, October 15, 13

2
2
Introducing Continuent

•

The leading provider of clustering and
replication for open source DBMS

•

Our Product: Continuent Tungsten

• Clustering - Commercial-grade HA, performance
scaling and data management for MySQL

• Replication - Flexible, high-performance data
movement

©Continuent 2013
Tuesday, October 15, 13

3
3
A Review of Tungsten Replicator

©Continuent 2013
Tuesday, October 15, 13

4
4
Tungsten Replicator Overview
Master
Replicator

Download
transactions
via network
DBMS
Logs

(Transactions + Metadata)

Slave

Replicator

Apply using JDBC

©Continuent 2013
Tuesday, October 15, 13

THL

THL
(Transactions + Metadata)

5
5
Master Replication Service
Pipeline
Stage
Extract Filter

Stage
Apply

Extract Filter

Apply

tcp/ip

Binlog
MySQL
Master

©Continuent 2013
Tuesday, October 15, 13

Slave
Replicators

Transaction
History Log

In-Memory
Queue

6
6
Slave Replication Service
Pipeline
Stage
Apply

Extract Filter

Stage
Apply

Extract Filter

Apply

tcp/ip

Extract Filter

Stage

Master
Replicator
Transaction
History Log

©Continuent 2013
Tuesday, October 15, 13

In-Memory
Queue

Slave
DBMS

7
7
master-slave
MySQL

Oracle
fan-in slave

Oracle

MySQL
all-masters

Heterogeneous

Oracle

MySQL

MySQL

Oracle
star

©Continuent 2013
Tuesday, October 15, 13

8
MongoDB in a nutshell

©Continuent 2013
Tuesday, October 15, 13

9
9
What is MongoDB

•
•
•
•
•
•
•
©Continuent 2013
Tuesday, October 15, 13

A non-relational database
A document-oriented database
Schema-free
Open source
High performance
Scalable
Developer-friendly (sort of)

10
10
What is MongoDB good for?

•
•
•

Storing large amount of unrelated data

•

IT IS NOT a drop-in replacement for a
relational database

©Continuent 2013
Tuesday, October 15, 13

Data that can't be constrained in a schema
Complement to relational data

11
11
Relational vs. document
person
p_id name age
1

Joe

30

2

Fred

23

3

Jack

26

p_id

d_id

4

Sue

25

1

2

5

Pete

32

2

2

3

1

4

3

5

1

department
d_id
name
1
sales
2
dev
3
support

©Continuent 2013
Tuesday, October 15, 13

pers_dept

Relational

12
12
Relational vs. document
person
p_id name age
1

Joe

30

2

Fred

23

3

Jack

26

p_id

d_id

4

Sue

25

1

2

5

Pete

32

2

2

3

1

4

3

5

1

department
d_id
name
1
sales
2
dev
3
support

©Continuent 2013
Tuesday, October 15, 13

pers_dept

Relational

13
13
Relational vs. document
person
p_id name age
1

Joe

30

2

Fred

23

3

Jack

26

p_id

d_id

4

Sue

25

1

2

5

Pete

32

2

2

3

1

4

3

5

1

department
d_id
name
1
sales
2
dev
3
support

©Continuent 2013
Tuesday, October 15, 13

pers_dept

Relational

14
14
Relational vs. document
person
p_id name age
1

Joe

30

2

Fred

23

3

Jack

26

p_id

d_id

4

Sue

25

1

2

5

Pete

32

2

2

3

1

4

3

5

1

department
d_id
name
1
sales
2
dev
3
support

©Continuent 2013
Tuesday, October 15, 13

pers_dept

Relational

15
15
Relational vs. document
person
p_id name age
1

Joe

30

2

Fred

23

3

Jack

26

p_id

d_id

4

Sue

25

1

2

5

Pete

32

2

2

3

1

4

3

5

1

department
d_id
name
1
sales
2
dev
3
support

©Continuent 2013
Tuesday, October 15, 13

pers_dept

Relational

16
16
Relational vs. document
person
p_id name age
1

Joe

30

2

Fred

23

3

Jack

26

p_id

d_id

4

Sue

25

1

2

5

Pete

32

2

2

3

1

4

3

5

1

department
d_id
name
1
sales
2
dev
3
support

©Continuent 2013
Tuesday, October 15, 13

pers_dept

Relational

17
17
Relational vs. document
person
_id

name

age

department

1

Joe

30

dev

2

Fred

23

dev

3

Jack

26

sales

4

Sue

25

support

5

Pete

32

sales

Document
©Continuent 2013
Tuesday, October 15, 13

18
18
How MongoDB keeps data

•

©Continuent 2013
Tuesday, October 15, 13

three levels:

•
•
•

dbs
collections
documents

19
19
MongoDB insertion demo
> show collections
>
> db.person.insert( {_id: 1, name: "Joe", age: 30, department:
"dev"})
> show collections
person
system.indexes

©Continuent 2013
Tuesday, October 15, 13

20
20
MongoDB insertion demo
> db.person.insert(
"dev"})
> db.person.insert(
"sales"})
> db.person.insert(
"support"})
> db.person.insert(
"sales"})
> db.person.find()
{ "_id" : 1, "name"
{ "_id" : 2, "name"
{ "_id" : 3, "name"
{ "_id" : 4, "name"
{ "_id" : 5, "name"

©Continuent 2013
Tuesday, October 15, 13

{_id: 2, name: "Fred", age: 23, department:
{_id: 3, name: "Jack", age: 26, department:
{_id: 4, name: "Sue", age: 25, department:
{_id: 5, name: "Pete", age: 30, department:
:
:
:
:
:

"Joe", "age" : 30, "department" : "dev" }
"Fred", "age" : 23, "department" : "dev" }
"Jack", "age" : 26, "department" : "sales" }
"Sue", "age" : 25, "department" : "support" }
"Pete", "age" : 30, "department" : "sales" }

21
21
MySQL to MongoDB basics

©Continuent 2013
Tuesday, October 15, 13

22
22
Replication from MySQL to MongoDB

•
•
•
•
•
•
•
©Continuent 2013
Tuesday, October 15, 13

Requires ROW-based-replication
Replication happens by table
There is no consolidation into "documents"
DDL commands are ignored
Statement commands are ignored
Column names become document attributes
enum and set columns are converted to
strings
23
23
First example of replication
# MySQL
create schema oneschema;
use oneschema ;
create table myfirst( num int not null primary key,
dt datetime,
ts timestamp,
going enum('yes', 'no'));
# MongoDB
> show dbs
local 0.078125GB
test 0.203125GB
tungsten_mysql2mongodb

0.203125GB

# NOTICE: no "oneschema"
©Continuent 2013
Tuesday, October 15, 13

24
24
Inserting data
# MySQL
insert into myfirst values (1, '2003-04-26 09:15:00', null, 'yes');
Query OK, 1 row affected (0.01 sec)
select * from myfirst;
+-----+---------------------+---------------------+-------+
| num | dt
| ts
| going |
+-----+---------------------+---------------------+-------+
|
1 | 2003-04-26 09:15:00 | 2013-10-14 19:39:38 | yes
|
+-----+---------------------+---------------------+-------+
1 row in set (0.00 sec)

©Continuent 2013
Tuesday, October 15, 13

25
25
Checking results in MongoDB
# MongoDB
> show dbs
local 0.078125GB
oneschema 0.203125GB
test 0.203125GB
tungsten_mysql2mongodb

0.203125GB

> use oneschema
switched to db oneschema
> show collections
myfirst
system.indexes
> db.myfirst.find()
{ "_id" : ObjectId("525c2c5af5d9ca820fcee01d"), "num" : "1", "dt" :
"2003-04-26 11:15:00.0", "ts" : "2013-10-14 19:39:38.0", "going" :
"yes" }
©Continuent 2013
Tuesday, October 15, 13

26
26
Another interesting insertion
#MySQL
create table t1(_id int not null primary key, c char(10));
insert into t1 values (1, 'abc');
select * from t1;
+-----+------+
| _id | c
|
+-----+------+
|
1 | abc |
+-----+------+
1 row in set (0.00 sec)
# MongoDB
> db.t1.find()
{ "_id" : "1", "c" : "abc" }

©Continuent 2013
Tuesday, October 15, 13

27
27
More insertions
# MySQL
insert into t1 values (2,'def'), (3,'ghi'), (4,'jkl'), (5, 'mno');
Query OK, 4 rows affected (0.01 sec)
Records: 4 Duplicates: 0 Warnings: 0
select * from t1;
+-----+------+
| _id | c
|
+-----+------+
|
1 | abc |
|
2 | def |
|
3 | ghi |
|
4 | jkl |
|
5 | mno |
+-----+------+
5 rows in set (0.00 sec)

©Continuent 2013
Tuesday, October 15, 13

28
28
More insertions
# MongoDB
>
{
{
{
{
{

db.t1.find()
"_id" : "1",
"_id" : "2",
"_id" : "3",
"_id" : "4",
"_id" : "5",

©Continuent 2013
Tuesday, October 15, 13

"c"
"c"
"c"
"c"
"c"

:
:
:
:
:

"abc"
"def"
"ghi"
"jkl"
"mno"

}
}
}
}
}

29
29
Update and delete as seen on master
update t1 set c = 'ZZZ' where _id = 3;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
delete from t1 where _id=2;
Query OK, 1 row affected (0.00 sec)
select * from t1;
+-----+------+
| _id | c
|
+-----+------+
|
1 | abc |
|
3 | ZZZ |
|
4 | jkl |
|
5 | mno |
+-----+------+
4 rows in set (0.00 sec)
©Continuent 2013
Tuesday, October 15, 13

30
30
e!ects of update and delete on the
slave
# MongoDB
>
{
{
{
{

db.t1.find()
"_id" : "1",
"_id" : "3",
"_id" : "4",
"_id" : "5",

©Continuent 2013
Tuesday, October 15, 13

"c"
"c"
"c"
"c"

:
:
:
:

"abc"
"ZZZ"
"jkl"
"mno"

}
}
}
}

31
31
Overview of Tungsten installer

©Continuent 2013
Tuesday, October 15, 13

32
32
Overview of Installation Process
1. Set up hosts
2. Prepare MySQL replicas
3. Download software
4. Install using tpm

Amazon Setup:
https://docs.continuent.com/wiki/display/TEDOC/
Preparing+EC2+Servers

©Continuent 2013
Tuesday, October 15, 13

33
33
How tungsten-installer Works for
Basic Master/Slave Deployment
Staging copy
of files

db1

db2

check prereqs
copy code
configure
©Continuent 2013
Tuesday, October 15, 13

db3

34
34
Tungsten master/slave replication
alpha

THL

THL

host1

alpha

host2

alpha

THL

host3

installer

©Continuent 2013
Tuesday, October 15, 13

35
35
Bi-directional replication
alpha

alpha

bravo

bravo

host1

host2

installer
Install all master and slave services on all hosts at once

©Continuent 2013
Tuesday, October 15, 13

36
36
4 nodes all-masters
alpha

alpha

bravo

host1

bravo

charlie

charlie

delta

host2

delta

alpha
bravo

©Continuent 2013
Tuesday, October 15, 13

bravo

charlie

charlie

delta

host3

alpha

delta

host4

37
37
Tungsten security layer

•

Tra!c encryption:

Tuesday, October 15, 13

all data in transit (transaction history logs, or THL) is
encrypted using SSL

•
•
•

©Continuent 2013

•

all administrative tra!c is encrypted with SSL
Transparent to the user
Independent of the database server (works also for
heterogeneous replication)

38
38
Tungsten replicator without security
THL

alpha

THL

alpha

alpha

host2

plain text

THL

host1

THL

host4

host3

master
slave

©Continuent 2013
Tuesday, October 15, 13

alpha

replicator
services

39
39
Tungsten Replicator with security
SSL
alpha

THL

alpha

THL

THL

alpha

host2

SSL

host1

SSL

SSL

slave

©Continuent 2013
Tuesday, October 15, 13

alpha

host4

host3

master

THL

replicator
services

40
40
Installing Master/Slave Replication ...
alpha

THL

THL

host1

alpha

host2

alpha

THL

host3

©Continuent 2013
Tuesday, October 15, 13

41
41
master/slave using tpm

./tools/tpm install alpha 
--topology=master-slave 
--home-directory=/opt/continuent/replicator 
--replication-user=tungsten 
--replication-password=secret 
--master=host1 
--slaves=host2,host3,host4 
--start

©Continuent 2013
Tuesday, October 15, 13

42
42
Installing Master/Slave Replication
with MongoDB
alpha

alpha

host1

host2

alpha

alpha

host3

©Continuent 2013
Tuesday, October 15, 13

host4

43
43
master/slave with MongoDB
./tools/tpm configure mysql2mongodb 
--enable-heterogenous-service=true 
--topology=master-slave 
--master=host1 
--replication-user=tungsten 
--replication-password=secret 
--slaves=host2,host3,host4 
--home-directory=$MYSQL_DEPLOY 
--start-and-report
./tools/tpm configure mysql2mongodb 
--hosts=host4 
--datasource-type=mongodb 
--replication-port=$MONGODB_PORT
./tools/tpm install

©Continuent 2013
Tuesday, October 15, 13

44
44
Installing Fan-In Replication
alpha
bravo

host1

host2

alpha

charlie

bravo

host3

©Continuent 2013
Tuesday, October 15, 13

host4

charlie

45
45
fan-in using tpm

./tools/tpm install many_towns 
--replication-user=tungsten 
--replication-password=secret 
--home-directory=/opt/continuent/replication 
--masters=host1,host2,host3 
--slaves=host4 
--master-services=alpha,bravo,charlie 
--topology=fan-in 
--start

©Continuent 2013
Tuesday, October 15, 13

46
46
Installing Fan-In Replication with
MongoDB
alpha
bravo

host1

host2

alpha
bravo

host3

©Continuent 2013
Tuesday, October 15, 13

charlie

charlie

host4

47
47
fan-in with MongoDB
./tools/tpm configure mysql2mongodb 
--enable-heterogenous-service=true 
--topology=fan-in 
--masters=host1,host2,host3 
--master-services=alpha,bravo,charlie 
--slaves=host4 
--replication-user=tungsten 
--replication-password=secret 
--home-directory=$MYSQL_DEPLOY 
--datasource-type=mysql 
--start-and-report
./tools/tpm configure mysql2mongodb 
--hosts=host4 
--datasource-type=mongodb 
--replication-port=$MONGODB_PORT
./tools/tpm install

©Continuent 2013
Tuesday, October 15, 13

48
48
Install Multi-Master replication
alpha

alpha

bravo

host1

bravo

charlie

charlie

host2

alpha
bravo

host3

©Continuent 2013
Tuesday, October 15, 13

charlie

49
49
multi-master using tpm

../tools/tpm install musketeers 
--reset 
--topology=all-masters 
--home-directory=/opt/continuent/replicator 
--replication-user=tungsten 
--replication-password=secret 
--masters=host1,host2,host3 
--master-services=alpha,bravo,charlie 
--start

©Continuent 2013
Tuesday, October 15, 13

50
50
Install Multi-Master replication with
Mongodb
alpha

alpha

bravo

host1

bravo

charlie

charlie

alpha

host3

©Continuent 2013
Tuesday, October 15, 13

alpha

bravo

bravo

charlie

charlie

host2

host4

51
51
multi-master with MongoDB
./tools/tpm configure mysql2mongodb 
--enable-heterogenous-service=true 
--topology=all-masters 
--masters=host1,host2,host3 
--slaves=host1,host2,host3,host4 
--master-services=alpha,bravo,charlie 
--replication-user=tungsten 
--replication-password=secret 
--home-directory=$MYSQL_DEPLOY 
--datasource-type=mysql 
--start-and-report
./tools/tpm configure mysql2mongodb 
--hosts=host4 
--datasource-type=mongodb 
--replication-port=$MONGODB_PORT
./tools/tpm install

©Continuent 2013
Tuesday, October 15, 13

52
52
MongoDB or TokuMX

•

TokuMX is a drop-in replacement for
MongoDB

•
•
•

Open source project, developed by TokuTek

©Continuent 2013
Tuesday, October 15, 13

https://github.com/Tokutek/mongo
it includes

•
•
•
•

better indexing
row-level locking (MongoDB locks at db level)
transactions
better compression
53
53
DEMO:
MongoDB
and multi master
installation

©Continuent 2013
Tuesday, October 15, 13

54
54
Joining the Community

©Continuent 2013
Tuesday, October 15, 13

55
55
Tungsten Replicator is Open Source

•

Project home:
http://code.google.com/p/tungsten-replicator/

•

Log bugs, "nd builds, post in replicator discussion
group

•

Documentation:
https://docs.continuent.com/wiki/display/TEDOC/
Tungsten+Documentation+Home
https://docs.continuent.com/wiki/display/TEDOC/
Deploying+MongoDB+Replication

©Continuent 2013
Tuesday, October 15, 13

56
56
560 S. Winchester Blvd., Suite 500
San Jose, CA 95128
Tel +1 (866) 998-3642
Fax +1 (408) 668-1009
e-mail: sales@continuent.com

Our Blogs:
http://scale-out-blog.blogspot.com
http://datacharmer.blogspot.com
http://www.continuent.com/news/blogs

Continuent Web Page:
http://www.continuent.com
Tungsten Replicator 2.1:
http://code.google.com/p/tungsten-replicator

©Continuent 2012.
Tuesday, October 15, 13

57

More Related Content

What's hot

Secured API Acceleration with Engineers from Amazon CloudFront and Slack
Secured API Acceleration with Engineers from Amazon CloudFront and SlackSecured API Acceleration with Engineers from Amazon CloudFront and Slack
Secured API Acceleration with Engineers from Amazon CloudFront and Slack
Amazon Web Services
 
Amazon Redshift Deep Dive - Serverless, Streaming, ML, Auto Copy (New feature...
Amazon Redshift Deep Dive - Serverless, Streaming, ML, Auto Copy (New feature...Amazon Redshift Deep Dive - Serverless, Streaming, ML, Auto Copy (New feature...
Amazon Redshift Deep Dive - Serverless, Streaming, ML, Auto Copy (New feature...
Amazon Web Services Korea
 
Announcing Amazon Aurora with PostgreSQL Compatibility - January 2017 AWS Onl...
Announcing Amazon Aurora with PostgreSQL Compatibility - January 2017 AWS Onl...Announcing Amazon Aurora with PostgreSQL Compatibility - January 2017 AWS Onl...
Announcing Amazon Aurora with PostgreSQL Compatibility - January 2017 AWS Onl...
Amazon Web Services
 
Microsoft Azure VM Cheat Sheet
Microsoft Azure VM Cheat SheetMicrosoft Azure VM Cheat Sheet
Microsoft Azure VM Cheat Sheet
Milos Halecka
 
Introduction to Amazon Aurora
Introduction to Amazon AuroraIntroduction to Amazon Aurora
Introduction to Amazon Aurora
Amazon Web Services
 
Microsoft SQL Server Migration Strategies
Microsoft SQL Server Migration StrategiesMicrosoft SQL Server Migration Strategies
Microsoft SQL Server Migration Strategies
Amazon Web Services
 
AWS Summit Seoul 2023 |투자를 모두에게, 토스증권의 MTS 구축 사례
AWS Summit Seoul 2023 |투자를 모두에게, 토스증권의 MTS 구축 사례AWS Summit Seoul 2023 |투자를 모두에게, 토스증권의 MTS 구축 사례
AWS Summit Seoul 2023 |투자를 모두에게, 토스증권의 MTS 구축 사례
Amazon Web Services Korea
 
Highlights of AWS ReInvent 2023 (Announcements and Best Practices)
Highlights of AWS ReInvent 2023 (Announcements and Best Practices)Highlights of AWS ReInvent 2023 (Announcements and Best Practices)
Highlights of AWS ReInvent 2023 (Announcements and Best Practices)
Emprovise
 
AWS Black Belt Online Seminar Amazon Aurora
AWS Black Belt Online Seminar Amazon AuroraAWS Black Belt Online Seminar Amazon Aurora
AWS Black Belt Online Seminar Amazon Aurora
Amazon Web Services Japan
 
Databricks Platform.pptx
Databricks Platform.pptxDatabricks Platform.pptx
Databricks Platform.pptx
Alex Ivy
 
Using Performance Insights to Optimize Database Performance (DAT402) - AWS re...
Using Performance Insights to Optimize Database Performance (DAT402) - AWS re...Using Performance Insights to Optimize Database Performance (DAT402) - AWS re...
Using Performance Insights to Optimize Database Performance (DAT402) - AWS re...
Amazon Web Services
 
Aurora MySQL Backtrack을 이용한 빠른 복구 방법 - 진교선 :: AWS Database Modernization Day 온라인
Aurora MySQL Backtrack을 이용한 빠른 복구 방법 - 진교선 :: AWS Database Modernization Day 온라인Aurora MySQL Backtrack을 이용한 빠른 복구 방법 - 진교선 :: AWS Database Modernization Day 온라인
Aurora MySQL Backtrack을 이용한 빠른 복구 방법 - 진교선 :: AWS Database Modernization Day 온라인
Amazon Web Services Korea
 
AWS Database Migration Service ご紹介
AWS Database Migration Service ご紹介AWS Database Migration Service ご紹介
AWS Database Migration Service ご紹介
Amazon Web Services Japan
 
Azure data platform overview
Azure data platform overviewAzure data platform overview
Azure data platform overview
James Serra
 
Migrating your traditional Data Warehouse to a Modern Data Lake
Migrating your traditional Data Warehouse to a Modern Data LakeMigrating your traditional Data Warehouse to a Modern Data Lake
Migrating your traditional Data Warehouse to a Modern Data Lake
Amazon Web Services
 
AWS Summit Seoul 2023 | 삼성전자/쿠팡의 대규모 트래픽 처리를 위한 클라우드 네이티브 데이터베이스 활용
AWS Summit Seoul 2023 | 삼성전자/쿠팡의 대규모 트래픽 처리를 위한 클라우드 네이티브 데이터베이스 활용AWS Summit Seoul 2023 | 삼성전자/쿠팡의 대규모 트래픽 처리를 위한 클라우드 네이티브 데이터베이스 활용
AWS Summit Seoul 2023 | 삼성전자/쿠팡의 대규모 트래픽 처리를 위한 클라우드 네이티브 데이터베이스 활용
Amazon Web Services Korea
 
Azure Migration Program Overview
Azure Migration Program OverviewAzure Migration Program Overview
Azure Migration Program Overview
Nicholas Vossburg
 
AWS Black Belt Online Seminar 2017 Amazon Aurora with PostgreSQL Compatibility
AWS Black Belt Online Seminar 2017 Amazon Aurora with PostgreSQL CompatibilityAWS Black Belt Online Seminar 2017 Amazon Aurora with PostgreSQL Compatibility
AWS Black Belt Online Seminar 2017 Amazon Aurora with PostgreSQL Compatibility
Amazon Web Services Japan
 
Microsoft Azure のセキュリティ
Microsoft Azure のセキュリティMicrosoft Azure のセキュリティ
Microsoft Azure のセキュリティ
junichi anno
 
AWS Black Belt Techシリーズ Amazon Route53
AWS Black Belt Techシリーズ Amazon Route53AWS Black Belt Techシリーズ Amazon Route53
AWS Black Belt Techシリーズ Amazon Route53
Amazon Web Services Japan
 

What's hot (20)

Secured API Acceleration with Engineers from Amazon CloudFront and Slack
Secured API Acceleration with Engineers from Amazon CloudFront and SlackSecured API Acceleration with Engineers from Amazon CloudFront and Slack
Secured API Acceleration with Engineers from Amazon CloudFront and Slack
 
Amazon Redshift Deep Dive - Serverless, Streaming, ML, Auto Copy (New feature...
Amazon Redshift Deep Dive - Serverless, Streaming, ML, Auto Copy (New feature...Amazon Redshift Deep Dive - Serverless, Streaming, ML, Auto Copy (New feature...
Amazon Redshift Deep Dive - Serverless, Streaming, ML, Auto Copy (New feature...
 
Announcing Amazon Aurora with PostgreSQL Compatibility - January 2017 AWS Onl...
Announcing Amazon Aurora with PostgreSQL Compatibility - January 2017 AWS Onl...Announcing Amazon Aurora with PostgreSQL Compatibility - January 2017 AWS Onl...
Announcing Amazon Aurora with PostgreSQL Compatibility - January 2017 AWS Onl...
 
Microsoft Azure VM Cheat Sheet
Microsoft Azure VM Cheat SheetMicrosoft Azure VM Cheat Sheet
Microsoft Azure VM Cheat Sheet
 
Introduction to Amazon Aurora
Introduction to Amazon AuroraIntroduction to Amazon Aurora
Introduction to Amazon Aurora
 
Microsoft SQL Server Migration Strategies
Microsoft SQL Server Migration StrategiesMicrosoft SQL Server Migration Strategies
Microsoft SQL Server Migration Strategies
 
AWS Summit Seoul 2023 |투자를 모두에게, 토스증권의 MTS 구축 사례
AWS Summit Seoul 2023 |투자를 모두에게, 토스증권의 MTS 구축 사례AWS Summit Seoul 2023 |투자를 모두에게, 토스증권의 MTS 구축 사례
AWS Summit Seoul 2023 |투자를 모두에게, 토스증권의 MTS 구축 사례
 
Highlights of AWS ReInvent 2023 (Announcements and Best Practices)
Highlights of AWS ReInvent 2023 (Announcements and Best Practices)Highlights of AWS ReInvent 2023 (Announcements and Best Practices)
Highlights of AWS ReInvent 2023 (Announcements and Best Practices)
 
AWS Black Belt Online Seminar Amazon Aurora
AWS Black Belt Online Seminar Amazon AuroraAWS Black Belt Online Seminar Amazon Aurora
AWS Black Belt Online Seminar Amazon Aurora
 
Databricks Platform.pptx
Databricks Platform.pptxDatabricks Platform.pptx
Databricks Platform.pptx
 
Using Performance Insights to Optimize Database Performance (DAT402) - AWS re...
Using Performance Insights to Optimize Database Performance (DAT402) - AWS re...Using Performance Insights to Optimize Database Performance (DAT402) - AWS re...
Using Performance Insights to Optimize Database Performance (DAT402) - AWS re...
 
Aurora MySQL Backtrack을 이용한 빠른 복구 방법 - 진교선 :: AWS Database Modernization Day 온라인
Aurora MySQL Backtrack을 이용한 빠른 복구 방법 - 진교선 :: AWS Database Modernization Day 온라인Aurora MySQL Backtrack을 이용한 빠른 복구 방법 - 진교선 :: AWS Database Modernization Day 온라인
Aurora MySQL Backtrack을 이용한 빠른 복구 방법 - 진교선 :: AWS Database Modernization Day 온라인
 
AWS Database Migration Service ご紹介
AWS Database Migration Service ご紹介AWS Database Migration Service ご紹介
AWS Database Migration Service ご紹介
 
Azure data platform overview
Azure data platform overviewAzure data platform overview
Azure data platform overview
 
Migrating your traditional Data Warehouse to a Modern Data Lake
Migrating your traditional Data Warehouse to a Modern Data LakeMigrating your traditional Data Warehouse to a Modern Data Lake
Migrating your traditional Data Warehouse to a Modern Data Lake
 
AWS Summit Seoul 2023 | 삼성전자/쿠팡의 대규모 트래픽 처리를 위한 클라우드 네이티브 데이터베이스 활용
AWS Summit Seoul 2023 | 삼성전자/쿠팡의 대규모 트래픽 처리를 위한 클라우드 네이티브 데이터베이스 활용AWS Summit Seoul 2023 | 삼성전자/쿠팡의 대규모 트래픽 처리를 위한 클라우드 네이티브 데이터베이스 활용
AWS Summit Seoul 2023 | 삼성전자/쿠팡의 대규모 트래픽 처리를 위한 클라우드 네이티브 데이터베이스 활용
 
Azure Migration Program Overview
Azure Migration Program OverviewAzure Migration Program Overview
Azure Migration Program Overview
 
AWS Black Belt Online Seminar 2017 Amazon Aurora with PostgreSQL Compatibility
AWS Black Belt Online Seminar 2017 Amazon Aurora with PostgreSQL CompatibilityAWS Black Belt Online Seminar 2017 Amazon Aurora with PostgreSQL Compatibility
AWS Black Belt Online Seminar 2017 Amazon Aurora with PostgreSQL Compatibility
 
Microsoft Azure のセキュリティ
Microsoft Azure のセキュリティMicrosoft Azure のセキュリティ
Microsoft Azure のセキュリティ
 
AWS Black Belt Techシリーズ Amazon Route53
AWS Black Belt Techシリーズ Amazon Route53AWS Black Belt Techシリーズ Amazon Route53
AWS Black Belt Techシリーズ Amazon Route53
 

Viewers also liked

Hybrid MongoDB and RDBMS Applications
Hybrid MongoDB and RDBMS ApplicationsHybrid MongoDB and RDBMS Applications
Hybrid MongoDB and RDBMS ApplicationsSteven Francia
 
MongoDB as a fast and queryable cache
MongoDB as a fast and queryable cacheMongoDB as a fast and queryable cache
MongoDB as a fast and queryable cache
MongoDB
 
Blending MongoDB and RDBMS for ecommerce
Blending MongoDB and RDBMS for ecommerceBlending MongoDB and RDBMS for ecommerce
Blending MongoDB and RDBMS for ecommerceSteven Francia
 
Tungsten Replicator tutorial
Tungsten Replicator tutorialTungsten Replicator tutorial
Tungsten Replicator tutorial
Giuseppe Maxia
 
MongoDB, E-commerce and Transactions
MongoDB, E-commerce and TransactionsMongoDB, E-commerce and Transactions
MongoDB, E-commerce and Transactions
Steven Francia
 
Slides: Polyglot Persistence for the MongoDB, MySQL & PostgreSQL DBA
Slides: Polyglot Persistence for the MongoDB, MySQL & PostgreSQL DBASlides: Polyglot Persistence for the MongoDB, MySQL & PostgreSQL DBA
Slides: Polyglot Persistence for the MongoDB, MySQL & PostgreSQL DBA
Severalnines
 
Juggle your data with Tungsten Replicator
Juggle your data with Tungsten ReplicatorJuggle your data with Tungsten Replicator
Juggle your data with Tungsten Replicator
Giuseppe Maxia
 
NoSQL into E-Commerce: lessons learned
NoSQL into E-Commerce: lessons learnedNoSQL into E-Commerce: lessons learned
NoSQL into E-Commerce: lessons learned
La FeWeb
 
Webinar: Live Data Visualisation with Tableau and MongoDB
Webinar: Live Data Visualisation with Tableau and MongoDBWebinar: Live Data Visualisation with Tableau and MongoDB
Webinar: Live Data Visualisation with Tableau and MongoDB
MongoDB
 
Securing Your Deployment with MongoDB and Red Hat's Identity Management in Re...
Securing Your Deployment with MongoDB and Red Hat's Identity Management in Re...Securing Your Deployment with MongoDB and Red Hat's Identity Management in Re...
Securing Your Deployment with MongoDB and Red Hat's Identity Management in Re...
MongoDB
 
Javascript 를 perl에서 mini-language 로 사용하기
Javascript 를 perl에서 mini-language 로 사용하기Javascript 를 perl에서 mini-language 로 사용하기
Javascript 를 perl에서 mini-language 로 사용하기HyunSeung Kim
 
MongoDB Interface for Asterisk PBX
MongoDB Interface for Asterisk PBXMongoDB Interface for Asterisk PBX
MongoDB Interface for Asterisk PBXSokratis Galiatsis
 
An Integrated Solution Approach
An Integrated Solution ApproachAn Integrated Solution Approach
An Integrated Solution ApproachCees W.M. Nieboer
 
TCO - MongoDB vs. Oracle
TCO - MongoDB vs. OracleTCO - MongoDB vs. Oracle
TCO - MongoDB vs. Oracle
Jeremy Taylor
 
Unify Your Selling Channels in One Product Catalog Service
Unify Your Selling Channels in One Product Catalog ServiceUnify Your Selling Channels in One Product Catalog Service
Unify Your Selling Channels in One Product Catalog Service
MongoDB
 
Webinar: Scaling MongoDB through Sharding - A Case Study with CIGNEX Datamatics
Webinar: Scaling MongoDB through Sharding - A Case Study with CIGNEX DatamaticsWebinar: Scaling MongoDB through Sharding - A Case Study with CIGNEX Datamatics
Webinar: Scaling MongoDB through Sharding - A Case Study with CIGNEX Datamatics
MongoDB
 
Mongo Sharding: Case Study
Mongo Sharding: Case StudyMongo Sharding: Case Study
Mongo Sharding: Case Study
Will Button
 
Modern Databases for Modern Application Architectures: The Next Wave of Desig...
Modern Databases for Modern Application Architectures: The Next Wave of Desig...Modern Databases for Modern Application Architectures: The Next Wave of Desig...
Modern Databases for Modern Application Architectures: The Next Wave of Desig...
MongoDB
 
Astricon 2013: "Asterisk and Database"
Astricon 2013: "Asterisk and Database"Astricon 2013: "Asterisk and Database"
Astricon 2013: "Asterisk and Database"
Francesco Prior
 
Масштабирование баз данных
Масштабирование баз данныхМасштабирование баз данных
Масштабирование баз данных
SQALab
 

Viewers also liked (20)

Hybrid MongoDB and RDBMS Applications
Hybrid MongoDB and RDBMS ApplicationsHybrid MongoDB and RDBMS Applications
Hybrid MongoDB and RDBMS Applications
 
MongoDB as a fast and queryable cache
MongoDB as a fast and queryable cacheMongoDB as a fast and queryable cache
MongoDB as a fast and queryable cache
 
Blending MongoDB and RDBMS for ecommerce
Blending MongoDB and RDBMS for ecommerceBlending MongoDB and RDBMS for ecommerce
Blending MongoDB and RDBMS for ecommerce
 
Tungsten Replicator tutorial
Tungsten Replicator tutorialTungsten Replicator tutorial
Tungsten Replicator tutorial
 
MongoDB, E-commerce and Transactions
MongoDB, E-commerce and TransactionsMongoDB, E-commerce and Transactions
MongoDB, E-commerce and Transactions
 
Slides: Polyglot Persistence for the MongoDB, MySQL & PostgreSQL DBA
Slides: Polyglot Persistence for the MongoDB, MySQL & PostgreSQL DBASlides: Polyglot Persistence for the MongoDB, MySQL & PostgreSQL DBA
Slides: Polyglot Persistence for the MongoDB, MySQL & PostgreSQL DBA
 
Juggle your data with Tungsten Replicator
Juggle your data with Tungsten ReplicatorJuggle your data with Tungsten Replicator
Juggle your data with Tungsten Replicator
 
NoSQL into E-Commerce: lessons learned
NoSQL into E-Commerce: lessons learnedNoSQL into E-Commerce: lessons learned
NoSQL into E-Commerce: lessons learned
 
Webinar: Live Data Visualisation with Tableau and MongoDB
Webinar: Live Data Visualisation with Tableau and MongoDBWebinar: Live Data Visualisation with Tableau and MongoDB
Webinar: Live Data Visualisation with Tableau and MongoDB
 
Securing Your Deployment with MongoDB and Red Hat's Identity Management in Re...
Securing Your Deployment with MongoDB and Red Hat's Identity Management in Re...Securing Your Deployment with MongoDB and Red Hat's Identity Management in Re...
Securing Your Deployment with MongoDB and Red Hat's Identity Management in Re...
 
Javascript 를 perl에서 mini-language 로 사용하기
Javascript 를 perl에서 mini-language 로 사용하기Javascript 를 perl에서 mini-language 로 사용하기
Javascript 를 perl에서 mini-language 로 사용하기
 
MongoDB Interface for Asterisk PBX
MongoDB Interface for Asterisk PBXMongoDB Interface for Asterisk PBX
MongoDB Interface for Asterisk PBX
 
An Integrated Solution Approach
An Integrated Solution ApproachAn Integrated Solution Approach
An Integrated Solution Approach
 
TCO - MongoDB vs. Oracle
TCO - MongoDB vs. OracleTCO - MongoDB vs. Oracle
TCO - MongoDB vs. Oracle
 
Unify Your Selling Channels in One Product Catalog Service
Unify Your Selling Channels in One Product Catalog ServiceUnify Your Selling Channels in One Product Catalog Service
Unify Your Selling Channels in One Product Catalog Service
 
Webinar: Scaling MongoDB through Sharding - A Case Study with CIGNEX Datamatics
Webinar: Scaling MongoDB through Sharding - A Case Study with CIGNEX DatamaticsWebinar: Scaling MongoDB through Sharding - A Case Study with CIGNEX Datamatics
Webinar: Scaling MongoDB through Sharding - A Case Study with CIGNEX Datamatics
 
Mongo Sharding: Case Study
Mongo Sharding: Case StudyMongo Sharding: Case Study
Mongo Sharding: Case Study
 
Modern Databases for Modern Application Architectures: The Next Wave of Desig...
Modern Databases for Modern Application Architectures: The Next Wave of Desig...Modern Databases for Modern Application Architectures: The Next Wave of Desig...
Modern Databases for Modern Application Architectures: The Next Wave of Desig...
 
Astricon 2013: "Asterisk and Database"
Astricon 2013: "Asterisk and Database"Astricon 2013: "Asterisk and Database"
Astricon 2013: "Asterisk and Database"
 
Масштабирование баз данных
Масштабирование баз данныхМасштабирование баз данных
Масштабирование баз данных
 

Similar to Synchronise your data between MySQL and MongoDB

Hailey_Database_Performance_Made_Easy_through_Graphics.pdf
Hailey_Database_Performance_Made_Easy_through_Graphics.pdfHailey_Database_Performance_Made_Easy_through_Graphics.pdf
Hailey_Database_Performance_Made_Easy_through_Graphics.pdf
cookie1969
 
Beyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeBeyond php - it's not (just) about the code
Beyond php - it's not (just) about the code
Wim Godden
 
Beyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeBeyond php - it's not (just) about the code
Beyond php - it's not (just) about the code
Wim Godden
 
Dangerous on ClickHouse in 30 minutes, by Robert Hodges, Altinity CEO
Dangerous on ClickHouse in 30 minutes, by Robert Hodges, Altinity CEODangerous on ClickHouse in 30 minutes, by Robert Hodges, Altinity CEO
Dangerous on ClickHouse in 30 minutes, by Robert Hodges, Altinity CEO
Altinity Ltd
 
Beyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeBeyond php - it's not (just) about the code
Beyond php - it's not (just) about the code
Wim Godden
 
Aplicações 10x a 100x mais rápida com o postgre sql
Aplicações 10x a 100x mais rápida com o postgre sqlAplicações 10x a 100x mais rápida com o postgre sql
Aplicações 10x a 100x mais rápida com o postgre sql
Fabio Telles Rodriguez
 
Performance tuning ColumnStore
Performance tuning ColumnStorePerformance tuning ColumnStore
Performance tuning ColumnStore
MariaDB plc
 
5 Cool Things About SQL
5 Cool Things About SQL5 Cool Things About SQL
5 Cool Things About SQL
Connor McDonald
 
MySQL/MariaDB query optimizer tuning tutorial from Percona Live 2013
MySQL/MariaDB query optimizer tuning tutorial from Percona Live 2013MySQL/MariaDB query optimizer tuning tutorial from Percona Live 2013
MySQL/MariaDB query optimizer tuning tutorial from Percona Live 2013Sergey Petrunya
 
Open Source Monitoring for Java with JMX and Graphite (GeeCON 2013)
Open Source Monitoring for Java with JMX and Graphite (GeeCON 2013)Open Source Monitoring for Java with JMX and Graphite (GeeCON 2013)
Open Source Monitoring for Java with JMX and Graphite (GeeCON 2013)
Cyrille Le Clerc
 
Bogdan Kecman Advanced Databasing
Bogdan Kecman Advanced DatabasingBogdan Kecman Advanced Databasing
Bogdan Kecman Advanced Databasing
Bogdan Kecman
 
MySQL 5.7 Tutorial Dutch PHP Conference 2015
MySQL 5.7 Tutorial Dutch PHP Conference 2015MySQL 5.7 Tutorial Dutch PHP Conference 2015
MySQL 5.7 Tutorial Dutch PHP Conference 2015
Dave Stokes
 
MySQL 5.7. Tutorial - Dutch PHP Conference 2015
MySQL 5.7. Tutorial - Dutch PHP Conference 2015MySQL 5.7. Tutorial - Dutch PHP Conference 2015
MySQL 5.7. Tutorial - Dutch PHP Conference 2015
Dave Stokes
 
Bogdan Kecman INIT Presentation
Bogdan Kecman INIT PresentationBogdan Kecman INIT Presentation
Bogdan Kecman INIT Presentation
arhismece
 
Oracle 12c SQL: Date Ranges
Oracle 12c SQL: Date RangesOracle 12c SQL: Date Ranges
Oracle 12c SQL: Date Ranges
Stew Ashton
 
Apache Cassandra for Timeseries- and Graph-Data
Apache Cassandra for Timeseries- and Graph-DataApache Cassandra for Timeseries- and Graph-Data
Apache Cassandra for Timeseries- and Graph-Data
Guido Schmutz
 
OpenWorld Sep14 12c for_developers
OpenWorld Sep14 12c for_developersOpenWorld Sep14 12c for_developers
OpenWorld Sep14 12c for_developers
Connor McDonald
 
Patroni - HA PostgreSQL made easy
Patroni - HA PostgreSQL made easyPatroni - HA PostgreSQL made easy
Patroni - HA PostgreSQL made easy
Alexander Kukushkin
 
Metadata Matters
Metadata MattersMetadata Matters
Metadata Mattersafa reg
 

Similar to Synchronise your data between MySQL and MongoDB (20)

Hailey_Database_Performance_Made_Easy_through_Graphics.pdf
Hailey_Database_Performance_Made_Easy_through_Graphics.pdfHailey_Database_Performance_Made_Easy_through_Graphics.pdf
Hailey_Database_Performance_Made_Easy_through_Graphics.pdf
 
Beyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeBeyond php - it's not (just) about the code
Beyond php - it's not (just) about the code
 
Beyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeBeyond php - it's not (just) about the code
Beyond php - it's not (just) about the code
 
Dangerous on ClickHouse in 30 minutes, by Robert Hodges, Altinity CEO
Dangerous on ClickHouse in 30 minutes, by Robert Hodges, Altinity CEODangerous on ClickHouse in 30 minutes, by Robert Hodges, Altinity CEO
Dangerous on ClickHouse in 30 minutes, by Robert Hodges, Altinity CEO
 
Beyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeBeyond php - it's not (just) about the code
Beyond php - it's not (just) about the code
 
Aplicações 10x a 100x mais rápida com o postgre sql
Aplicações 10x a 100x mais rápida com o postgre sqlAplicações 10x a 100x mais rápida com o postgre sql
Aplicações 10x a 100x mais rápida com o postgre sql
 
Performance tuning ColumnStore
Performance tuning ColumnStorePerformance tuning ColumnStore
Performance tuning ColumnStore
 
5 Cool Things About SQL
5 Cool Things About SQL5 Cool Things About SQL
5 Cool Things About SQL
 
MySQL/MariaDB query optimizer tuning tutorial from Percona Live 2013
MySQL/MariaDB query optimizer tuning tutorial from Percona Live 2013MySQL/MariaDB query optimizer tuning tutorial from Percona Live 2013
MySQL/MariaDB query optimizer tuning tutorial from Percona Live 2013
 
Open Source Monitoring for Java with JMX and Graphite (GeeCON 2013)
Open Source Monitoring for Java with JMX and Graphite (GeeCON 2013)Open Source Monitoring for Java with JMX and Graphite (GeeCON 2013)
Open Source Monitoring for Java with JMX and Graphite (GeeCON 2013)
 
Bogdan Kecman Advanced Databasing
Bogdan Kecman Advanced DatabasingBogdan Kecman Advanced Databasing
Bogdan Kecman Advanced Databasing
 
MySQL 5.7 Tutorial Dutch PHP Conference 2015
MySQL 5.7 Tutorial Dutch PHP Conference 2015MySQL 5.7 Tutorial Dutch PHP Conference 2015
MySQL 5.7 Tutorial Dutch PHP Conference 2015
 
MySQL 5.7. Tutorial - Dutch PHP Conference 2015
MySQL 5.7. Tutorial - Dutch PHP Conference 2015MySQL 5.7. Tutorial - Dutch PHP Conference 2015
MySQL 5.7. Tutorial - Dutch PHP Conference 2015
 
Bogdan Kecman INIT Presentation
Bogdan Kecman INIT PresentationBogdan Kecman INIT Presentation
Bogdan Kecman INIT Presentation
 
Oracle 12c SQL: Date Ranges
Oracle 12c SQL: Date RangesOracle 12c SQL: Date Ranges
Oracle 12c SQL: Date Ranges
 
Apache Cassandra for Timeseries- and Graph-Data
Apache Cassandra for Timeseries- and Graph-DataApache Cassandra for Timeseries- and Graph-Data
Apache Cassandra for Timeseries- and Graph-Data
 
Real
RealReal
Real
 
OpenWorld Sep14 12c for_developers
OpenWorld Sep14 12c for_developersOpenWorld Sep14 12c for_developers
OpenWorld Sep14 12c for_developers
 
Patroni - HA PostgreSQL made easy
Patroni - HA PostgreSQL made easyPatroni - HA PostgreSQL made easy
Patroni - HA PostgreSQL made easy
 
Metadata Matters
Metadata MattersMetadata Matters
Metadata Matters
 

More from Giuseppe Maxia

MySQL NDB 8.0 clusters in your laptop with dbdeployer
MySQL NDB 8.0 clusters in your laptop with dbdeployerMySQL NDB 8.0 clusters in your laptop with dbdeployer
MySQL NDB 8.0 clusters in your laptop with dbdeployer
Giuseppe Maxia
 
Test like a_boss
Test like a_bossTest like a_boss
Test like a_boss
Giuseppe Maxia
 
Dbdeployer, the universal installer
Dbdeployer, the universal installerDbdeployer, the universal installer
Dbdeployer, the universal installer
Giuseppe Maxia
 
Test complex database systems in your laptop with dbdeployer
Test complex database systems in your laptop with dbdeployerTest complex database systems in your laptop with dbdeployer
Test complex database systems in your laptop with dbdeployer
Giuseppe Maxia
 
Dbdeployer
DbdeployerDbdeployer
Dbdeployer
Giuseppe Maxia
 
Dbdeployer
DbdeployerDbdeployer
Dbdeployer
Giuseppe Maxia
 
A quick tour of Mysql 8 roles
A quick tour of Mysql 8 rolesA quick tour of Mysql 8 roles
A quick tour of Mysql 8 roles
Giuseppe Maxia
 
MySQL document_store
MySQL document_storeMySQL document_store
MySQL document_store
Giuseppe Maxia
 
Replication skeptic
Replication skepticReplication skeptic
Replication skeptic
Giuseppe Maxia
 
MySQL in your laptop
MySQL in your laptopMySQL in your laptop
MySQL in your laptop
Giuseppe Maxia
 
Script it
Script itScript it
Script it
Giuseppe Maxia
 
Preventing multi master conflicts with tungsten
Preventing multi master conflicts with tungstenPreventing multi master conflicts with tungsten
Preventing multi master conflicts with tungsten
Giuseppe Maxia
 
MySQL high availability power and usability
MySQL high availability power and usabilityMySQL high availability power and usability
MySQL high availability power and usability
Giuseppe Maxia
 
Solving MySQL replication problems with Tungsten
Solving MySQL replication problems with TungstenSolving MySQL replication problems with Tungsten
Solving MySQL replication problems with Tungsten
Giuseppe Maxia
 
State of the art of MySQL replication and clustering
State of the art of MySQL replication and clusteringState of the art of MySQL replication and clustering
State of the art of MySQL replication and clustering
Giuseppe Maxia
 
Testing mysql creatively in a sandbox
Testing mysql creatively in a sandboxTesting mysql creatively in a sandbox
Testing mysql creatively in a sandbox
Giuseppe Maxia
 
Mysql 5.5 and 5.6 replication
Mysql 5.5 and 5.6 replicationMysql 5.5 and 5.6 replication
Mysql 5.5 and 5.6 replication
Giuseppe Maxia
 
Lightning talks percona live mysql_2012
Lightning talks percona live mysql_2012Lightning talks percona live mysql_2012
Lightning talks percona live mysql_2012
Giuseppe Maxia
 
Replication 101
Replication 101Replication 101
Replication 101
Giuseppe Maxia
 
Testing early mysql releases in a sandbox
Testing early mysql releases in a sandboxTesting early mysql releases in a sandbox
Testing early mysql releases in a sandbox
Giuseppe Maxia
 

More from Giuseppe Maxia (20)

MySQL NDB 8.0 clusters in your laptop with dbdeployer
MySQL NDB 8.0 clusters in your laptop with dbdeployerMySQL NDB 8.0 clusters in your laptop with dbdeployer
MySQL NDB 8.0 clusters in your laptop with dbdeployer
 
Test like a_boss
Test like a_bossTest like a_boss
Test like a_boss
 
Dbdeployer, the universal installer
Dbdeployer, the universal installerDbdeployer, the universal installer
Dbdeployer, the universal installer
 
Test complex database systems in your laptop with dbdeployer
Test complex database systems in your laptop with dbdeployerTest complex database systems in your laptop with dbdeployer
Test complex database systems in your laptop with dbdeployer
 
Dbdeployer
DbdeployerDbdeployer
Dbdeployer
 
Dbdeployer
DbdeployerDbdeployer
Dbdeployer
 
A quick tour of Mysql 8 roles
A quick tour of Mysql 8 rolesA quick tour of Mysql 8 roles
A quick tour of Mysql 8 roles
 
MySQL document_store
MySQL document_storeMySQL document_store
MySQL document_store
 
Replication skeptic
Replication skepticReplication skeptic
Replication skeptic
 
MySQL in your laptop
MySQL in your laptopMySQL in your laptop
MySQL in your laptop
 
Script it
Script itScript it
Script it
 
Preventing multi master conflicts with tungsten
Preventing multi master conflicts with tungstenPreventing multi master conflicts with tungsten
Preventing multi master conflicts with tungsten
 
MySQL high availability power and usability
MySQL high availability power and usabilityMySQL high availability power and usability
MySQL high availability power and usability
 
Solving MySQL replication problems with Tungsten
Solving MySQL replication problems with TungstenSolving MySQL replication problems with Tungsten
Solving MySQL replication problems with Tungsten
 
State of the art of MySQL replication and clustering
State of the art of MySQL replication and clusteringState of the art of MySQL replication and clustering
State of the art of MySQL replication and clustering
 
Testing mysql creatively in a sandbox
Testing mysql creatively in a sandboxTesting mysql creatively in a sandbox
Testing mysql creatively in a sandbox
 
Mysql 5.5 and 5.6 replication
Mysql 5.5 and 5.6 replicationMysql 5.5 and 5.6 replication
Mysql 5.5 and 5.6 replication
 
Lightning talks percona live mysql_2012
Lightning talks percona live mysql_2012Lightning talks percona live mysql_2012
Lightning talks percona live mysql_2012
 
Replication 101
Replication 101Replication 101
Replication 101
 
Testing early mysql releases in a sandbox
Testing early mysql releases in a sandboxTesting early mysql releases in a sandbox
Testing early mysql releases in a sandbox
 

Recently uploaded

De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
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
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
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
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
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
 
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
 
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
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
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
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
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
 
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
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 

Recently uploaded (20)

De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
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...
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
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...
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
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 -...
 
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
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
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...
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
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...
 
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
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 

Synchronise your data between MySQL and MongoDB

  • 1. Synchronize your data between MySQL and MongoDB using Tungsten Replicator Giuseppe Maxia, Director of QA Continuent, Inc ©Continuent 2013 Tuesday, October 15, 13 1
  • 2. About me • Giuseppe Maxia, a.k.a. "The Data Charmer" • Director of Quality Assurance, Continuent, Inc • 25+ years development and DB experience • Long timer MySQL community member. • Oracle ACE Director • Blog: http://datacharmer.blogspot.com • Twitter: @datacharmer ©Continuent 2013 Tuesday, October 15, 13 2 2
  • 3. Introducing Continuent • The leading provider of clustering and replication for open source DBMS • Our Product: Continuent Tungsten • Clustering - Commercial-grade HA, performance scaling and data management for MySQL • Replication - Flexible, high-performance data movement ©Continuent 2013 Tuesday, October 15, 13 3 3
  • 4. A Review of Tungsten Replicator ©Continuent 2013 Tuesday, October 15, 13 4 4
  • 5. Tungsten Replicator Overview Master Replicator Download transactions via network DBMS Logs (Transactions + Metadata) Slave Replicator Apply using JDBC ©Continuent 2013 Tuesday, October 15, 13 THL THL (Transactions + Metadata) 5 5
  • 6. Master Replication Service Pipeline Stage Extract Filter Stage Apply Extract Filter Apply tcp/ip Binlog MySQL Master ©Continuent 2013 Tuesday, October 15, 13 Slave Replicators Transaction History Log In-Memory Queue 6 6
  • 7. Slave Replication Service Pipeline Stage Apply Extract Filter Stage Apply Extract Filter Apply tcp/ip Extract Filter Stage Master Replicator Transaction History Log ©Continuent 2013 Tuesday, October 15, 13 In-Memory Queue Slave DBMS 7 7
  • 9. MongoDB in a nutshell ©Continuent 2013 Tuesday, October 15, 13 9 9
  • 10. What is MongoDB • • • • • • • ©Continuent 2013 Tuesday, October 15, 13 A non-relational database A document-oriented database Schema-free Open source High performance Scalable Developer-friendly (sort of) 10 10
  • 11. What is MongoDB good for? • • • Storing large amount of unrelated data • IT IS NOT a drop-in replacement for a relational database ©Continuent 2013 Tuesday, October 15, 13 Data that can't be constrained in a schema Complement to relational data 11 11
  • 12. Relational vs. document person p_id name age 1 Joe 30 2 Fred 23 3 Jack 26 p_id d_id 4 Sue 25 1 2 5 Pete 32 2 2 3 1 4 3 5 1 department d_id name 1 sales 2 dev 3 support ©Continuent 2013 Tuesday, October 15, 13 pers_dept Relational 12 12
  • 13. Relational vs. document person p_id name age 1 Joe 30 2 Fred 23 3 Jack 26 p_id d_id 4 Sue 25 1 2 5 Pete 32 2 2 3 1 4 3 5 1 department d_id name 1 sales 2 dev 3 support ©Continuent 2013 Tuesday, October 15, 13 pers_dept Relational 13 13
  • 14. Relational vs. document person p_id name age 1 Joe 30 2 Fred 23 3 Jack 26 p_id d_id 4 Sue 25 1 2 5 Pete 32 2 2 3 1 4 3 5 1 department d_id name 1 sales 2 dev 3 support ©Continuent 2013 Tuesday, October 15, 13 pers_dept Relational 14 14
  • 15. Relational vs. document person p_id name age 1 Joe 30 2 Fred 23 3 Jack 26 p_id d_id 4 Sue 25 1 2 5 Pete 32 2 2 3 1 4 3 5 1 department d_id name 1 sales 2 dev 3 support ©Continuent 2013 Tuesday, October 15, 13 pers_dept Relational 15 15
  • 16. Relational vs. document person p_id name age 1 Joe 30 2 Fred 23 3 Jack 26 p_id d_id 4 Sue 25 1 2 5 Pete 32 2 2 3 1 4 3 5 1 department d_id name 1 sales 2 dev 3 support ©Continuent 2013 Tuesday, October 15, 13 pers_dept Relational 16 16
  • 17. Relational vs. document person p_id name age 1 Joe 30 2 Fred 23 3 Jack 26 p_id d_id 4 Sue 25 1 2 5 Pete 32 2 2 3 1 4 3 5 1 department d_id name 1 sales 2 dev 3 support ©Continuent 2013 Tuesday, October 15, 13 pers_dept Relational 17 17
  • 19. How MongoDB keeps data • ©Continuent 2013 Tuesday, October 15, 13 three levels: • • • dbs collections documents 19 19
  • 20. MongoDB insertion demo > show collections > > db.person.insert( {_id: 1, name: "Joe", age: 30, department: "dev"}) > show collections person system.indexes ©Continuent 2013 Tuesday, October 15, 13 20 20
  • 21. MongoDB insertion demo > db.person.insert( "dev"}) > db.person.insert( "sales"}) > db.person.insert( "support"}) > db.person.insert( "sales"}) > db.person.find() { "_id" : 1, "name" { "_id" : 2, "name" { "_id" : 3, "name" { "_id" : 4, "name" { "_id" : 5, "name" ©Continuent 2013 Tuesday, October 15, 13 {_id: 2, name: "Fred", age: 23, department: {_id: 3, name: "Jack", age: 26, department: {_id: 4, name: "Sue", age: 25, department: {_id: 5, name: "Pete", age: 30, department: : : : : : "Joe", "age" : 30, "department" : "dev" } "Fred", "age" : 23, "department" : "dev" } "Jack", "age" : 26, "department" : "sales" } "Sue", "age" : 25, "department" : "support" } "Pete", "age" : 30, "department" : "sales" } 21 21
  • 22. MySQL to MongoDB basics ©Continuent 2013 Tuesday, October 15, 13 22 22
  • 23. Replication from MySQL to MongoDB • • • • • • • ©Continuent 2013 Tuesday, October 15, 13 Requires ROW-based-replication Replication happens by table There is no consolidation into "documents" DDL commands are ignored Statement commands are ignored Column names become document attributes enum and set columns are converted to strings 23 23
  • 24. First example of replication # MySQL create schema oneschema; use oneschema ; create table myfirst( num int not null primary key, dt datetime, ts timestamp, going enum('yes', 'no')); # MongoDB > show dbs local 0.078125GB test 0.203125GB tungsten_mysql2mongodb 0.203125GB # NOTICE: no "oneschema" ©Continuent 2013 Tuesday, October 15, 13 24 24
  • 25. Inserting data # MySQL insert into myfirst values (1, '2003-04-26 09:15:00', null, 'yes'); Query OK, 1 row affected (0.01 sec) select * from myfirst; +-----+---------------------+---------------------+-------+ | num | dt | ts | going | +-----+---------------------+---------------------+-------+ | 1 | 2003-04-26 09:15:00 | 2013-10-14 19:39:38 | yes | +-----+---------------------+---------------------+-------+ 1 row in set (0.00 sec) ©Continuent 2013 Tuesday, October 15, 13 25 25
  • 26. Checking results in MongoDB # MongoDB > show dbs local 0.078125GB oneschema 0.203125GB test 0.203125GB tungsten_mysql2mongodb 0.203125GB > use oneschema switched to db oneschema > show collections myfirst system.indexes > db.myfirst.find() { "_id" : ObjectId("525c2c5af5d9ca820fcee01d"), "num" : "1", "dt" : "2003-04-26 11:15:00.0", "ts" : "2013-10-14 19:39:38.0", "going" : "yes" } ©Continuent 2013 Tuesday, October 15, 13 26 26
  • 27. Another interesting insertion #MySQL create table t1(_id int not null primary key, c char(10)); insert into t1 values (1, 'abc'); select * from t1; +-----+------+ | _id | c | +-----+------+ | 1 | abc | +-----+------+ 1 row in set (0.00 sec) # MongoDB > db.t1.find() { "_id" : "1", "c" : "abc" } ©Continuent 2013 Tuesday, October 15, 13 27 27
  • 28. More insertions # MySQL insert into t1 values (2,'def'), (3,'ghi'), (4,'jkl'), (5, 'mno'); Query OK, 4 rows affected (0.01 sec) Records: 4 Duplicates: 0 Warnings: 0 select * from t1; +-----+------+ | _id | c | +-----+------+ | 1 | abc | | 2 | def | | 3 | ghi | | 4 | jkl | | 5 | mno | +-----+------+ 5 rows in set (0.00 sec) ©Continuent 2013 Tuesday, October 15, 13 28 28
  • 29. More insertions # MongoDB > { { { { { db.t1.find() "_id" : "1", "_id" : "2", "_id" : "3", "_id" : "4", "_id" : "5", ©Continuent 2013 Tuesday, October 15, 13 "c" "c" "c" "c" "c" : : : : : "abc" "def" "ghi" "jkl" "mno" } } } } } 29 29
  • 30. Update and delete as seen on master update t1 set c = 'ZZZ' where _id = 3; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 delete from t1 where _id=2; Query OK, 1 row affected (0.00 sec) select * from t1; +-----+------+ | _id | c | +-----+------+ | 1 | abc | | 3 | ZZZ | | 4 | jkl | | 5 | mno | +-----+------+ 4 rows in set (0.00 sec) ©Continuent 2013 Tuesday, October 15, 13 30 30
  • 31. e!ects of update and delete on the slave # MongoDB > { { { { db.t1.find() "_id" : "1", "_id" : "3", "_id" : "4", "_id" : "5", ©Continuent 2013 Tuesday, October 15, 13 "c" "c" "c" "c" : : : : "abc" "ZZZ" "jkl" "mno" } } } } 31 31
  • 32. Overview of Tungsten installer ©Continuent 2013 Tuesday, October 15, 13 32 32
  • 33. Overview of Installation Process 1. Set up hosts 2. Prepare MySQL replicas 3. Download software 4. Install using tpm Amazon Setup: https://docs.continuent.com/wiki/display/TEDOC/ Preparing+EC2+Servers ©Continuent 2013 Tuesday, October 15, 13 33 33
  • 34. How tungsten-installer Works for Basic Master/Slave Deployment Staging copy of files db1 db2 check prereqs copy code configure ©Continuent 2013 Tuesday, October 15, 13 db3 34 34
  • 36. Bi-directional replication alpha alpha bravo bravo host1 host2 installer Install all master and slave services on all hosts at once ©Continuent 2013 Tuesday, October 15, 13 36 36
  • 37. 4 nodes all-masters alpha alpha bravo host1 bravo charlie charlie delta host2 delta alpha bravo ©Continuent 2013 Tuesday, October 15, 13 bravo charlie charlie delta host3 alpha delta host4 37 37
  • 38. Tungsten security layer • Tra!c encryption: Tuesday, October 15, 13 all data in transit (transaction history logs, or THL) is encrypted using SSL • • • ©Continuent 2013 • all administrative tra!c is encrypted with SSL Transparent to the user Independent of the database server (works also for heterogeneous replication) 38 38
  • 39. Tungsten replicator without security THL alpha THL alpha alpha host2 plain text THL host1 THL host4 host3 master slave ©Continuent 2013 Tuesday, October 15, 13 alpha replicator services 39 39
  • 40. Tungsten Replicator with security SSL alpha THL alpha THL THL alpha host2 SSL host1 SSL SSL slave ©Continuent 2013 Tuesday, October 15, 13 alpha host4 host3 master THL replicator services 40 40
  • 41. Installing Master/Slave Replication ... alpha THL THL host1 alpha host2 alpha THL host3 ©Continuent 2013 Tuesday, October 15, 13 41 41
  • 42. master/slave using tpm ./tools/tpm install alpha --topology=master-slave --home-directory=/opt/continuent/replicator --replication-user=tungsten --replication-password=secret --master=host1 --slaves=host2,host3,host4 --start ©Continuent 2013 Tuesday, October 15, 13 42 42
  • 43. Installing Master/Slave Replication with MongoDB alpha alpha host1 host2 alpha alpha host3 ©Continuent 2013 Tuesday, October 15, 13 host4 43 43
  • 44. master/slave with MongoDB ./tools/tpm configure mysql2mongodb --enable-heterogenous-service=true --topology=master-slave --master=host1 --replication-user=tungsten --replication-password=secret --slaves=host2,host3,host4 --home-directory=$MYSQL_DEPLOY --start-and-report ./tools/tpm configure mysql2mongodb --hosts=host4 --datasource-type=mongodb --replication-port=$MONGODB_PORT ./tools/tpm install ©Continuent 2013 Tuesday, October 15, 13 44 44
  • 46. fan-in using tpm ./tools/tpm install many_towns --replication-user=tungsten --replication-password=secret --home-directory=/opt/continuent/replication --masters=host1,host2,host3 --slaves=host4 --master-services=alpha,bravo,charlie --topology=fan-in --start ©Continuent 2013 Tuesday, October 15, 13 46 46
  • 47. Installing Fan-In Replication with MongoDB alpha bravo host1 host2 alpha bravo host3 ©Continuent 2013 Tuesday, October 15, 13 charlie charlie host4 47 47
  • 48. fan-in with MongoDB ./tools/tpm configure mysql2mongodb --enable-heterogenous-service=true --topology=fan-in --masters=host1,host2,host3 --master-services=alpha,bravo,charlie --slaves=host4 --replication-user=tungsten --replication-password=secret --home-directory=$MYSQL_DEPLOY --datasource-type=mysql --start-and-report ./tools/tpm configure mysql2mongodb --hosts=host4 --datasource-type=mongodb --replication-port=$MONGODB_PORT ./tools/tpm install ©Continuent 2013 Tuesday, October 15, 13 48 48
  • 50. multi-master using tpm ../tools/tpm install musketeers --reset --topology=all-masters --home-directory=/opt/continuent/replicator --replication-user=tungsten --replication-password=secret --masters=host1,host2,host3 --master-services=alpha,bravo,charlie --start ©Continuent 2013 Tuesday, October 15, 13 50 50
  • 51. Install Multi-Master replication with Mongodb alpha alpha bravo host1 bravo charlie charlie alpha host3 ©Continuent 2013 Tuesday, October 15, 13 alpha bravo bravo charlie charlie host2 host4 51 51
  • 52. multi-master with MongoDB ./tools/tpm configure mysql2mongodb --enable-heterogenous-service=true --topology=all-masters --masters=host1,host2,host3 --slaves=host1,host2,host3,host4 --master-services=alpha,bravo,charlie --replication-user=tungsten --replication-password=secret --home-directory=$MYSQL_DEPLOY --datasource-type=mysql --start-and-report ./tools/tpm configure mysql2mongodb --hosts=host4 --datasource-type=mongodb --replication-port=$MONGODB_PORT ./tools/tpm install ©Continuent 2013 Tuesday, October 15, 13 52 52
  • 53. MongoDB or TokuMX • TokuMX is a drop-in replacement for MongoDB • • • Open source project, developed by TokuTek ©Continuent 2013 Tuesday, October 15, 13 https://github.com/Tokutek/mongo it includes • • • • better indexing row-level locking (MongoDB locks at db level) transactions better compression 53 53
  • 54. DEMO: MongoDB and multi master installation ©Continuent 2013 Tuesday, October 15, 13 54 54
  • 55. Joining the Community ©Continuent 2013 Tuesday, October 15, 13 55 55
  • 56. Tungsten Replicator is Open Source • Project home: http://code.google.com/p/tungsten-replicator/ • Log bugs, "nd builds, post in replicator discussion group • Documentation: https://docs.continuent.com/wiki/display/TEDOC/ Tungsten+Documentation+Home https://docs.continuent.com/wiki/display/TEDOC/ Deploying+MongoDB+Replication ©Continuent 2013 Tuesday, October 15, 13 56 56
  • 57. 560 S. Winchester Blvd., Suite 500 San Jose, CA 95128 Tel +1 (866) 998-3642 Fax +1 (408) 668-1009 e-mail: sales@continuent.com Our Blogs: http://scale-out-blog.blogspot.com http://datacharmer.blogspot.com http://www.continuent.com/news/blogs Continuent Web Page: http://www.continuent.com Tungsten Replicator 2.1: http://code.google.com/p/tungsten-replicator ©Continuent 2012. Tuesday, October 15, 13 57