37
NoSQL WHYWHENANDHOW Mariusz Gil

4Developers 2015: Kiedy, jak i po co migrować na NoSQL - Mariusz Gil

  • Upload
    proidea

  • View
    62

  • Download
    1

Embed Size (px)

Citation preview

Page 1: 4Developers 2015: Kiedy, jak i po co migrować na NoSQL - Mariusz Gil

NoSQLWHY WHEN AND HOW

Mariusz Gil

Page 2: 4Developers 2015: Kiedy, jak i po co migrować na NoSQL - Mariusz Gil
Page 3: 4Developers 2015: Kiedy, jak i po co migrować na NoSQL - Mariusz Gil

Data

Page 4: 4Developers 2015: Kiedy, jak i po co migrować na NoSQL - Mariusz Gil
Page 5: 4Developers 2015: Kiedy, jak i po co migrować na NoSQL - Mariusz Gil
Page 6: 4Developers 2015: Kiedy, jak i po co migrować na NoSQL - Mariusz Gil
Page 7: 4Developers 2015: Kiedy, jak i po co migrować na NoSQL - Mariusz Gil

Data sizeTransactions

Response time

Page 8: 4Developers 2015: Kiedy, jak i po co migrować na NoSQL - Mariusz Gil

NoSQL!

Page 9: 4Developers 2015: Kiedy, jak i po co migrować na NoSQL - Mariusz Gil

Reasons

Page 10: 4Developers 2015: Kiedy, jak i po co migrować na NoSQL - Mariusz Gil

Data model

Page 11: 4Developers 2015: Kiedy, jak i po co migrować na NoSQL - Mariusz Gil

Linear scalability

Page 12: 4Developers 2015: Kiedy, jak i po co migrować na NoSQL - Mariusz Gil

Performance

Page 13: 4Developers 2015: Kiedy, jak i po co migrować na NoSQL - Mariusz Gil
Page 14: 4Developers 2015: Kiedy, jak i po co migrować na NoSQL - Mariusz Gil

id username

1 atermida

2 saturn

3 zeus

… …

user_id attribute_id value

1 342 1

2 342 2

3 343 3

… … …

user_id attribute_id value

1 348 abc

2 348 abd

3 900 eee

… … …

Page 15: 4Developers 2015: Kiedy, jak i po co migrować na NoSQL - Mariusz Gil

id username attr_1 attr_2 attr_3

1 atermida 1

2 saturn 2

3 zeus [1, 3, 4]

… … … … …

Page 16: 4Developers 2015: Kiedy, jak i po co migrować na NoSQL - Mariusz Gil

Before migration

Page 17: 4Developers 2015: Kiedy, jak i po co migrować na NoSQL - Mariusz Gil
Page 18: 4Developers 2015: Kiedy, jak i po co migrować na NoSQL - Mariusz Gil

Master

Reads / Writes

Page 19: 4Developers 2015: Kiedy, jak i po co migrować na NoSQL - Mariusz Gil

Denormalize

Page 20: 4Developers 2015: Kiedy, jak i po co migrować na NoSQL - Mariusz Gil

Replica

Reads

Replica

Reads

Master

Writes*

Page 21: 4Developers 2015: Kiedy, jak i po co migrować na NoSQL - Mariusz Gil

Master

Reads / Writes

Page 22: 4Developers 2015: Kiedy, jak i po co migrować na NoSQL - Mariusz Gil

Master F1

Reads / Writes

Master F2

Reads / Writes

Page 23: 4Developers 2015: Kiedy, jak i po co migrować na NoSQL - Mariusz Gil

Master

Reads / Writes

Table

Page 24: 4Developers 2015: Kiedy, jak i po co migrować na NoSQL - Mariusz Gil

Master

Reads / Writes

Partitions Partitions

Page 25: 4Developers 2015: Kiedy, jak i po co migrować na NoSQL - Mariusz Gil

CREATE TABLE `partitioned` ( `id` bigint(20) NOT NULL, …)ENGINE=InnoDBDEFAULT CHARSET=utf8COLLATE=utf8_unicode_ciPARTITION BY RANGE (TO_DAYS(created))SUBPARTITION BY HASH (field)SUBPARTITIONS 8 ( PARTITION p201502 VALUES LESS THAN (TO_DAYS('2015-03-01')), PARTITION p201503 VALUES LESS THAN (TO_DAYS('2015-04-01')), PARTITION p201504 VALUES LESS THAN (TO_DAYS('2015-05-01')), PARTITION p201505 VALUES LESS THAN (TO_DAYS('2015-06-01')), PARTITION p201506 VALUES LESS THAN (TO_DAYS('2015-07-01')), PARTITION p201507 VALUES LESS THAN (TO_DAYS('2015-08-01')), PARTITION pX VALUES LESS THAN MAXVALUE);

Page 26: 4Developers 2015: Kiedy, jak i po co migrować na NoSQL - Mariusz Gil

Storage engines

Page 27: 4Developers 2015: Kiedy, jak i po co migrować na NoSQL - Mariusz Gil

Master

Reads / Writes

Archive partitions InnoDB Table

Page 28: 4Developers 2015: Kiedy, jak i po co migrować na NoSQL - Mariusz Gil

(auto) Sharding

Page 29: 4Developers 2015: Kiedy, jak i po co migrować na NoSQL - Mariusz Gil
Page 30: 4Developers 2015: Kiedy, jak i po co migrować na NoSQL - Mariusz Gil

Key value access

Page 31: 4Developers 2015: Kiedy, jak i po co migrować na NoSQL - Mariusz Gil

Supporttens of thousands skilled DBAs

Page 32: 4Developers 2015: Kiedy, jak i po co migrować na NoSQL - Mariusz Gil

Migration

Page 33: 4Developers 2015: Kiedy, jak i po co migrować na NoSQL - Mariusz Gil

ACID · CAP · BASE

Page 34: 4Developers 2015: Kiedy, jak i po co migrować na NoSQL - Mariusz Gil

ReplicateKeep Calm and

Page 35: 4Developers 2015: Kiedy, jak i po co migrować na NoSQL - Mariusz Gil

CRASH itand test your disaster recovery plan

Page 36: 4Developers 2015: Kiedy, jak i po co migrować na NoSQL - Mariusz Gil

@mariuszgil

Thanks!

Page 37: 4Developers 2015: Kiedy, jak i po co migrować na NoSQL - Mariusz Gil

it depends :)