ݺߣ

ݺߣShare a Scribd company logo
OR

S Q L
NoSQL
Thats
T H E

Ques.on
@majidfn
MajiD Fatemian
Ubisoft Montreal
BIG

DATA
NoSQL
1

2

3

No SQL

Cluster

Schemaless
Fitness Evolved
Fitness Evolved
STATS

Users

Concurrent

Daily Activities

2.2M

10K

160K(Max)
40K (Avg)
2012

2011

2013
2012

2011

2013
Architecture
2011
+

SQL / JOIN
ACID
Transaction
Partitioning
Replication
Tools
OPs
Data Modeling
2012

2011

2013
DATA

Global

Speci?c

Pro?le Info.

Deta i ls

Aggregated stats

Activities

Community Events

L ea de rbo a rds
+

SQL / JOIN
ACID
Transaction
Partitioning
Replication
Tools
OPs
Data Modeling

Volume
No Details
Variant Schema
Partitioning
Scale out
Sharding

-
+

SQL / JOIN
ACID
Transaction
xbox v.1
xbox v.2
{
{
Partitioning
player_id: 1234,
player_id: 1234,
game_id:Replication
1002,
game_id: 4001,
platform: wiiu,
platform: xbox360,
Tools
* calories: 75,
* calories: 40,
OPs
* duration: 120
* duration: 75,
}
di?culty_level: medium,
Data Modeling
jumping_ropes: 178,
score: 450,
endurance:3,
category: 4
}

Volume
No Details
Variant Schema
Partitioning
Scale out
Sharding

-
+

SQL / JOIN
ACID
Transaction
Partitioning
Replication
Tools
OPs
Data Modeling

Volume
No Details
Variant Schema
Partitioning
Scale out
Sharding

-
Data Access Layer

+

SQL / JOIN
ACID
B
A
ta
ta
Transaction
Da
Da
Partitioning
Replication
Tools
OPs
Data Modeling

D

ata

C

Volume
No Details
Variant Schema
Partitioning
Scale out
Sharding

-
+

SQL / JOIN
ACID
Transaction
Partitioning
Replication
Tools
OPs
Data Modeling

Volume
No Details
Variant Schema
Partitioning
Scale out
Sharding

-
No

SQL
...
mongoDB

1

2

3

OPs

Support

Community
+
Schema-Less
Aggregated Data
Object Mapping
Large Scale Data
Sharding
Map/Reduce
Eventual Consistency
Memory Storage
Journaling
+
Schema-Less
Aggregated Data
Object Mapping
Large Scale Data
Sharding
Map/Reduce
Eventual Consistency
Memory Storage
Journaling

{

*
*
}

xbox v.1
player_id: 1234,
game_id: 1002,
platform: wiiu,
calories: 75,
duration: 120

{

*
*

}

WiiU
player_id: 1234,
game_id: 4001,
platform: xbox360,
calories: 40,
duration: 75,
di?culty_level: medium,
jumping_ropes: 178,
score: 450,
endurance:3,
category: 4
+
Schema-Less
Aggregated Data
Object Mapping
Large Scale Data
Sharding
Map/Reduce
Eventual Consistency
Memory Storage
Journaling

{
player:
{
name: example, gender: M, country:CA
}
game_id: 4001,
date: 2013-11-08,
calories: 40,
duration: 75,
}
+
Schema-Less
Aggregated Data
Object Mapping
Large Scale Data
Sharding
Map/Reduce
Eventual Consistency
Memory Storage
Journaling

ata
D

A

ata
D

B

ata
D

C
+
Schema-Less
Aggregated Data
Object Mapping
Large Scale Data
Sharding
Map/Reduce
Eventual Consistency
Memory Storage
Journaling
+
Schema-Less
Aggregated Data
Object Mapping
Large Scale Data
Sharding
Map/Reduce
Eventual Consistency
Memory Storage
Journaling

-

Denormalized data
Disk Space
Expertise
Complex Querying
Resource Usage
DB-Level Locking
BENCH

MARK
0.02

0.015

0.01

0.005

0
Random Pro?le
Search
(1M)

MySQL
MongoDB

Full History
Retrieval
(6M)

Insert
(6M)

Aggregation
Map/Reduce
(6M)
Relational Data Model

Schema Less

Ease of Use

Performance
Sharding
GO!

Hybrid
Con?g Server

ste
a

r

M

v
Sla

e

Shard 1
Replicaset

Shard 2
Replicaset
Concerns
!

Inconsistency

2

Consistency vs. Latency

3

Data Duplication

4

Complexity
Challenges

!

2

3

Availability

Time

Expertese
Data Access Layer

OR
Plans

Backup

Failure
DATA

Migration
SQL or NoSQL - TrueNorthPHP
4
Pro?le Versioning

!!

2

s

One Shot Migration

hr

1

!

ve

Li
e

rit
W

d
R

ea
TEST!
1

2

3

Unit

Functional

Integration
Final

Results
Scalability

&...
Details

User

B.I.
Response Time

0.02


0.0002
Architecture
2013

REST
> 1 year uptime
1

Based on Requirements

2

Benchmark!

3

Choose Wisely!
Thank

YOU!
@majidfn
https://joind.in/9977
References
NoSQL

MongoDB

MySQL

Distilled

The de?nitive guide

High Performance
we need

YOU!
http://montreal.ubisoft.com/en/video-games-jobs-my-career
Got

Q?
@majidfn

More Related Content

SQL or NoSQL - TrueNorthPHP